Commit graph

168402 commits

Author SHA1 Message Date
Po Lu
6ab90effbe ; Add another noise macro
* .dir-locals.el (c-mode) <c-noise-macro-names>: Classify
TEST_STATIC as a noise macro.
2023-08-22 17:53:40 +08:00
Po Lu
8e51a3e3f8 Avoid crashes rescaling fonts with long names
* src/font.c (font_rescale_ratio): Check NAME is not nil before
matching it against a regexp.
2023-08-22 17:34:41 +08:00
Po Lu
269fd08dab ; Amend doc strings of two functions
* src/dispnew.c (syms_of_display):

* src/frame.c (Fwindow_system): Revise doc strings to mention
the `android' value.
2023-08-22 17:17:32 +08:00
Po Lu
7af94bacd7 Optimize format 12 cmap table lookup
* src/sfnt.c (sfnt_compare_char): New function.
(sfnt_lookup_glyph_12): Detect ``large'' cmap tables of format
12 and perform a binary search.  Such tables are frequently
provided by CJK fonts.
2023-08-22 16:45:35 +08:00
Gerd Möllmann
cc0f546825 ; Reverse debug spec of cl-flet (bug#65344) 2023-08-22 10:16:40 +02:00
Po Lu
bb2dab61a1 Take precautions against NULL returns from getPrimaryClip
* java/org/gnu/emacs/EmacsSdk11Clipboard.java (getClipboardData):
Return null if the clip data is not set.  Also delete superfluous
debugging code.  (bug#65445)
(getClipboard): Don't dereference NULL clip data.
2023-08-22 15:28:38 +08:00
Po Lu
48eb022deb Avoid errors in posn-col-row if fonts disappear from an X server
* lisp/window.el (window-font-width, window-font-height): Resort
to frame-char-width/height should the font returned by font-info
be unavailable.
2023-08-22 12:35:33 +08:00
Po Lu
354766bcc0 ; * etc/DEBUG: Fix typo. 2023-08-22 10:45:29 +08:00
Po Lu
506ba5c040 * etc/DEBUG: Mention android_exception_check specifics. (bug#65445) 2023-08-22 10:43:58 +08:00
Po Lu
de495477f9 Correct invalid Texinfo markup
* doc/emacs/files.texi (Visiting): Don't enclose an entire form
within @var, use @code for the whole form and @var for
individual variables within instead.

* doc/lispref/commands.texi (Key Sequence Input): @xref must be
followed by either , or ..

* doc/lispref/processes.texi (Filter Functions): Introduce
punctuation absent from the last sentence of a paragraph.
2023-08-22 10:01:22 +08:00
Jim Porter
c86100d46c ; * doc/misc/eshell.texi (Globbing): Fix duplicated index. 2023-08-21 18:45:36 -07:00
Jim Porter
12d01caaef Merge from origin/emacs-29
b72f23a532 ; Fix 'desktop-restore-reuses-frames' customize values
2023-08-21 18:23:12 -07:00
Jim Porter
d792bbdc2c ; Merge from origin/emacs-29
The following commit was skipped:

45cc57ac25 ; Silence byte-compiler
2023-08-21 18:23:12 -07:00
Jim Porter
357c2fba98 Merge from origin/emacs-29
3296031ad7 ; Another improvement for documentation of pixelwise scro...
baeb2d71ae Support defun navigation for DEFUN in c-ts-mode (bug#64442)
781ddd7e7d Fix touchpad scrolling on MS-Windows
c125bd060e Fix order in which package-vc dependencies are resolved
500ced133a Fix building of VC package manuals with relative org link...
456ecabe9e Fix the documentation of 'cl-flet'
f6ebd1ef0d ; * src/treesit.c (Ftreesit_node_parent): Improve comment...
fac0e2d533 Avoid false "wrong passphrase" messages in EPA
8f683b51d8 Fix jsx font-lock in older tree-sitter-js grammars
d9af79ae39 Fix cloning 'face-remapping-alist' for indirect buffers
636fb267c4 Improve documentation of case transfer in replacement com...
7856d51436 Fix horizontal scrolling of images with C-f
8cf5659ec2 ; Fix defcustom in completion.el
a8c8a4e368 ; * src/fns.c (Fcopy_sequence): Doc fix.  (Bug#64960)
205d87cdca Fix unpacking ZIP archives on MS-Windows
3712e8bc38 ; Fix typos in lisp/keymap.el doc strings (bug#65329).
21b2ecee66 Fix command example in Eshell manual
26949819df ; lisp/progmodes/csharp-mode.el (treesit-query-capture): ...
221ed70b90 ; Improve documentation of 'define-alternatives'
32280205e2 Add user options mentioned in the Eshell manual to the va...
cf3145a486 * Add missing alias to `native-comp-enable-subr-trampolin...
922b649028 * Add missing alias to `native-comp-enable-subr-trampolin...
6962823c83 ; * etc/PROBLEMS: Fix typo and clarify wording.

# Conflicts:
#	doc/misc/eshell.texi
2023-08-21 18:23:11 -07:00
Jim Porter
0df2efa4d6 ; Fix issues running gitmerge
* .gitattributes: Ignore whitespace issues in java/INSTALL.

* build-aux/git-hooks/pre-commit (git_diff): Explicitly allow
"ChangeLog.android".

* java/README: Remove extra trailing newline.
2023-08-21 18:22:59 -07:00
Po Lu
b7bd7e92a9 Improve Android adaptive icon
* java/res/drawable/emacs_background.xml: Delete trailing whitespace
and modify gradient offset to match emacs.svg.

* java/res/drawable/emacs_foreground.xml: Delete trailing
whitespace and remove redundant path.
2023-08-22 09:20:47 +08:00
Po Lu
b411761cbb Repair desktop notification on Android 31
* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
Provide FLAG_IMMUTABLE under Android S and later, not just
versions of Android after S.  (bug#65433)
2023-08-22 08:04:16 +08:00
Jim Porter
dc0839de9b Use generics to define Eshell output targets
This is more flexible than before, since third-party code can add new
output target types without advising these functions.  It also
resolves an issue where redirecting to a symbol that has a value in
its function slot doesn't work.

* lisp/eshell/esh-io.el (eshell-virtual-target): New struct.
(eshell-get-target, eshell-output-object-to-target): Reimplement via
'cl-defgeneric'.
(eshell-close-target): Reimplement via 'cl-defgeneric' and simplify
'process' method.
2023-08-21 11:43:24 -07:00
Jim Porter
1375cea157 ; Remove unused Eshell target type
Eshell creates all output targets in 'eshell-get-target', and that
function never returns a cons cell.

* lisp/eshell/esh-io.el (eshell-close-target)
(eshell-output-object-to-target): Remove 'consp' condition.
2023-08-21 11:43:24 -07:00
Jim Porter
cf52cdb121 Allow splicing Eshell globs in-place
This means that Eshell globs can now expand the same way as if the
user had typed each matching file individually.

* lisp/eshell/em-glob.el (eshell-glob-splice-results): New option.
(eshell-no-command-globbing, eshell-add-glob-modifier): Handle spliced
globs.
(eshell-extended-glob): Always return a list when splicing.

* lisp/eshell/em-pred.el (eshell-parse-arg-modifier): Ensure
'eshell-splice-args' is always at the end of the list of modifiers if
present.

* test/lisp/eshell/em-glob-tests.el
(em-glob-test/expand/splice-results)
(em-glob-test/expand/no-splice-results)
(em-glob-test/expand/explicitly-splice-results)
(em-glob-test/expand/explicitly-listify-results): New tests.
(em-glob-test/no-matches): Check result when
'eshell-glob-splice-results' is nil/non-nil.

* doc/misc/eshell.texi (Arguments): Expand explanation about argument
flattening.
(Globbing): Document splicing behavior of globs.

* etc/NEWS: Announce this change.
2023-08-21 11:42:46 -07:00
Eli Zaretskii
b72f23a532 ; Fix 'desktop-restore-reuses-frames' customize values
* lisp/desktop.el (desktop-restore-reuses-frames): Fix defcustom's
value.  (Bug#65435)
2023-08-21 21:18:08 +03:00
Mattias Engdegård
82d8732505 ; * test/lisp/cus-edit-tests.el: remove unused var (bug#63290) 2023-08-21 17:05:53 +02:00
Mattias Engdegård
f4fe820707 Don't describe lexbound uncompiled function as 'closures'
* lisp/help-fns.el (help-fns-function-description-header):
Describe lexbound uncompiled functions as functions.
Whether they technically close over any lexical variables isn't of
interest here.
2023-08-21 17:05:53 +02:00
Po Lu
fb5e1b21fb Properly enumerate GX fonts of the same family with divergent styles
* doc/emacs/android.texi (Android Fonts): Revise explanation of
GX font replacement during font enumeration.

* src/sfntfont.c (sfnt_replace_fonts_p): If PREV and DESC are of
the same family and both are GX fonts, restrict actions taken to
removing duplicate styles from PREV.  Reported by a user who
tried to install GX versions of Cascadia Mono, which are
distributed as two files providing the bold and italic variation
axes respectively.
2023-08-21 20:45:34 +08:00
Mattias Engdegård
c21103bb76 Explicitly disallow named-let in code using dynamic binding
There is no point in permitting named-let to be used in dynbound code;
our code transforms are simply not valid in that context, and it's not
worth the trouble to make it work (to the extent that it is at all
possible). (Bug#59576)

* lisp/emacs-lisp/subr-x.el (named-let):
Error if used with dynamic binding.
* doc/lispref/variables.texi (Local Variables): Amend manual.
2023-08-21 14:17:03 +02:00
Eli Zaretskii
f01a94fc58 ; * lisp/help-fns.el (help-display-function-type): Doc fix (bug#65288). 2023-08-21 15:14:26 +03:00
Po Lu
722559155d ; Adjust commentary
* src/androidterm.c (android_text_to_string)
(android_update_selection, android_reset_conversion)
(android_set_build_fingerprint): Refine wording in commentary
and correct typos.
2023-08-21 16:03:54 +08:00
Gerd Möllmann
18c85306ac Fix debug spec of cl-flet (bug#65344)
* lisp/emacs-lisp/cl-macs.el (cl-flet): Fix debug spec.
(cl-defun): Allow only symbols as function names in debug spec.
* test/lisp/emacs-lisp/cl-macs-tests.el (cl-flet/edebug): New test
case.
2023-08-21 09:27:49 +02:00
Po Lu
c74a99dcd1 ; * doc/lispref/os.texi (Desktop Notifications): Fix typo. 2023-08-21 14:51:39 +08:00
Po Lu
c63f178a30 Make the Emacs icon ``adaptive''
* java/AndroidManifest.xml.in (EmacsApplication): Set icon to
@mipmap/emacs_icon.

* java/org/gnu/emacs/EmacsService.java (onStartCommand): Pick a
better name for the persistent notification channel.

* java/res/drawable/emacs_background.xml:

* java/res/drawable/emacs_foreground.xml:

* java/res/mipmap/emacs_icon.png:

* java/res/mipmap-v26/emacs_icon.xml: New files, comprising an
``adaptive icon'' required by some Android launchers.
2023-08-21 14:39:51 +08:00
Po Lu
b1e498ac8c Enable providing icons for Android desktop notifications
* doc/lispref/os.texi (Desktop Notifications)
<android-notifications-notify>: Mention the :icon parameter.

* java/org/gnu/emacs/EmacsDesktopNotification.java
(EmacsDesktopNotification) <icon>: New field.
(<init>): New argument ICON.  Set this.icon to its value.
(display1): Use provided icon and always supply a pending intent
to open Emacs once the notification is clicked.

* java/res/layout/sdk8_notifications_view.xml
(sdk8_notifications_title, sdk8_notifications_content): Set
foreground color to #000000.

* src/androidselect.c (android_init_emacs_desktop_notification):
Update signature of <init>.
(android_locate_icon): New function.
(android_notifications_notify_1): New arg ICON.
(Fandroid_notifications_notify): New parameter icon.
(syms_of_androidselect): <QCicon>: New symbol.
2023-08-21 09:36:52 +08:00
Andrea Corallo
652e45b70d * Introduce `help-display-function-type' customizable var (bug#65288).
* lisp/help-fns.el (help-display-function-type): New
	customizable var.
	(help-fns--signature): Make use of.
2023-08-20 22:36:47 +02:00
Stefan Kangas
45cc57ac25 ; Silence byte-compiler
* test/src/comp-tests.el (native-comp-eln-load-path): Declare.

(cherry picked from commit 508d24c8b9)
2023-08-20 20:05:26 +02:00
Jens Schmidt
a563ea8963 * lisp/isearch.el (isearch-resume): Add isearch-push-state (bug#65379). 2023-08-20 20:36:49 +03:00
Stefan Kangas
c68d2581d5 Delete some Emacs 19/21 compat code
* lisp/erc/erc-goodies.el (erc-occur):
* lisp/net/newst-plainview.el (newsticker--buffer-redraw): Delete
Emacs 21 compat code.
* lisp/progmodes/sql.el (sql-accumulate-and-indent): Delete Emacs
19 compat code.
2023-08-20 18:39:51 +02:00
Stefan Kangas
fe0d134f48 * lisp/term.el (term--update-term-menu): Simplify. 2023-08-20 18:23:16 +02:00
Po Lu
392d00e0aa Repair desktop notification display on Android 2.3 and 2.2
* java/org/gnu/emacs/EmacsDesktopNotification.java (display1):
Create a pending intent and set it as the contentIntent when
building a notification by hand.
2023-08-20 21:40:08 +08:00
Po Lu
5734c57851 ; * ChangeLog.android: Complete cleanup. 2023-08-20 20:53:13 +08:00
Po Lu
4f714dc081 Support desktop notifications on Android
* doc/emacs/android.texi (Android Environment): Correct list of
permissions granted by default.

* doc/lispref/os.texi (Desktop Notifications): Document the new
function `android-notifications-notify' and its limitations.

* java/AndroidManifest.xml.in: Request notification permissions.

* java/org/gnu/emacs/EmacsDesktopNotification.java: New file.

* java/res/layout/sdk8_notifications_view.xml: New file holding
substitute notification widget definitions for Android versions
prior to 3.0.

* java/res/values/strings.xml: Remove inadvertently introduced
tag attribute.

* lisp/org/org-clock.el (haiku-notifications-notify): Correct
file name in function declaration.
(android-notifications-notify): New declaration.
(org-show-notification): Use `android-notifications-notify'.

* src/androidselect.c (android_init_emacs_desktop_notification)
(android_notifications_notify_1, Fandroid_notifications_notify):
New functions.
(init_androidselect, syms_of_androidselect): Initialize new
class and define new subr.
2023-08-20 20:25:53 +08:00
Eli Zaretskii
321f6bd572 ; Fix documentation of last change
* lisp/net/eww.el (eww--open-url-in-new-buffer)
(eww-open-in-new-buffer):
* etc/NEWS:
* doc/misc/eww.texi (Basics): Improve the documentation of this
new feature.  (Bug#65346)
2023-08-20 11:48:03 +03:00
Lin Sun
bef68b7bbe Allow fetching URL at point without switching to it
* lisp/net/eww.el (eww-open-in-new-buffer):  Stay on current
buffer when invoked with prefix argument.  (Bug#65346)
2023-08-20 11:46:36 +03:00
Eli Zaretskii
3296031ad7 ; Another improvement for documentation of pixelwise scrolling
* doc/lispref/commands.texi (Misc Events): More details about
pixelwise mouse-wheel scrolling events.  (Bug#65070)
2023-08-20 11:09:40 +03:00
Michael Albinus
6fb1d4bb1a ; Fix last change 2023-08-20 09:47:00 +02:00
Michael Albinus
efb276fef1 New user option pcomplete-remote-file-ignore
* etc/NEWS: Mention pcomplete-remote-file-ignore.

* lisp/pcomplete.el (pcomplete-remote-file-ignore):
New user option.
(pcomplete--entries): Use it.

* lisp/shell.el (shell-completion-vars):
Set 'pcomplete-remote-file-ignore'.
2023-08-20 09:41:07 +02:00
Po Lu
fd1479a0af Fix libselinux object leaks
* src/fileio.c (Fcopy_file, Fset_file_selinux_context): Call
freecon prior to signaling file errors.
2023-08-20 12:48:03 +08:00
Po Lu
15e498047f Update Android port
* src/sfnt.c (sfnt_decompose_compound_glyph): New argument
GET_METRICS.  Call this function to retrieve glyph metrics used
to compute phantom points when a component glyph's anchor point
is one.
(sfnt_decompose_glyph, sfnt_build_glyph_outline): Plumb
GET_METRICS these two functions.
(sfnt_interpret_shc): Don't shift the provided reference point.
(sfnt_transform_f26dot6): Eschew looping through X and Y if no
offsets are provided.
(sfnt_interpret_compound_glyph_2): Discontinue initializing
phantom points here.
(sfnt_interpret_compound_glyph_1): Do not incorporate phantom
points into the ultimately produced glyph outline.  Correctly
provide for phantom childanchor points.
(sfnt_test_get_metrics, main): Update tests.

* src/sfnt.h: Update prototypes.

* src/sfntfont.c (struct sfntfont_get_glyph_outline_dcontext):
New fields `hmtx', `hhea' and `maxp'.
(sfntfont_get_metrics): New function.
(sfntfont_get_glyph_outline): Provide new tables and the new
callback function.
2023-08-20 12:48:03 +08:00
Yuan Fu
baeb2d71ae
Support defun navigation for DEFUN in c-ts-mode (bug#64442)
Before this change, beginning/end-of-defun just ignores DEFUN in
c-ts-mode. After this change, beginning/end-of-defun can recognize
DEFUN, but a DEFUN definition is considered two defuns. Eg,
beginning/end-of-defun will stop at (1) (2) and (3) in the following
snippet:

(1)DEFUN ("treesit-node-parser",
       Ftreesit_node_parser, Streesit_node_parser,
       1, 1, 0,
       doc: /* Return the parser to which NODE belongs.  */)
  (Lisp_Object node)
(2){
  CHECK_TS_NODE (node);
  return XTS_NODE (node)->parser;
}
(3)

Ideally we want point to only stop at (1) and (3), but that'll be a
lot harder to do.

* lisp/progmodes/c-ts-mode.el:
(c-ts-mode--defun-valid-p): Refactor to take in account of DEFUN body.
(c-ts-mode--emacs-defun-body-p): New function.
(c-ts-base-mode): Add DEFUN and DEFUN body to recognized types.
(c-ts-mode--emacs-defun-at-point): Now that we recognize both parts of
a DEFUN as defun, c-ts-mode--emacs-defun-at-point needs to be updated
to adapt to it.
2023-08-19 14:55:32 -07:00
Ken Brown
f58d01e01e Skip hanging tests on Cygwin (bug#65325)
* test/lisp/server-tests.el (server-tests/can-create-frames-p):
Define to be nil on Cygwin unless Emacs has at least one of the
features gfilenotify, dbus, or threads.  This causes three tests
to be skipped.

* test/src/keyboard-tests.el (keyboard-unread-command-events):
Skip on Cygwin unless Emacs has at least one of the features
gfilenotify, dbus, or threads.
2023-08-19 14:21:34 -04:00
Michael Albinus
44697457c6 Merge branch 'master' of git.sv.gnu.org:/srv/git/emacs 2023-08-19 19:32:29 +02:00
Michael Albinus
9ecd6553ad Extend T
* lisp/net/tramp.el (tramp-completion-file-name-handler-alist):
Add `file-directory-p'.
(tramp-completion-handle-file-directory-p): New defun.
2023-08-19 19:32:09 +02:00