]> git.eshelyaron.com Git - emacs.git/log
emacs.git
4 years agoMerge branch 'master' into feature/pgtk
Yuuki Harano [Sat, 28 Nov 2020 17:12:15 +0000 (02:12 +0900)]
Merge branch 'master' into feature/pgtk

4 years ago* src/pgtkterm.c (scroll_event): Shut up warnings
Yuuki Harano [Sat, 28 Nov 2020 16:04:29 +0000 (01:04 +0900)]
* src/pgtkterm.c (scroll_event): Shut up warnings

4 years agoImprove smooth scroll
Yuuki Harano [Sat, 28 Nov 2020 12:55:18 +0000 (21:55 +0900)]
Improve smooth scroll

* src/pgtkterm.c (scroll_event): Accumulate deltas and calculate
the number of lines.
(pgtk_term_init): Set smooth scroll parameters.
* src/pgtkterm.h (scroll): New members to store parameters.

4 years agoUpdate TUTORIAL.it
Lele Gaifax [Sat, 28 Nov 2020 08:48:09 +0000 (09:48 +0100)]
Update TUTORIAL.it

* etc/tutorials/TUTORIAL.it: Follow changes made to TUTORIAL in the
last year

4 years ago* etc/tutorials/TUTORIAL.sv: General copy-editing.
Mattias Engdegård [Sat, 28 Nov 2020 11:28:45 +0000 (12:28 +0100)]
* etc/tutorials/TUTORIAL.sv: General copy-editing.

4 years agoUse correct glyph in title when resizing NS frames
Mattias Engdegård [Fri, 27 Nov 2020 20:16:15 +0000 (21:16 +0100)]
Use correct glyph in title when resizing NS frames

* src/nsterm.m ([EmacsView windowWillResize:toSize:]): Use ×, not x.

4 years agoFix incorrect handling of module runtime and environment pointers.
Philipp Stephani [Fri, 27 Nov 2020 18:08:55 +0000 (19:08 +0100)]
Fix incorrect handling of module runtime and environment pointers.

We used to store module runtime and environment pointers in the static
lists Vmodule_runtimes and Vmodule_environments.  However, this is
incorrect because these objects have to be kept per-thread.  With this
naive approach, interleaving module function calls in separate threads
leads to environments being removed in the wrong order, which in turn
can cause local module values to be incorrectly garbage-collected.
The fix isn't completely trivial: specbinding the lists wouldn't work
either, because then the garbage collector wouldn't find the
environments in other threads than the current ones, again leading to
objects being garbage-collected incorrectly.  While introducing custom
pseudovector types would fix this, it's simpler to put the runtime and
environment pointers into the specbinding list as new specbinding
kinds.  This works since we need to unwind them anyway, and we only
ever treat the lists as a stack.  The thread switching machinery
ensures that the specbinding lists are thread-local, and that all
elements of the specbinding lists in all threads are marked during
garbage collection.

Module assertions now have to walk the specbinding list for the
current thread, which is more correct since they now only find
environments for the current thread.  As a result, we can now remove
the faulty Vmodule_runtimes and Vmodule_environments variables
entirely.

Also add a unit test that exemplifies the problem.  It interleaves two
module calls in two threads so that the first call ends while the
second one is still active.  Without this change, this test triggers
an assertion failure.

* src/lisp.h (enum specbind_tag): Add new tags for module runtimes and
environments.

* src/eval.c (record_unwind_protect_module): New function to record a
module object in the specpdl list.
(do_one_unbind): Unwind module objects.
(backtrace_eval_unrewind, default_toplevel_binding, lexbound_p)
(Fbacktrace__locals): Deal with new specbinding types.
(mark_specpdl): Mark module environments as needed.

* src/alloc.c (garbage_collect): Remove call to 'mark-modules'.
Garbage collection of module values is now handled as part of marking
the specpdl of each thread.

* src/emacs-module.c (Fmodule_load, funcall_module): Use specpdl to
record module runtimes and environments.
(module_assert_runtime, module_assert_env, value_to_lisp): Walk
through specpdl list instead of list variables.
(mark_module_environment): Rename from 'mark_modules'.  Don't attempt
to walk though current thread's environments only, since that would
miss other threads.
(initialize_environment, finalize_environment): Don't change
Vmodule_environments variable; environments are now in the specpdl
list.
(finalize_environment_unwind, finalize_runtime_unwind): Make 'extern'
since do_one_unbind now calls them.
(finalize_runtime_unwind): Don't change Vmodule_runtimes variable;
runtimes are now in the specpdl list.
(syms_of_module): Remove Vmodule_runtimes and Vmodule_environments.

* test/data/emacs-module/mod-test.c (Fmod_test_funcall): New test
function.
(emacs_module_init): Bind it.

* test/src/emacs-module-tests.el (emacs-module-tests--variable): New
helper type to guard access to state in a thread-safe way.
(emacs-module-tests--wait-for-variable)
(emacs-module-tests--change-variable): New helper functions.
(emacs-module-tests/interleaved-threads): New unit test.

4 years ago; * src/lisp.h (enum specbind_tag): Fix typo.
Philipp Stephani [Fri, 27 Nov 2020 19:04:20 +0000 (20:04 +0100)]
; * src/lisp.h (enum specbind_tag): Fix typo.

4 years ago* lisp/subr.el (activate-change-group): Refine fix for bug#33341
Stefan Monnier [Fri, 27 Nov 2020 15:19:21 +0000 (10:19 -0500)]
* lisp/subr.el (activate-change-group): Refine fix for bug#33341

4 years agoMake the 'cucumber' compilation pattern work without 'omake'
Mattias Engdegård [Tue, 24 Nov 2020 11:05:47 +0000 (12:05 +0100)]
Make the 'cucumber' compilation pattern work without 'omake'

When 'omake' is included in compilation-error-regexp-alist, which it
still is by default, then all other rules are modified to match with
an extra leading 6 spaces as well. The 'cucumber' pattern relied on
this in order to work as intended.

* lisp/progmodes/compile.el (compilation-error-regexp-alist-alist):
Extend the 'cucumber' pattern so that it works even when 'omake'
is not included.  Move it below the 'gnu' rule so that it doesn't
match anything else.

4 years agoEnable harfbuzz
Yuuki Harano [Fri, 27 Nov 2020 15:14:23 +0000 (00:14 +0900)]
Enable harfbuzz

* src/pgtkfns.c (Fx_create_frame): Register ftcrhb font driver if enabled.

4 years agoUpdate TUTORIAL.de and TUTORIAL.fr
Mattias Engdegård [Fri, 27 Nov 2020 14:29:22 +0000 (15:29 +0100)]
Update TUTORIAL.de and TUTORIAL.fr

* etc/tutorials/TUTORIAL.de:
* etc/tutorials/TUTORIAL.fr: Follow recent changes in TUTORIAL.

4 years ago* lisp/subr.el (activate-change-group): Fix bug#33341
Stefan Monnier [Fri, 27 Nov 2020 14:43:56 +0000 (09:43 -0500)]
* lisp/subr.el (activate-change-group): Fix bug#33341

4 years agoUpdate TUTORIAL.es
Stefan Kangas [Fri, 27 Nov 2020 09:36:15 +0000 (10:36 +0100)]
Update TUTORIAL.es

* etc/tutorials/TUTORIAL.es: A followup to recent changes in
TUTORIAL.

4 years agoUpdate TUTORIAL.sv
Stefan Kangas [Fri, 27 Nov 2020 09:22:42 +0000 (10:22 +0100)]
Update TUTORIAL.sv

* etc/tutorials/TUTORIAL.sv: A followup to recent changes in
TUTORIAL.  Minor tweaks for grammar and style.

4 years agoAdd completion-tab-width to align prefix chars with names in read-char-by-name
Juri Linkov [Fri, 27 Nov 2020 09:17:12 +0000 (11:17 +0200)]
Add completion-tab-width to align prefix chars with names in read-char-by-name

* lisp/international/mule-cmds.el (mule--ucs-names-affixation):
Replace mule--ucs-names-annotation to display chars in prefixes
that implements two FIXME items.
(read-char-by-name): Let-bind completion-tab-width to 4.
Use affixation-function instead of annotation-function.

* lisp/minibuffer.el (completion-tab-width): New variable.
(completion--insert-strings): Align colwidth to tab positions
when completion-tab-width is non-nil.

* lisp/simple.el (completion-setup-function): Set tab-width to
completion-tab-width when completion-tab-width is non-nil.

https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg01263.html

4 years ago* lisp/simple.el (read-from-kill-ring): Use frame-text-cols, not frame-width.
Juri Linkov [Fri, 27 Nov 2020 09:00:43 +0000 (11:00 +0200)]
* lisp/simple.el (read-from-kill-ring): Use frame-text-cols, not frame-width.

4 years agoUpdate TUTORIAL.he
Eli Zaretskii [Fri, 27 Nov 2020 08:50:15 +0000 (10:50 +0200)]
Update TUTORIAL.he

* etc/tutorials/TUTORIAL.he: A followup to recent changes in
TUTORIAL.

4 years agoFix up previous server exit directory deletion
Lars Ingebrigtsen [Fri, 27 Nov 2020 08:23:53 +0000 (09:23 +0100)]
Fix up previous server exit directory deletion

* lisp/server.el (server-start): Only delete the server directory
if it's in /tmp (bug#44644).

4 years agoFix modification check when custom-form is `lisp'
Dario Gjorgjevski [Thu, 26 Nov 2020 10:59:23 +0000 (11:59 +0100)]
Fix modification check when custom-form is `lisp'

* lisp/cus-edit.el (custom-variable-modified-p): Quote the value when
custom form is 'lisp (or 'mismatch) prior to comparing in order to
accommodate `custom-variable-value-create' (bug#44852).

4 years agoRemove keyboard anachronisms from tutorial
Mattias Engdegård [Thu, 26 Nov 2020 16:08:26 +0000 (17:08 +0100)]
Remove keyboard anachronisms from tutorial

* etc/tutorials/TUTORIAL: Don't keep referring to EDIT as if it were a
common name for the Meta key; since a few decades back it's labelled
Alt (or Option or ⌥ but those keys usually also have 'alt' engraved on
them).  Similarly, CTL is practically extinct and not worth
mentioning.

4 years agoAdd support for hyper modifier key
Yuuki Harano [Thu, 26 Nov 2020 14:44:29 +0000 (23:44 +0900)]
Add support for hyper modifier key

* src/pgtkterm.c (x_find_modifier_meanings): Autodetect key mask.
(pgtk_gtk_to_emacs_modifiers): Use autodetected mask instead of GDK's.
(pgtk_emacs_to_gtk_modifiers): Use autodetected mask instead of GDK's.
(key_press_event): Ignore hyper as well as super.
* src/pgtkterm.h (struct pgtk_display_info): New member for hyper.

4 years agoFix replace-regexp-in-string substring match data translation
Mattias Engdegård [Wed, 25 Nov 2020 14:32:08 +0000 (15:32 +0100)]
Fix replace-regexp-in-string substring match data translation

For certain patterns, re-matching the same regexp on the matched
substring does not produce correctly translated match data
(bug#15107 and bug#44861).

Using a new builtin function also improves performance since the
number of calls to string-match is halved.

Reported by Kevin Ryde and Shigeru Fukaya.

* lisp/subr.el (replace-regexp-in-string): Translate the match data
using match-data--translate instead of trusting a call to string-match
on the matched string to do the job.
* test/lisp/subr-tests.el (subr-replace-regexp-in-string):
Add test cases.
* src/search.c (Fmatch_data__translate): New internal function.
(syms_of_search): Register it as a subroutine.

4 years agoKeep point in the *eldoc* buffer in eldoc-display-in-echo-area
Lars Ingebrigtsen [Thu, 26 Nov 2020 10:24:20 +0000 (11:24 +0100)]
Keep point in the *eldoc* buffer in eldoc-display-in-echo-area

* lisp/emacs-lisp/eldoc.el (eldoc-display-in-echo-area): Use
'save-excursion' to keep point position in *eldoc* buffer.
Suggested by Andrii Kolomoiets <andreyk.mad@gmail.com>.

4 years agoAllow following symlinks when recompiling directories
Lars Ingebrigtsen [Thu, 26 Nov 2020 10:00:35 +0000 (11:00 +0100)]
Allow following symlinks when recompiling directories

* doc/lispref/compile.texi (Compilation Functions): Document it.
* lisp/emacs-lisp/bytecomp.el (byte-recompile-directory): Allow
following symlinks (bug#10292).

4 years ago; * etc/NEWS: Add some missing documentation markers.
Stefan Kangas [Thu, 26 Nov 2020 06:00:19 +0000 (07:00 +0100)]
; * etc/NEWS: Add some missing documentation markers.

4 years ago* lisp/files.el (auto-mode-alist): Add entry for "archive-contents".
Stefan Kangas [Thu, 26 Nov 2020 05:37:18 +0000 (06:37 +0100)]
* lisp/files.el (auto-mode-alist): Add entry for "archive-contents".

4 years agoAdd "replied" -> "answered" for gnus-search imap searches
Eric Abrahamsen [Wed, 25 Nov 2020 23:26:06 +0000 (15:26 -0800)]
Add "replied" -> "answered" for gnus-search imap searches

* lisp/gnus/gnus-search.el (gnus-search-imap-handle-flag): This allows
"mark:A" to be translated into "ANSWERED" and "-mark:A" to be
translated into "UNANSWERED".

4 years agoAssume default imap TEXT search even when not using parsed queries
Eric Abrahamsen [Sat, 14 Nov 2020 21:37:08 +0000 (13:37 -0800)]
Assume default imap TEXT search even when not using parsed queries

This behavior both better matches the previous nnir behavior, reducing
confusion for new users, and matches behavior when using parsed
queries.

* lisp/gnus/gnus-search.el (gnus-search-imap-search-keys): Make sure
this variable contains all known IMAP search keys.
(gnus-search-run-search): If the search query doesn't start with a
known search key, prepend "TEXT " to the query.

4 years agoUse null-device where appropriate
Michael Albinus [Wed, 25 Nov 2020 21:13:33 +0000 (22:13 +0100)]
Use null-device where appropriate

* lisp/filesets.el (filesets-select-command):
* lisp/shell.el (shell-mode):
* lisp/term.el (term-exec-1):
* lisp/wdired.el (wdired-do-symlink-changes):
* lisp/cedet/ede/pmake.el (ede-proj-makefile-create):
* lisp/eshell/esh-io.el (eshell-set-output-handle):
* lisp/gnus/gnus-fun.el (gnus-grab-cam-x-face):
* lisp/gnus/mml2015.el (mml2015-epg-key-image):
* lisp/gnus/smime.el (smime-noverify-region):
* lisp/org/ob-picolisp.el (org-babel-execute:picolisp):
* lisp/org/ob-screen.el (org-babel-prep-session:screen)
(org-babel-prep-session:screen):
* lisp/play/fortune.el (fortune-quiet-strfile-options):
* lisp/progmodes/cperl-mode.el (cperl-pod2man-build-command):
* lisp/progmodes/sh-script.el (sh-tmp-file):
* lisp/vc/diff-mode.el (diff-add-log-current-defuns)
(diff--font-lock-prettify):
* lisp/vc/ediff-mult.el (ediff-patch-file-form-meta):
* lisp/vc/ediff-ptch.el (ediff-map-patch-buffer)
(ediff-fixup-patch-map, ediff-dispatch-file-patching-job):
* lisp/vc/vc.el (vc-diff-internal): Use null-device or  (null-device),
respectively.  (Bug#3736)

4 years ago* lisp/minibuffer.el (completions-format): Add new value 'one-column'.
Juri Linkov [Wed, 25 Nov 2020 20:24:11 +0000 (22:24 +0200)]
* lisp/minibuffer.el (completions-format): Add new value 'one-column'.

* lisp/minibuffer.el (completion--insert-strings): Support 'one-column'.

* lisp/simple.el (read-from-kill-ring): Truncate strings at frame-width.

4 years ago(defvar): Detect defining a variable currently lexically bound
Stefan Monnier [Wed, 25 Nov 2020 19:49:55 +0000 (14:49 -0500)]
(defvar): Detect defining a variable currently lexically bound

* src/eval.c (lexbound_p): New function.
(Finternal__define_uninitialized_variable): Use it.

4 years agoAdd tests for replace-regexp-in-string
Mattias Engdegård [Wed, 25 Nov 2020 12:56:39 +0000 (13:56 +0100)]
Add tests for replace-regexp-in-string

* test/lisp/subr-tests.el (subr-replace-regexp-in-string): New.

4 years ago* doc/lispref/searching.texi (Rx Constructs): Group numbering fix
Mattias Engdegård [Wed, 25 Nov 2020 11:39:56 +0000 (12:39 +0100)]
* doc/lispref/searching.texi (Rx Constructs): Group numbering fix

4 years agoFix compilation issue when --enable-checking=glyphs
Yuuki Harano [Wed, 25 Nov 2020 11:40:10 +0000 (20:40 +0900)]
Fix compilation issue when --enable-checking=glyphs

* src/pgtkfns.c (Fx_create_frame): Remove code surrounded by GLYPH_DEBUG.
(x_create_tip_frame): Remove code surrounded by GLYPH_DEBUG.

4 years ago* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process):
Michael Albinus [Wed, 25 Nov 2020 11:24:08 +0000 (12:24 +0100)]
* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process):

Use `tramp--test-windows-nt-p'.

4 years agoMerge from origin/emacs-27
Michael Albinus [Wed, 25 Nov 2020 11:18:23 +0000 (12:18 +0100)]
Merge from origin/emacs-27

6442cdc0e4 Revert extra focus redirection in do_switch_frame (Bug#24803)
fc4379f1ae Minor cleanup of tramp-tests.el on MS Windows
dea3d6aa18 Fix handling of defcustom :local tag

4 years ago; Merge from origin/emacs-27
Michael Albinus [Wed, 25 Nov 2020 10:49:54 +0000 (11:49 +0100)]
; Merge from origin/emacs-27

The following commit was skipped:

b2ee665024 CC Mode.  Fix an off by one error.  Fixes bug #41809

4 years agoMerge from origin/emacs-27
Michael Albinus [Wed, 25 Nov 2020 10:49:54 +0000 (11:49 +0100)]
Merge from origin/emacs-27

f425a774c2 Fix display artifacts when 'display' properties cover newl...

4 years agoRevert extra focus redirection in do_switch_frame (Bug#24803)
Martin Rudalics [Wed, 25 Nov 2020 08:58:21 +0000 (09:58 +0100)]
Revert extra focus redirection in do_switch_frame (Bug#24803)

* src/frame.c (do_switch_frame): Do not also redirect frame
focus when FRAME has its minibuffer window on the selected
frame which was intended to fix Bug#24500.  It may cause
Bug#24803 and lead to a nasty state where no active cursor is
shown on any frame, see
https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg01137.html.

4 years agoAdd 'completions-detailed' to add prefix/suffix with 'affixation-function'
Juri Linkov [Wed, 25 Nov 2020 08:46:59 +0000 (10:46 +0200)]
Add 'completions-detailed' to add prefix/suffix with 'affixation-function'

* doc/lispref/minibuf.texi (Completion Variables)
(Programmed Completion): Add affixation-function.

* lisp/help-fns.el (help--symbol-completion-table-affixation): New function.
(help--symbol-completion-table): Set affixation-function when
completions-detailed is non-nil.

* lisp/minibuffer.el (completion-metadata): Add affixation-function
to docstring.
(completions-annotations): Inherit from shadow with italic.
(completions-detailed): New defcustom.
(completion--insert-strings): Count string-width on all strings in
completion list.  Insert prefix and suffix.
(completion-extra-properties): Add affixation-function to docstring.
(minibuffer-completion-help): Call affixation-function.
(minibuffer-default-prompt-format): Move down closer to its use.

https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00613.html

4 years agoMinor cleanup of tramp-tests.el on MS Windows
Michael Albinus [Wed, 25 Nov 2020 08:41:11 +0000 (09:41 +0100)]
Minor cleanup of tramp-tests.el on MS Windows

* test/lisp/net/tramp-tests.el (tramp-test29-start-file-process):
Do not test remote pty on MS Windows.

4 years agoMove code in face-remap.el to avoid a compilation warning
Lars Ingebrigtsen [Wed, 25 Nov 2020 05:29:10 +0000 (06:29 +0100)]
Move code in face-remap.el to avoid a compilation warning

* lisp/face-remap.el (text-scale--refresh): Move code to avoid
compilation warning.

In text-scale--refresh:
face-remap.el:241:14: Warning: reference to free variable ‘text-scale-mode’

4 years agoMake text-scale-mode optionally adjust the header line
Stefan Kangas [Wed, 25 Nov 2020 02:03:48 +0000 (03:03 +0100)]
Make text-scale-mode optionally adjust the header line

* lisp/face-remap.el
(text-scale-remap-header-line-face): New buffer local variable.
(text-scale-mode): Adjust header line if above variable is non-nil.
(face-remap--clear-remappings, face-remap--remap-face): New defuns.
* lisp/face-remap.el: Arrange to watch text-scale-mode-remapping.
(text-scale--refresh): New function.

* lisp/emacs-lisp/tabulated-list.el (tabulated-list-mode): Use
text-scale-remap-header-line.  (Bug#41852)

4 years agoYank items selected from kill-ring using completion and minibuffer history
Juri Linkov [Tue, 24 Nov 2020 19:23:41 +0000 (21:23 +0200)]
Yank items selected from kill-ring using completion and minibuffer history

* doc/emacs/killing.texi (Earlier Kills): Document standalone M-y.

* doc/emacs/search.texi (Isearch Yank): Explain standalone M-y.

* doc/lispref/text.texi (Yank Commands): Soften the wording of
yank after another yank.

* lisp/delsel.el: Put 'yank' property on yank-pop and yank-from-kill-ring.

* lisp/isearch.el (isearch-yank-pop): Use with-isearch-suspended
and read-from-kill-ring to read a string from the kill-ring and
append it to the search string.

* lisp/simple.el (yank-pop): Call yank-from-kill-ring and
read-from-kill-ring when last-command is not 'yank' instead of
signaling an error.  Remove "*" from interactive spec.  Update docstring.
(read-from-kill-ring): New function.
(yank-from-kill-ring): New command.

https://lists.gnu.org/archive/html/emacs-devel/2020-11/msg00801.html

4 years ago* build-aux/update-subdirs: Use lexical-binding in subdirs.el.
Stefan Kangas [Tue, 24 Nov 2020 19:09:04 +0000 (20:09 +0100)]
* build-aux/update-subdirs: Use lexical-binding in subdirs.el.

4 years agoAdd a (broken) unit test to exemplify Bug#11218.
Philipp Stephani [Tue, 24 Nov 2020 17:38:36 +0000 (18:38 +0100)]
Add a (broken) unit test to exemplify Bug#11218.

* test/lisp/emacs-lisp/ert-tests.el
(ert-test-with-demoted-errors): New (broken) unit test.

4 years ago; Reintroduce line mistakenly removed in my last commit
Stefan Kangas [Tue, 24 Nov 2020 17:10:29 +0000 (18:10 +0100)]
; Reintroduce line mistakenly removed in my last commit

4 years agoRemove XEmacs compat code from idlw-help.el
Stefan Kangas [Tue, 24 Nov 2020 17:03:31 +0000 (18:03 +0100)]
Remove XEmacs compat code from idlw-help.el

* lisp/progmodes/idlw-help.el (idlwave-do-context-help)
(idlwave-help-show-help-frame): Remove XEmacs compat code.

4 years agoMake XEmacs compat aliases easy-menu-{add,remove} obsolete
Stefan Kangas [Tue, 24 Nov 2020 16:39:11 +0000 (17:39 +0100)]
Make XEmacs compat aliases easy-menu-{add,remove} obsolete

* lisp/emacs-lisp/easymenu.el (easy-menu-remove, easy-menu-add):
Make XEmacs compat aliases obsolete.
* lisp/allout.el (allout-setup-menubar):
* lisp/cus-edit.el (Custom-mode):
* lisp/gnus/gnus-art.el (gnus-article-edit-mode):
* lisp/gnus/message.el (message-mode):
* lisp/net/sieve.el (sieve-manage-mode):
* lisp/org/org-agenda.el (org-agenda-mode):
* lisp/org/org-table.el (org-table-edit-formulas, orgtbl-mode):
* lisp/org/org.el:
* lisp/progmodes/cperl-mode.el (cperl-mode):
* lisp/progmodes/hideshow.el (hs-minor-mode):
* lisp/progmodes/idlw-help.el (idlwave-help-mode):
* lisp/progmodes/idlw-shell.el (idlwave-shell-mode):
* lisp/progmodes/idlwave.el (idlwave-mode):
* lisp/progmodes/meta-mode.el (meta-common-mode):
* lisp/progmodes/octave.el (octave-mode):
* lisp/progmodes/prolog.el (prolog-menu):
* lisp/progmodes/tcl.el (tcl-mode):
* lisp/speedbar.el (speedbar-reconfigure-keymaps):
* lisp/term.el (term-mode, term-char-mode, term-process-pager):
* lisp/textmodes/dns-mode.el (dns-mode):
* lisp/wid-browse.el (widget-browse-mode): Don't call above
obsolete aliases.
* lisp/cedet/semantic/grammar.el (semantic-grammar-setup-menu-xemacs):
* lisp/mh-e/mh-folder.el (mh-folder-mode):
* lisp/mh-e/mh-identity.el (mh-identity-add-menu):
* lisp/mh-e/mh-letter.el (mh-letter-mode):
* lisp/mh-e/mh-search.el (mh-search-mode):
* lisp/mh-e/mh-show.el (mh-show-mode):
* lisp/obsolete/otodo-mode.el (todo-mode):
* lisp/progmodes/antlr-mode.el (antlr-mode):
* lisp/progmodes/cc-mode.el (c-mode, c++-mode, objc-mode)
(java-mode, idl-mode, pike-mode):
* lisp/progmodes/sql.el (sql-mode, sql-interactive-mode):
* lisp/progmodes/vhdl-mode.el (vhdl-update-mode-menu)
(vhdl-add-source-files-menu, vhdl-mode):
* lisp/textmodes/reftex-index.el (reftex-index-mode)
(reftex-index-phrases-mode):
* lisp/textmodes/reftex-toc.el (reftex-toc-mode):
* lisp/textmodes/reftex.el (reftex-mode): Only call above obsolete
aliases in XEmacs.

* lisp/progmodes/prolog.el (prolog-inferior-menu):
* lisp/erc/erc-menu.el (erc-menu-add, erc-menu-remove): Don't call
above obsolete aliases.  Make obsolete.
* lisp/erc/erc-menu.el (menu, erc-menu-add, erc-menu-remove):
* lisp/progmodes/prolog.el (prolog-inferior-mode): Adjust callers.
* lisp/speedbar.el (speedbar-previous-menu): Make obsolete.
(Bug#44731)

4 years agoFix handling of defcustom :local tag
Basil L. Contovounesios [Wed, 18 Nov 2020 12:53:03 +0000 (12:53 +0000)]
Fix handling of defcustom :local tag

For discussion, see the following emacs-devel thread:
https://lists.gnu.org/r/emacs-devel/2020-11/msg00734.html

* lisp/custom.el (custom-declare-variable): Delay call to
make-variable-buffer-local until after user option has been
initialized with a value.  Otherwise the user option may be
initialized to nil.
* test/lisp/custom-tests.el (custom--test-local-option)
(custom--test-permanent-option): New :local user options.
(custom-test-local-option): New test for defcustom :local keyword.

4 years agoCC Mode. Fix an off by one error. Fixes bug #41809
Alan Mackenzie [Thu, 25 Jun 2020 17:07:16 +0000 (17:07 +0000)]
CC Mode.  Fix an off by one error.  Fixes bug #41809

* lisp/progmodes/cc-engine.el (c-full-pp-to-literal): Change > to >= (twice).

4 years ago; Fix last change to gnus-sum.el
Basil L. Contovounesios [Tue, 24 Nov 2020 16:19:55 +0000 (16:19 +0000)]
; Fix last change to gnus-sum.el

* lisp/gnus/gnus-sum.el (gnus-paging-select-next): Add :version tag.

4 years agoFix display artifacts when 'display' properties cover newlines
Eli Zaretskii [Tue, 24 Nov 2020 15:04:37 +0000 (17:04 +0200)]
Fix display artifacts when 'display' properties cover newlines

* src/xdisp.c (pos_visible_p): Set glyph_row of scratch iterators
to NULL, to avoid producing glyphs while we figure out the layout.
(Bug#44826)

4 years agoFix menu binding for files in fileset
Mauro Aranda [Tue, 24 Nov 2020 11:48:55 +0000 (08:48 -0300)]
Fix menu binding for files in fileset

* lisp/filesets.el (filesets-remake-shortcut): We want the callback of
the menu item, not a list that contains the callback.  (Bug#44764)

4 years agoFix matching of inline choices for the choice widget
Mauro Aranda [Tue, 24 Nov 2020 11:31:18 +0000 (08:31 -0300)]
Fix matching of inline choices for the choice widget

A choice widget should be able to match either no inline values or
inline values, upon request.  (Bug#44579)

* lisp/wid-edit.el (choice): New property, :inline-bubbles-p.  A
predicate that returns non-nil if the choice widget can act as an
inline widget.  Document it.
(widget-choice-inline-bubbles-p): New function, for the
:inline-bubbles-p property of the choice widget.
(widget-inline-p): New function.  Use the :inline-bubbles-p property
of the widget, if any.
(widget-match-inline): Use the above to see if the widget can act like
an inline widget.  Document it.
(widget-choice-value-create): Account for the case of a choice widget
that has inline members.
(widget-checklist-add-item, widget-editable-list-value-create)
(widget-group-value-create): Use widget-inline-p rather than just
checking for a non-nil :inline property, allowing these functions to
pass the complete information to widgets like the choice widget to
create their values.

* test/lisp/wid-edit-tests.el (widget-test-choice-match-no-inline)
(widget-test-choice-match-all-inline)
widget-test-choice-match-some-inline): New tests, to check that choice
widgets can match its choices, inline or not.
(widget-test-inline-p): New test, for the new function
widget-inline-p.
(widget-test-repeat-can-handle-choice)
(widget-test-repeat-can-handle-inlinable-choice)
(widget-test-list-can-handle-choice)
(widget-test-list-can-handle-inlinable-choice)
(widget-test-option-can-handle-choice)
(widget-test-option-can-handle-inlinable-choice): New tests.  This
grouping widgets need to be able to create a choice widget regardless
if it has inline choices or not.

4 years agoFix finding filelist for :tree fileset (Bug#976)
Drew Adams [Tue, 24 Nov 2020 11:00:29 +0000 (08:00 -0300)]
Fix finding filelist for :tree fileset (Bug#976)

* lisp/filesets.el (filesets-files-under): New function, used to get
all files for a :tree fileset.
(filesets-get-filelist): Use it.  Look for the directory and the
pattern in the right place inside entry.

4 years agoAutoload the 'rx' pcase macroexpander (bug#44807)
Mattias Engdegård [Tue, 24 Nov 2020 09:37:37 +0000 (10:37 +0100)]
Autoload the 'rx' pcase macroexpander (bug#44807)

* lisp/emacs-lisp/rx.el (rx--pcase-macroexpander]): Autoload.

4 years agoAllow controlling whether SPC in Gnus goes to the next article
Lars Ingebrigtsen [Tue, 24 Nov 2020 08:27:14 +0000 (09:27 +0100)]
Allow controlling whether SPC in Gnus goes to the next article

* doc/misc/gnus.texi (Summary Maneuvering): Document it.
* lisp/gnus/gnus-sum.el (gnus-paging-select-next): New variable.
(gnus-summary-prev-page, gnus-summary-next-page): Use it.

4 years agoMake the `C' command work on marked files
Lars Ingebrigtsen [Tue, 24 Nov 2020 07:44:30 +0000 (08:44 +0100)]
Make the `C' command work on marked files

* lisp/arc-mode.el (archive-copy-file): Make the `C' command work
on marked files (bug#44753).

4 years agoAdd a user option to control how links are followed in eww
Lars Ingebrigtsen [Tue, 24 Nov 2020 07:22:26 +0000 (08:22 +0100)]
Add a user option to control how links are followed in eww

* doc/misc/eww.texi (Advanced): Document it (bug#44783).

* lisp/net/eww.el (eww-use-browse-url): New variable.
(eww-follow-link): Use it.

4 years agoCodesign the executable on recene MacOS systems
Itai Seggev [Tue, 24 Nov 2020 05:52:27 +0000 (06:52 +0100)]
Codesign the executable on recene MacOS systems

* src/Makefile.in (temacs$(EXEEXT)): Codesign the executable on
recent (ARM) MacOS systems (bug#43878).  Without this, building
Emacs fails.

Copyright-paperwork-exempt: yes

4 years agoDelete the emacs-server directory upon Emacs exit
Lars Ingebrigtsen [Tue, 24 Nov 2020 05:41:03 +0000 (06:41 +0100)]
Delete the emacs-server directory upon Emacs exit

* lisp/server.el (server-start): Delete the server directory upon
Emacs exit (bug#44644).  This fixes the problem of /tmp/emacs0
directories being left behind when running an Emacs server as root.

4 years agoTweak the face of unknown backend indicators in flymake
Lars Ingebrigtsen [Tue, 24 Nov 2020 05:22:52 +0000 (06:22 +0100)]
Tweak the face of unknown backend indicators in flymake

* lisp/progmodes/flymake.el (flymake--mode-line-format): Don't put
a face on the the "?" unknown backend indicator, because that
looks odd in inactive windows (bug#44689).

4 years agoHandle outline overlays better when cycling in outline.el
Paul W. Rankin [Tue, 24 Nov 2020 05:08:59 +0000 (06:08 +0100)]
Handle outline overlays better when cycling in outline.el

* lisp/outline.el (outline--cycle-state): Only consider outline
overlays that are on outline headings; when subtree end is
point-max, return overlay-end +1 because final subtree overlay
only reaches point-max -1 (bug#41198).
(outline-cycle-buffer): Check that buffer has top-level headings
before calling outline-hide-sublevels 1 thus preventing
disconcerting buffer state of content reduced to single "..."

4 years agoFix crash when .schema.xml is not installed
Yuuki Harano [Sat, 21 Nov 2020 08:18:49 +0000 (17:18 +0900)]
Fix crash when .schema.xml is not installed

* src/pgtkfns.c (parse_resource_key): Check return value.

4 years agoAdd copyright line
Yuuki Harano [Fri, 20 Nov 2020 12:17:41 +0000 (21:17 +0900)]
Add copyright line

* etc/org.gnu.emacs.defaults.gschema.xml: Add copyright line.

4 years agoWork around gtk_im_context_filter_keypress() issue with super key
Yuuki Harano [Wed, 18 Nov 2020 16:20:06 +0000 (01:20 +0900)]
Work around gtk_im_context_filter_keypress() issue with super key

* src/pgtkterm.c (x_find_modifier_meanings): Convert virtual super
to non-virtual one.
(pgtk_gtk_to_emacs_modifiers): Use non-virtual one.
(pgtk_emacs_to_gtk_modifiers): Use non-virtual one.
(key_press_event): Don't call pgtk_im_context_filter_keypress while
super is pressed.
* src/pgtkterm.h (struct pgtk_display_info): New member.

4 years agolisp/term/pgtk-win.el: Add copyright file header
Jeff Walsh [Wed, 18 Nov 2020 02:46:17 +0000 (13:46 +1100)]
lisp/term/pgtk-win.el: Add copyright file header

4 years agoUpdate copyright dates for PGTK files
Jeff Walsh [Wed, 18 Nov 2020 00:18:07 +0000 (11:18 +1100)]
Update copyright dates for PGTK files

* src/pgtkfns.c:
* src/pgtkgui.h:
* src/pgtkim.c:
* src/pgtkmenu.c:
* src/pgtkselect.c:
* src/pgtkselect.h:
* src/pgtkterm.c:
* src/pgtkterm.h: Update copyright dates - No Funtional Changes

4 years agoFix startup failure on svg-unsupported environments
Yuuki Harano [Mon, 26 Oct 2020 13:05:55 +0000 (22:05 +0900)]
Fix startup failure on svg-unsupported environments

* src/pgtkterm.c (pgtk_bitmap_icon): Re-port X-code.
(pgtk_term_init): Add member initialization.
* src/pgtkterm.h (struct pgtk_display_info): Add member.
(struct pgtk_output): Add member.

4 years agoAvoid weird behavior when resizing with top-left corner
Yuuki Harano [Sun, 18 Oct 2020 11:14:52 +0000 (20:14 +0900)]
Avoid weird behavior when resizing with top-left corner

* src/frame.c (syms_of_frame): Defaults frame_resize_pixelwise to true.

4 years agoDon't use gtk_window_resize to resize offscreen window
Yuuki Harano [Fri, 16 Oct 2020 18:47:03 +0000 (03:47 +0900)]
Don't use gtk_window_resize to resize offscreen window

* src/xwidget.c (Fmake_xwidget): Use gtk_container_check_resize instead.
(Fxwidget_resize): Use gtk_container_check_resize instead.

; Gtk+3 document says:
; > Applications should not use any API specific to GtkWindow
; > to operate on this object. It should be treated as a GtkBin
; > that has no parent widget.

4 years agoAvoid gtk warnings on X
Yuuki Harano [Fri, 16 Oct 2020 18:51:15 +0000 (03:51 +0900)]
Avoid gtk warnings on X

* src/xwidget.c (xwidget_osr_draw_cb): Call it to avoid alloc_needes.

4 years agoAvoid mutating invocation-name (tiny change)
Kira Bruneau [Thu, 15 Oct 2020 18:46:44 +0000 (14:46 -0400)]
Avoid mutating invocation-name (tiny change)

* lisp/term/pgtk-win.el (window-system-initialization): copy invocation-name.

4 years agoFix Gtk warnings
Yuuki Harano [Mon, 5 Oct 2020 12:18:06 +0000 (21:18 +0900)]
Fix Gtk warnings

* src/gtkutil.c (xg_frame_set_char_size): Call appropriate function
(xg_set_undecorated): Do nothing if child frame.
(xg_set_no_focus_on_map): Do nothing if child frame.
(xg_set_no_accept_focus): Do nothing if child frame.
(xg_set_frame_icon): Do nothing if child frame.
(xg_get_file_name): Do nothing if child frame.
(xg_get_font):
* src/pgtkterm.c (pgtk_focus_frame): Do nothing if child frames.
(x_set_frame_alpha): Select correct widget.
(x_new_focus_frame): Focus only when non-child frames.
(pgtk_set_event_handler): Don't set for child frames.
* src/pgtkfns.c (xg_set_icon): Do nothing if child frames.
(xg_set_icon_from_xpm_data): Do nothing if child frames.
(pgtk_set_sticky): Do nothing if child frames.
(Fx_show_tip): Do nothing if child frames.
(Fpgtk_set_mouse_absolute_pixel_position): Select correct widget.
(Fpgtk_mouse_absolute_pixel_position): Select correct widget.
* src/pgtkmenu.c (pgtk_menu_show):
(pgtk_dialog_show):

4 years agoFix crash on drag and drop
Yuuki Harano [Sat, 3 Oct 2020 11:09:07 +0000 (20:09 +0900)]
Fix crash on drag and drop

* src/pgtkterm.c (pgtk_select): Move dispatch before
g_main_context_query.
(drag_drop): Remove drag_drop.
(drag_data_received): Rename arg.
(pgtk_set_event_handler): Remove drag-drop callback.

4 years agoFix mouse cursor doesn't appear on motion events on xwidgets
Yuuki Harano [Tue, 29 Sep 2020 14:09:22 +0000 (23:09 +0900)]
Fix mouse cursor doesn't appear on motion events on xwidgets

* src/xwidget.c (xwidget_osr_event_forward): Propagate motion notify.

4 years agoFix tooltips don't hide on events
Yuuki Harano [Mon, 28 Sep 2020 13:49:38 +0000 (22:49 +0900)]
Fix tooltips don't hide on events

* src/pgtkterm.c: New variable to indicate whether any event occurs.
(configure_event): Clear help string on a event.
(leave_notify_event): Clear help string on a event.
(motion_notify_event): Use gen_help_event.
(pgtk_set_event_handler): Hook configure-event for outer widgets.
(pgtk_term_init): Clear the flag.

4 years agoFix crash on creating child frames.
Yuuki Harano [Tue, 29 Sep 2020 08:20:59 +0000 (17:20 +0900)]
Fix crash on creating child frames.

* src/pgtkfns.c (frame_geometry): Returns nil when no widget.

4 years agoFix crash when child frame updates toolbar
Yuuki Harano [Tue, 29 Sep 2020 09:38:41 +0000 (18:38 +0900)]
Fix crash when child frame updates toolbar

* src/gtkutil.c (update_frame_tool_bar): Do nothing when child frame.

4 years agoExclude Xlib's modifier keys
Yuuki Harano [Mon, 21 Sep 2020 15:14:34 +0000 (00:14 +0900)]
Exclude Xlib's modifier keys

* src/pgtkterm.c (IsModifierKey): New macro.
(key_press_event): Exclude Xlib's modifier keys.

4 years agoRe-implement childframe with emacsgtkfixed
Yuuki Harano [Sun, 6 Sep 2020 14:27:45 +0000 (23:27 +0900)]
Re-implement childframe with emacsgtkfixed

* src/emacsgtkfixed.c (G_DEFINE_TYPE): Make emacs_fixed_get_type public.
* src/emacsgtkfixed.h (EMACS_TYPE_FIXED): Make emacs_fixed_get_type public.
* src/gtkutil.c (xg_frame_set_char_size): Call appropriate functions
by whether the frame is a child frame or not.
(xg_create_frame_widgets): Use GTK_WINDOW_TOPLEVEL when creating child frame.
(xg_create_frame_outer_widgets): New function.
(xg_set_skip_taskbar): Call only when top-level frame.
(xg_set_no_accept_focus): See appropriate widget.
* src/gtkutil.h: New declaration.
* src/pgtkfns.c (pgtk_set_name_internal): Do only when top-level frame.
(Fx_create_frame): Reparent the frame.
(frame_geometry): Call appropriate functions
(syms_of_pgtkfns): Port from X code.
* src/pgtkterm.c (x_free_frame_resources): Destroy appropriate widget.
(x_calc_absolute_position): Port from X code.
(x_set_offset): Re-port from X code.
(pgtk_set_window_size): Use appropriate widget.
(pgtk_make_frame_visible): Use appropriate widget.
(pgtk_make_frame_invisible): Use appropriate widget.
(x_set_parent_frame): Reparent the frame.
(x_set_z_group): Process only when top-level frame.
(pgtk_text_icon): Process only when top-level frame.
(set_fullscreen_state): Process only when top-level frame.
(frame_highlight): Hold ref.
(frame_unhighlight): Hold ref.
(pgtk_window_is_of_frame_recursive): Prune child frames.
(pgtk_window_is_of_frame): Prune child frames.
(print_widget_tree_recursive): Don't call this when not debugging.
(pgtk_handle_draw): Don't call this when not debugging.
(pgtk_set_event_handler): expect map-event for edit_widget not outer widget.
* src/pgtkterm.h (FRAME_WIDGET): New macro.

4 years agoAdd support for x-support-frames
Jeff Walsh [Thu, 27 Aug 2020 12:05:15 +0000 (22:05 +1000)]
Add support for x-support-frames

* src/pgtkfns.c (Fx_export_frames):
(syms_of_pgtkfns): port from X11 version
* src/pgtkterm.c (pgtk_cr_accumulate_data):
(pgtk_cr_destroy):
(pgtk_cr_export_frames): port from X11
* src/pgtkterm.h: add defs

4 years agoEnable GtkIMContext by default
Yuuki Harano [Sat, 22 Aug 2020 10:17:04 +0000 (19:17 +0900)]
Enable GtkIMContext by default

* lisp/term/pgtk-win.el: Call pgtk-use-im-context after init.

* src/pgtkim.c (pgtk_im_use_context): New function.
(pgtk_im_init): Call pgtk_im_use_context.
(Fpgtk_use_im_context): Call pgtk_im_use_context.
(syms_of_pgtkim): New variable Vpgtk_use_im_context_on_new_connection.

4 years agoRemove duplicated syms_of_xwidget call
Yuuki Harano [Sun, 16 Aug 2020 12:37:59 +0000 (21:37 +0900)]
Remove duplicated syms_of_xwidget call

* src/emacs.c (main): Remove duplicated syms_of_xwidget() call.

4 years agoSelf-implement tooltip
Yuuki Harano [Fri, 14 Aug 2020 16:13:52 +0000 (01:13 +0900)]
Self-implement tooltip

* src/gtkutil.c (xg_create_frame_widgets): Use popup for tooltip.
* src/pgtkfns.c (unwind_create_tip_frame): Port X code.
(x_create_tip_frame): Re-port X code.
(x_hide_tip): Re-port X code.
(Fx_show_tip): Re-port X code.
(frame_geometry): Get left_pos and top_pos here.
(syms_of_pgtkfns): Add variables for tooltip.
* src/pgtkterm.c (pgtk_set_event_handler): Set event handler for tooltip.

4 years agoAdd PGTK to system-configuration-features
Yuuki Harano [Thu, 13 Aug 2020 05:26:43 +0000 (14:26 +0900)]
Add PGTK to system-configuration-features

* configure.ac: Set HAVE_PGTK when configuring for PGTK, and
add PGTK for iteration.

4 years agoRe-port image drawing code from X
Yuuki Harano [Mon, 10 Aug 2020 10:06:40 +0000 (19:06 +0900)]
Re-port image drawing code from X

* src/pgtkterm.c (x_cr_draw_image): Re-port X code.
(x_draw_image_foreground): Re-port X code.
(x_draw_image_glyph_string): Re-port X code.

4 years agoMake pointer visible when motion notify event
Yuuki Harano [Thu, 6 Aug 2020 15:47:38 +0000 (00:47 +0900)]
Make pointer visible when motion notify event

* src/pgtkterm.c (motion_notify_event): set pending_signals to true.

4 years agoFix non-English layout does not work
Yuuki Harano [Mon, 20 Jul 2020 12:35:21 +0000 (21:35 +0900)]
Fix non-English layout does not work

* src/pgtkterm.c (key_press_event): Use Vlocale_coding_system.

4 years agoFix font lock is not applied on continued lines
Yuuki Harano [Mon, 13 Jul 2020 14:38:07 +0000 (23:38 +0900)]
Fix font lock is not applied on continued lines

* src/pgtkterm.c (pgtk_parse_color): Remove alpha bits.

4 years agoRestore support for terminal only emacs in PGTK (add --with-pgtk)
Jeff Walsh [Thu, 2 Jul 2020 06:27:30 +0000 (16:27 +1000)]
Restore support for terminal only emacs in PGTK (add --with-pgtk)

* configure.ac: add "--with-pgtk" switch for building pgtk terminal
support.
Adjust X11 window system tests to no clobber pgtk preferences

4 years agoAdd font chooser functionality
Jeff Walsh [Mon, 29 Jun 2020 12:54:57 +0000 (22:54 +1000)]
Add font chooser functionality

* src/pgtkfns.c (Fpgtk_popup_font_panel): repurpose X/gtk font chooser code
(syms_of_pgtkfns): add new symbol

4 years agoFix migrating Child frames
Jeff Walsh [Thu, 25 Jun 2020 06:17:37 +0000 (16:17 +1000)]
Fix migrating Child frames

* src/pgtkterm.c:
(x_calc_absolute_position): Remove Function that has no effect
(x_set_offset): titlebar off should not be stored as an offset, only
used to calculate final move locations

4 years ago* src/keyboard.c (make_lispy_event): Fix coding style
Yuuki Harano [Tue, 26 May 2020 11:41:09 +0000 (20:41 +0900)]
* src/keyboard.c (make_lispy_event): Fix coding style

4 years agoChange coding style
Yuuki Harano [Tue, 26 May 2020 11:38:38 +0000 (20:38 +0900)]
Change coding style

* src/gtkutil.c (xg_display_open):
(xg_get_image_for_pixmap):
(xg_frame_resized):
(xg_create_frame_widgets):
(x_wm_set_size_hint):
(xg_frame_restack):
(xg_finish_scroll_bar_creation):
(xg_update_scrollbar_pos):
(xg_update_horizontal_scrollbar_pos):
(xg_set_toolkit_scroll_bar_thumb):
(xg_event_is_for_scrollbar):

4 years agoFix coding style
Yuuki Harano [Tue, 26 May 2020 11:25:28 +0000 (20:25 +0900)]
Fix coding style

* src/emacs.c (main): Fix coding style

4 years agoChange coding style
Yuuki Harano [Tue, 26 May 2020 11:22:20 +0000 (20:22 +0900)]
Change coding style

* src/image.c (image_create_pattern_from_pixbuf): Change coding style
(image_create_bitmap_from_data): Change coding style
(image_create_bitmap_from_file): Change coding style

4 years ago* src/pgtkselect.h: Change coding style
Yuuki Harano [Sun, 24 May 2020 10:45:35 +0000 (19:45 +0900)]
* src/pgtkselect.h: Change coding style