1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-06 06:20:55 -08:00
Commit graph

367 commits

Author SHA1 Message Date
Po Lu
166685a7d9 Merge from savannah/emacs-30
e0b271e279 Take precautions against ill-formed content URIs
9331ab056a etags-regen-mode: Handle TAGS buffer being killed
ef3f26ec02 ; Tag ERC multiline blanks test as :expensive
945335fec1 Improve 'put-image' documentation
c38d5cc3b2 Improve 'set-fontset-font' documentation
7de4dbea08 Adapt Tramp's "run0" method
871585db4c * test/src/sqlite-tests.el (sqlite-execute-batch): Declar...
5cf8d60e0d Capitalize "Dired" and "Lisp" in docstrings
37475c9af7 Document Eshell entry points

# Conflicts:
#	etc/NEWS
2024-07-11 11:40:34 +08:00
Po Lu
e0b271e279 Take precautions against ill-formed content URIs
* java/org/gnu/emacs/EmacsService.java (openContentUri)
(checkContentUri): Verify that URIs derived from user-provided
file names can be parsed before attempting to open them.
2024-07-11 11:38:41 +08:00
Po Lu
ce56f939af Merge from savannah/emacs-30
67f291ddae Correct conditions for iconification on Android
130c3efa10 Fix execution of MS-Windows app execution aliases in Eshell
fffab032b0 Improve 'tab-line-tabs-fixed-window-buffers' sorting perf...
2024-07-08 15:43:55 +08:00
Po Lu
67f291ddae Correct conditions for iconification on Android
* java/org/gnu/emacs/EmacsActivity.java (EmacsActivity)
<isPaused>: Rename to <isStopped>.
(attachWindow): Adjust to match.
(onPause): Delete function.
(onStop): Deem frames iconified after calls to onStop instead.
2024-07-08 15:43:22 +08:00
Po Lu
71530ab1ae Merge from savannah/emacs-30
1647494c04 ; * etc/NEWS: Clarify.
b2c966f839 ; * src/treesit.c (Ftreesit_query_capture): Fix typo.
ae38579420 * java/res/mipmap-v26/emacs_icon.xml: Define monospace icon.
b2d99c0d0a Improve `sentence-end-double-space` docstring

# Conflicts:
#	etc/NEWS
2024-07-01 18:12:40 +08:00
Po Lu
ae38579420 * java/res/mipmap-v26/emacs_icon.xml: Define monospace icon. 2024-07-01 11:22:18 +08:00
Po Lu
7c8d4e96ba Merge from savannah/emacs-30
64851d101a Improve Android "adaptive icon"
9b294059d7 Fix documentation for Emacs 30
f50167ab95 ; Update NEWS and corresponding manuals
4e22ef870c Add D-Bus test
f784d946d4 ; Repair corruption in etc/DEBUG
c750fbb539 ; * etc/DEBUG: Advice for debugging Emacs on OpenBSD (bug...
38179f85f8 Merge remote-tracking branch 'savannah/scratch/windows-98...
72cf9964f3 Inaccuracy in efaq.texi
fc48e9e8ed ; Fix typos in DOS Makefile scripts
9b8d754579 ; * etc/NEWS: Explain Nextstep.
8819e5a45d Fix treesit crash (bug#71681)
eaf2dc96c1 ; Fix SHR test on MS-Windows
57880f597c Delete redundant mention of `with-eval-after-load'
ea8ce98434 * doc/misc/efaq.texi (New in Emacs 30): Fix typos.
45a20d781a ; Fix typos in symbols
d95f039af4 Document security fixes in FAQ
d063af203c Add "New in Emacs 30" to FAQ
ca6b484162 ; * etc/NEWS: Move "Minibuffer and Completions"
35c46663e4 ; * etc/NEWS: Move item to "Lisp Changes".
0515b38d28 ; * etc/NEWS: Move keyboard macro items closer together.
22af3a7103 ; * etc/NEWS: More copy-edits.
000ef8876a ; * etc/NEWS: Move items to "Incompatible Lisp Changes".
4088dc8e4c ; * etc/NEWS: Rearrange "Incompatible Lisp Changes".
179800f36b ; * lisp/epg.el (epg--start): Add commentary about encoding.
73898f0214 Fix non-ASCII filename operatiion on EasyPG (bug#71500)
a65b6aac6b Silence warning with global minor mode :predicate
f5f7343ac4 ; * etc/NEWS: Move an item to "Startup Changes"
c95066bf18 ; * etc/NEWS: Move some Lisp items to better place.
bf7db88ce1 ; * etc/NEWS: Rearrange "Editing Changes in Emacs 30.1"
000424eb9e ; * etc/NEWS: Make touch screen support more prominent.
5b5671587f ; * etc/NEWS: Rearrange "Changes in Emacs 30.1".
31124abdef ; * lisp/thingatpt.el (sexp-at-point): Doc fix (bug#71777).
44f269d6e6 Fix: make 'xwidget-webkit-scroll-backward' scroll backwards
358085997c Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/...
736b7cad40 Add jsdoc support to php-ts-mode in <script> element
5f3d964e39 Update to Transient v0.7.2-4-gf75bc48d
2d8881d526 Fix typo incurring leaks of face structures
219501dd62 ; Fix use of @footnote in cc-mode.texi
c7be2dcac4 Merge branch 'emacs-30' of git.sv.gnu.org:/srv/git/emacs ...
f0a4879975 Sync with Tramp 2.7.1
53dcf2b949 ; * etc/NEWS: Move the mwheel entry to a better place.
a5726782d0 ; Sort tree-sitter modes in NEWS
daa89dc939 ; * etc/NEWS: Rearrange "New Modes and Packages in Emacs ...
4ddbf4f70e ; * etc/NEWS: Move many items.
437b1ced26 ; * etc/NEWS: Copy-edits.
7372b2eb30 Expand docstring of which-key-mode
df0eb5be1e Improve documentation of 'remove-overlays' in ELisp manual
73c1252bb6 Fix link to major mode variable in docstring
c4ad54812a Make `shell-mode' more robust
c4ec905c9a Correct ommissions in rmc.el
bf862fc277 * lisp/hi-lock.el: More fixes related to revert-buffer.
6cc8ffae9a Update to Org 9.7.5-9-ga091ca
c477443ab8 ; Fix typo in lua-ts-mode.el
6e5e4d6193 ; Add 'eglot-ensure' option to 'lua-ts-mode-hook'
58a2f36a8b ; * etc/NEWS: Copy edit.
df53ef176a Merge branch 'emacs-30' of git.savannah.gnu.org:/srv/git/...
039e6ffd86 Write Antinews for Emacs 30 ELisp Reference
bf8c9f702b (eval-last-sexp): Fix bug#71774
6d94090cad * lisp/hi-lock.el: More fixes for revert-buffer (bug#57534)
280c91782a * lisp/hi-lock.el (hi-lock-revert-buffer-rehighlight): Im...
339310d020 * lisp/tab-bar.el (tab-bar-select-restore-windows): Impro...
c1e7569a92 Write Antinews for Emacs 30 user manual
233f683da8 ; * lisp/erc/erc-backend.el (erc-server-reconnect-timeout...
20a672b3b2 Change ERC version for Emacs 30 to 5.6.0.30.1
cbede3d43d * src/w32uniscribe.c (syms_of_w32uniscribe_for_pdumper): ...
6f9f9a2155 Fix two tests for --without-all build
98daa10f06 ; * etc/PROBLEMS (PGTK): Remove redundant 2nd PGTK section.
ced33bc239 Fix handling of non-nil 'dired-movement-style'
b1e9b6fd67 ; * lisp/gnus/message.el (message-idna-to-ascii-rhs): Doc...
5eb9a0d2c7 ; * etc/NEWS: Fix last change (bug#71720).
6ec77f580d Do not prematurely truncate python eldoc string
f475a1a254 ; Fix simple-tests as fallout of last change
aa10d0c5ac Add tests for `kill-whole-line' (bug#65734)
058bb4ca25 kill-whole-line: Honor visibility; fix kill-ring when rea...
e45173d114 * lisp/hi-lock.el (hi-lock-file-patterns-policy): Add val...
d6afb017de * lisp/progmodes/xref.el (xref-revert-buffer-restore-poin...
8d55b38e2a Fix Cygwin build
82125b1a66 Use 'revert-function' in *xref* buffer
860840621a Prevent crashes and related issues if initial activity is...
d5c6eb1f96 Doc fix in 'php-ts-mode'
fb15affde8 Avoid compiler warnings in the Cygwin-w32 build
8d354925dd Add new face 'widget-unselected' to wid-edit.el
1809f6a93e Always perform Eshell process cleanup runs in the Eshell ...
8b1841021c Avert crash in store_mode_line_string on Android 5.0 and ...
e7c85f9235 Use HarfBuzz in Cygwin-w32 build
8e3e206bd3 ; * src/buffer.c (syms_of_buffer) <mode-line-format>: ASC...
fe0d9dfb3b ; * lisp/treesit.el (treesit--syntax-propertize-start): F...
2f18929319 Fix tabbing between widgets (bug#70594)
6ad6507532 ; * lisp/which-key.el (which-key-dont-use-unicode): Add :...
60b38c317b * lisp/touch-screen.el (touch-screen-inhibit-drag): Anoth...
a4ca30ac2e Fix rescaling of images via 'text-scale-mode' in EWW
0e43606b20 * lisp/touch-screen.el (touch-screen-inhibit-drag): Fix t...
1b4c562721 Fix latent side-effects of respecting field boundaries in...
e4046f33ab ; * lisp/simple.el (undo-auto--boundaries): Doc fix (bug#...
008eeb21fd ; * lisp/language/cyrillic.el: Delete obsolete commentary...
680155d3f0 Add missing builtin package declarations
ce4f56caf7 Extend treesitter tests on emba
7e8a97ac78 Show entries from key-translation-map in which-key mode
4a0958642d * lisp/tab-bar.el (tab-bar-tab-group-face-function): Impr...
a769f171e7 ; Fix flymake tests with GCC 14.
96e27c2ecf Don't show char name for multi-char translations
0715abfa86 Reset ls-lisp-use-string-collate when ls-lisp-emulation c...
4fcc38966b Update to Transient v0.7.2-1-gf273c0c8
b7d5ca3a8f * doc/misc/calc.texi (Musical Notes): Fix typo.
164f75822b ; Fix typos
768e92b9c0 Update options that depend on 'which-key-dont-use-unicode'
4b2682b17c ; Remove debugging message in Completion Preview test
73a58329a6 Fix omission of updates to child frames on Android
0edacf2aa7 Add jsdoc support to js-ts-mode
cace0cbee9 ; Restore inadvertently removed line.
2b04effb13 ; * test/lisp/net/shr-tests.el (shr-test--rendering-check...
6619aec6bc ; Don't run new 'shr-test/zoom-image' when built without ...
5d19bfda32 ; * admin/release-branch.txt: Update and fix typo.
fb11294d41 ; Fix typos
d9bd1718f9 Backport: Minor changes in tramp-tests.el
1728de5a77 Backport: Tramp: Fix bug#71709, and other minor changes
dd0fc6aff6 New branch emacs-30
bc72c33ac3 * admin/admin.el: (set-version): Fix regexp for configure...
60475a73d1 Disable Ffile_system_info for Android special directories
18e7a9f3d0 Restore functionality on Windows 98
5f8a9cd4b6 Fix a bug in 'switch-to-buffer'
5f9b5803be Fix zooming images in SHR
6f2036243f ; Doc fix in 'php-ts-mode'.
2f1c882a16 Colorize CSS property value like `css--fontify-region'
dd0994aa36 Merge branch 'master' of git.savannah.gnu.org:/srv/git/emacs
486ea8ef5a * configure.ac: Disable kqueue on Haiku.
737fa7c529 Fix 'Customize' menu entry for 'php-ts-mode'
cb7be6035e Fix compilation on prerelease versions of Haiku
2b848a4e50 Fix FIXME in comment
77e3a56507 Update SKK-JISYO.L from upstream
e5bae78861 Update publicsuffix.txt from upstream
bf5f74288b Add assignment form as `etc/copyright-assign.txt`
fcd3798804 ; Merge from origin/emacs-29
0f01cb0ebd Bump Emacs version to 29.4.50
014aab9847 Fix for grammar change of keyword "virtual" in tree-sitte...
fa364a0d46 Revert "; * etc/HISTORY: Delete never-released Emacs 28.3."
a81417e576 Update Tramp version (don't merge to master)
ff389163ee Manually merge NEWS.29 from emacs-29
ea05713122 ; * etc/HISTORY: Delete never-released Emacs 28.3.
d3469978b8 Merge from origin/emacs-29
3739342a4e ; Merge from origin/emacs-29
38e738a35e Merge from origin/emacs-29
4c4c94fa10 ; Merge from origin/emacs-29
1313b8966a Merge from origin/emacs-29
4a76af51bb Replace literal whitespace with `\s`
e41dd2241f ; Merge from origin/emacs-29
8520ec829d ; * lisp/editorconfig.el (editorconfig-indentation-alist)...
99161fb714 Fix non-existing `editorconfig-set-indentation-python-mode`
fd15d89ec5 Merge remote-tracking branch 'origin/emacs-29' into emacs-29
6a299b3cac Release Emacs 29.4
3f3c08bcc7 Add before-save-hook to man page files
7b0e6cb3ff Use UTC when generating man page timestamps
a7cb642a9f Merge from origin/emacs-29
6491d11b53 ; Merge from origin/emacs-29
2f39a4b28a Merge from origin/emacs-29
150e2b979c ; * src/xfns.c (unwind_create_frame): Add missing definit...
75fdeef7b4 Allow to expand truncated long lines in *Compilation* buf...
fb1b188e1a Eglot: Fix command execution (bug#71642)
155cc89de0 Support for indentation of PHP alternative syntax control...
7f7b28a250 ; Wayland SECONDARY selection problem
11fb3510f4 Prevent auto-revert when deleting entry (bug#71264)
a4fe4ca93c Fix font lock regex for user defined constant in PHP
e1ba4ebb49 Make Compilation mode recognize non-legacy Kotlin/Gradle ...
4f03083499 ; Improve documentation of EditorConfig support
c0bfe42948 List Andrea Corallo as co-maintainer in ack.texi
b3d6880512 * admin/MAINTAINERS: Add myself in (co-)maintainers.
7cc939bf27 ; * lisp/ldefs-boot.el: Regenerated for Emacs 29.4
959eacc2a7 Bump Emacs version to 29.4
9a02fce714 Update files for Emacs 29.4
d96c54d388 * admin/authors.el: Update for Emacs 29.4
fd207432e5 * etc/NEWS: Update for Emacs 29.4
c645e1d820 org-link-expand-abbrev: Do not evaluate arbitrary unsafe ...
50a237c468 Update Tramp version (don't merge to master)
f3e80dd0f7 * admin/emacs-shell-lib: Backport to Bash 4.4 or older.
ce85d3811d Fix bug#49289 also for other auth-source backends

# Conflicts:
#	etc/NEWS
2024-06-30 23:12:09 +08:00
Po Lu
64851d101a Improve Android "adaptive icon"
* java/res/drawable/emacs_background.xml:

* java/res/drawable/emacs_foreground.xml: Transform borders and
gradient colors to better align with the original.
2024-06-30 23:11:19 +08:00
Po Lu
c6a052f2fe Respect --disable-build-details in Android builds
* java/Makefile.in (BUILD_DETAILS, GEN_BUILD_DETAILS): New
variables.
(install_tmp): Tolerate failures in generation of metadata files
and prefix commands for such generation with GEN_BUILD_DETAILS.

* lisp/version.el (android-read-build-system)
(android-read-build-time): Return nil if metadata file does not
exist.
2024-06-30 16:26:39 +08:00
Po Lu
860840621a Prevent crashes and related issues if initial activity is destroyed on Android
* java/org/gnu/emacs/EmacsWindow.java
(EmacsWindow) <initialWindowCreated>: New variable.
(EmacsWindow): If the initial frame has not yet been created,
set attachmentToken to -1.

* java/org/gnu/emacs/EmacsWindowManager.java (registerWindow):
When the window's attachment token is -1 (i.e., it is the
default window), start EmacsActivity rather than
EmacsMultitaskActivity.  Catch exceptions around startActivity.
2024-06-27 11:07:38 +08:00
Po Lu
73a58329a6 Fix omission of updates to child frames on Android
* java/org/gnu/emacs/EmacsView.java (onAttachedFromWindow):
Force a layout cycle rather than report exposure immediately.
(prepareForLayout): Delete function.

* java/org/gnu/emacs/EmacsWindow.java (mapWindow): Remove
redundant calls to prepareForLayout.

* src/androidterm.c (handle_one_android_event): Do not swap
buffers when exposure is registered by a frame only partially
updated.
2024-06-24 12:04:05 +08:00
Po Lu
5fceb53856 Avoid races between the tooltip and compositor on X and Android
* java/org/gnu/emacs/EmacsView.java (onLayout): Don't send
exposure events when the window is still to be attached.

* src/androidfns.c (Fx_show_tip):

* src/xfns.c (Fx_show_tip): Block async input around initial
frame update.
2024-06-19 10:57:07 +08:00
Po Lu
fb04a51894 Fix window class of Android tooltips
* java/org/gnu/emacs/EmacsWindow.java (getWindowLayoutParams):
Declare as a panel, rather than an attached dialog.
2024-06-18 15:53:18 +08:00
Po Lu
3c2df93e06 * java/Makefile.in (emacs.apk-in): Don't compress *.gz files on SDK 8. 2024-06-18 10:11:51 +08:00
Po Lu
82f0014273 Reinforce bitmap reconfiguration on Android
* java/org/gnu/emacs/EmacsView.java (EmacsView) <unswapped>: New
field in which to record whether the back buffer has received
contents beyond those present at the last buffer swap.
<dimensionsLock>: Delete field.
(onAttachedToWindow, onLayout, handleDirtyBitmap)
(prepareForLayout): Rather, synchronize window dimensions with
the view.
(getCanvas, getBitmap): Do not reconfigure the back buffer
bitmap if such outstanding data exists.
(postSwapBuffers): New function.
(swapBuffers): If such outstanding data exists and the back
bufferis pending reconfiguration, recreate the back buffer and
report exposure.

* src/androidterm.c (handle_one_android_event): Fix indentation.
2024-06-17 17:45:48 +08:00
Stefan Kangas
c0eefebabf ; Fix typos 2024-06-16 22:38:26 +02:00
Po Lu
a39f6480ea Minor adjustments to battery.el on Android
* src/android.c (android_query_battery):

* java/org/gnu/emacs/EmacsService.java (queryBattery19)
(queryBattery): Reorder items in value for consistency with
Fandroid_query_battery.

* lisp/battery.el (battery-status-function): Select
battery-android only when android-query-battery is present.
(battery-android): Return temperature and correct values of
power source constants.
2024-06-16 15:28:54 +08:00
Po Lu
8d60b6bab8 Simplify bitmap reallocation on Android
* java/org/gnu/emacs/EmacsView.java: Update outdated commentary.
(handleDirtyBitmap): Don't copy contents of the previous bitmap
to the new.
(onLayout): Unconditionally expose upon layout changes.
2024-06-16 11:35:44 +08:00
Po Lu
6d64cf5ee1 Restore omitted dependency
* java/Makefile.in (install_temp): Depend on
$(libsrc)/asset-directory-tool.
2024-06-12 17:03:00 +08:00
Po Lu
02e70821b3 Restore functionality on Android 2.2
* java/Makefile.in (install_temp): Do not compress
directory-tree and generate such files in a special format that
stores file sizes.

* lib-src/asset-directory-tool.c (struct directory_tree): New
field st_size.
(need_file_size): New variable.
(main_1, main_2, main): Write file sizes before sibling offsets
if `--api-8' is specified.

* src/android-asset.h (struct android_asset_manager): New field
open.
(struct android_asset): New field name.
(AAssetManager_fromJava): Load AssetManager#open.
(AAssetManager_open): If a directory tree has already been
loaded, search for a matching asset and load its size thence, to
avoid the requirement of an AssetFileDescriptor.
(AAsset_close): Don't assume asset->fd exists.  Release
asset->name.
(AAsset_getLength): Likewise.
(android_asset_create_stream): If asset->name exists, call
AssetManager#open, in order to open compressed files.

* src/androidvfs.c (OLD_ANDROID_ASSETS): Define to 1 on API 8.
(android_extract_long, android_scan_directory_tree): Mark
arguments as const.  Adjust offsets when OLD_ANDROID_ASSETS.
(android_is_directory, android_init_assets, android_afs_readdir):
Likewise.

* src/lread.c (lread_fstat): Define to sys_fstat, not fstat.
2024-06-12 16:44:21 +08:00
Po Lu
f543ec18f4 ; * java/Makefile.in: Fix typo. 2024-06-12 13:59:08 +08:00
Po Lu
5fc75b051f Improve compression of Emacs packages on Android 2.2
* configure.ac (ZIP): Search for a `zip' executable and
substitute the same if targeting SDK 8.

* java/INSTALL: Document new requirement.

* java/Makefile.in (GZIP_PROG, ZIP): New substitutions.
(.PHONY): Delete references to directory-tree.

(install_temp): On SDK 8 and earlier, compress large *.el and
Info files with gzip, and divide install_temp into three
separate directories, with one for large files, another for
gzipped files, and one more for the remainder.
(install_temp/assets/directory-tree, install_temp/assets/version)
(install_temp/assets/build_info): Merge these rules into
install_tmp, that they may execute before the assets directory
is split.
(emacs.apk-in): Package each directory separately, accounting
for their varied compression requirements.

* lisp/term/android-win.el (input-decode-map): Define select to
return in input-decode-map.
2024-06-12 13:52:33 +08:00
Po Lu
677f082b0f Eliminate some redundant synchronization on Android
* java/org/gnu/emacs/EmacsService.java (resetIC): Return on all
versions of Android if the connection need not be reset.

* java/org/gnu/emacs/EmacsView.java (getICMode, setICMode):
Remove needless synchronization.
2024-06-11 14:40:55 +08:00
Po Lu
f1c9a32a23 Eliminate Makefile race
* java/Makefile.in (cf-stamp): Don't separately depend on
NDK_BUILD_SHARED, as this renders make liable to descend into
cross/ndk-build twice in different processes.
(clean): Don't remove nonexistent file.
2024-06-07 21:39:01 +08:00
Po Lu
43826a9109 ; * java/INSTALL (LIBRSVG): Typo. 2024-06-07 20:39:47 +08:00
Po Lu
7052654515 Document compilation of librsvg on Android
* java/INSTALL (LIBRSVG): New section.
(BUILDING WITH OLD NDK VERSIONS): Update recommended invocation
of configure in the case of a combined toolchain.
2024-06-07 20:39:46 +08:00
Po Lu
0467b756aa * java/AndroidManifest.xml.in: Revert portions of last change. 2024-06-06 09:16:03 +08:00
Paul Eggert
3dcac22dd4 Spelling fixes 2024-06-04 22:16:28 -07:00
Po Lu
2a699edbe5 Provide additional Android metadata
* java/AndroidManifest.xml.in: Enable preserving user data
beyond uninstallation, restarting activities without persiting
state, increase maximum number of simultaneously open
activities, and provide a sensible category.
2024-06-04 10:23:13 +08:00
Po Lu
d812e94dde Enable downgrading between this and future releases of Emacs
* java/AndroidManifest.xml.in: Fix `versionCode' at 30.
2024-06-04 10:03:01 +08:00
Po Lu
253b1d6ee8 Trim redundancies from EmacsTileObject
* java/org/gnu/emacs/EmacsTileObject.java (EmacsTileObject)
<colorFilter>: Delete unused field.
<paint>: Qualify as `static'.
2024-06-02 16:37:39 +08:00
Po Lu
e96e4906c8 Work around one Android bug and document another
* etc/PROBLEMS (Runtime problems specific to Android): Document
deficiency of "Android Keyboard (AOSP)."

* java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard):
Revert yesterday's change.

* java/org/gnu/emacs/EmacsWindow.java (toggleOnScreenKeyboard):
Sync with the UI thread after displaying the on-screen keyboard.
2024-05-23 17:46:48 +08:00
Po Lu
70effed88d Improve compatibility with Android's default text editor
* java/org/gnu/emacs/EmacsView.java (showOnScreenKeyboard):
Request a selection update if `inputConnection' has been
established, to more closely emulate the OS text editing widget.
(onCreateInputConnection) [EmacsService.DEBUG_IC]: Print current
selection values before reporting them.
2024-05-22 22:00:26 +08:00
Po Lu
8dc00dc222 Housekeeping around androidselect.c
* java/org/gnu/emacs/EmacsClipboard.java (setClipboard)
(getClipboard):

* java/org/gnu/emacs/EmacsSdk11Clipboard.java (setClipboard)
(getClipboard):

* java/org/gnu/emacs/EmacsSdk8Clipboard.java (setClipboard)
(getClipboard): Save and return Strings rather than byte arrays.

* src/androidselect.c (android_init_emacs_clipboard)
(Fandroid_set_clipboard, Fandroid_get_clipboard): Adjust to
match.
2024-05-18 20:45:35 +08:00
Po Lu
9443f8145e Communicate frame titles to the window manager on Android
* java/org/gnu/emacs/EmacsActivity.java (detachWindow)
(attachWindow): Call updateWmName.
(updateWmName): New function; transfer wm name from the window
attached to the task's description.

* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow)
<wmName>: New field.
(setWmName): New function.

* src/android.c (android_init_emacs_window): Link to new
function.
(android_set_wm_name): New function.

* src/android.h (struct android_emacs_service): Delete unused
entries.

* src/androidfns.c (android_set_name_internal, android_set_name)
(android_implicitly_set_name, android_explicitly_set_name)
(android_set_title): Port from X.

* src/androidterm.c (android_term_init): Compute default frame
title.

* src/androidterm.h (struct android_display_info) <x_id_name>:
New field.
2024-05-13 14:42:35 +08:00
Po Lu
ea98a6af2f Additional changes to processing of Num Lock on Android
* java/org/gnu/emacs/EmacsView.java (onKeyDown, onKeyMultiple)
(onKeyDown): Disregard Num and Scroll Lock keys, and return
value of window functions to the system.

* java/org/gnu/emacs/EmacsWindow.java (eventModifiers): Return
normalized meta state, not only those bits the system considers
modifiers.
(onKeyDown, onKeyUp): Ignore numpad keys to which no base
characters are assigned, so that the system may generate the
proper action keys instead.
2024-05-12 15:49:53 +08:00
Po Lu
af6df8e045 Correct earlier changes to processing of Num Lock on Android
* java/org/gnu/emacs/EmacsWindow.java (onKeyDown, onKeyUp):
Cease stripping META_NUM_LOCK_ON and META_SCROLL_LOCK_ON from
meta masks reported to getUnicodeChar.
2024-05-12 15:49:53 +08:00
Po Lu
3ff83246c8 Delete unused functions
* java/org/gnu/emacs/EmacsNative.java (dup, close):

* src/android.c (dup, close): Delete functions no longer
referenced.
2024-05-11 14:34:32 +08:00
Po Lu
ea2b251ab2 Remove redundant encoding of strings in androidvfs.c
* java/org/gnu/emacs/EmacsService.java (getDocumentTrees):
Accept PROVIDER as a String.

* src/android.c (android_init_emacs_service):

* src/androidvfs.c (android_saf_root_opendir): Adjust to match.
2024-05-10 11:42:37 +08:00
Po Lu
c900c707e8 Fix earlier change to content URI resolution on Android
* java/org/gnu/emacs/EmacsService.java (openContentUri): Return
-1 if fd be NULL.

* src/androidvfs.c (android_authority_open): Detect
SecurityException and suchlike.
(android_vfs_init): Initialize exception classes on Android 4.4.
2024-05-10 09:05:54 +08:00
Po Lu
e020f4e9ce Fix hang after failed yank-media on Android
* java/org/gnu/emacs/EmacsClipboard.java (getClipboardTargets)
(getClipboardData):

* java/org/gnu/emacs/EmacsSdk11Clipboard.java
(getClipboardTargets, getClipboardData):

* java/org/gnu/emacs/EmacsSdk8Clipboard.java
(getClipboardTargets, getClipboardData): Return string data as
Strings rather than byte arrays.

* src/androidselect.c (android_init_emacs_clipboard)
(Fandroid_get_clipboard_targets): Adjust to match.
(extract_fd_offsets): Remove duplicated semicolon.
(Fandroid_get_clipboard_data): Call unblock_input before
returning if extract_fd_offsets fails.
2024-05-08 16:03:49 +08:00
Po Lu
5bf4ff806b ; * java/org/gnu/emacs/EmacsTileObject.java: Fix copyright dates. 2024-05-06 17:23:57 +08:00
Po Lu
2f36fc1b4f Optimize stipples on Android
* java/org/gnu/emacs/EmacsGC.java (EmacsGC) <tileObject>:
Change type to EmacsTileObject.
(markDirty): Create an EmacsTileObject rather than a
BitmapDrawable.

* java/org/gnu/emacs/EmacsTileObject.java: New file,
significantly leaner than BitmapDrawable.
2024-05-06 12:09:21 +08:00
Po Lu
51791fd178 Fix inadvertent removal in EmacsWindow
* java/org/gnu/emacs/EmacsWindow.java (onKeyUp): Send KeyPress
events upon deferred KEYCODE_BACK.
2024-05-05 09:03:57 +08:00
Po Lu
41dd78cd36 Simplify handling of command-line arguments on Android
* java/org/gnu/emacs/EmacsActivity.java
(EXTRA_STARTUP_ARGUMENTS): New constant.
(onCreate): Read a string array, not a string extra from the
intent with this key.

* java/org/gnu/emacs/EmacsOpenActivity.java (EmacsOpenActivity)
<fileToOpen>: Delete field.
(onCreate): Provide file name as a command line argument when
starting the Emacs service.

* java/org/gnu/emacs/EmacsPreferencesActivity.java (startEmacsQ)
(startEmacsDebugInit): In like manner, replace ad-hoc
command-line argument extra with a proper array.

* java/org/gnu/emacs/EmacsService.java (EmacsService): Rename
extraStartupArgument to extraStartupArguments, and change its
type to a string array.
(onCreate): Adjust to match.

* java/org/gnu/emacs/EmacsThread.java (EmacsThread)
<extraStartupArguments>: Ditto.
<fileToOpen>: Delete field.
(run): Adjust correspondingly.
2024-05-04 16:13:24 +08:00
Po Lu
139931fefb Simplify management of Android handle IDs
* java/org/gnu/emacs/EmacsCursor.java (EmacsCursor):

* java/org/gnu/emacs/EmacsGC.java (EmacsGC):

* java/org/gnu/emacs/EmacsHandleObject.java (EmacsHandleObject):
Remove HANDLE argument to constructor.

* java/org/gnu/emacs/EmacsPixmap.java (EmacsPixmap):

* java/org/gnu/emacs/EmacsWindow.java (EmacsWindow):

* java/org/gnu/emacs/EmacsInputConnection.java
(EmacsInputConnection) <windowHandle>: Change type to long.

* java/org/gnu/emacs/EmacsNative.java (EmacsNative)
(sendConfigureNotify, sendKeyPress, sendKeyRelease, sendFocusIn)
(sendFocusOut, sendWindowAction, sendEnterNotify)
(sendLeaveNotify, sendMotionNotify, sendButtonPress)
(sendButtonRelease, sendTouchDown, sendTouchUp, sendTouchMove)
(sendWheel, sendIconified, sendDeiconified, sendContextMenu)
(sendExpose, sendDndDrag, sendDndUri, sendDndText)
(beginBatchEdit, commitCompletion, endBatchEdit, commitText)
(deleteSurroundingText, finishComposingText, replaceText)
(getSelectedText, getTextAfterCursor, getTextBeforeCursor)
(setComposingText, setComposingRegion, setSelection)
(performEditorAction, performContextMenuAction, getExtractedText)
(requestSelectionUpdate, requestCursorUpdates, clearInputFlags)
(getSurroundingText, takeSnapshot, getSelection): Accept handles
as longs, rather than shorts.  All callers changed.

* java/org/gnu/emacs/EmacsService.java (queryTree): Return
handles as longs rather than shorts.
(viewGetSelection): Take long WINDOW, not short.

* src/android.c (struct android_emacs_handle): New structure.
(handle_class): New variable.
(android_init_emacs_service, android_init_emacs_pixmap)
(android_init_emacs_gc_class, android_init_emacs_cursor): Adjust
to match signature changes in constructors.
(android_init_emacs_handle): New function.
(initEmacs): Initialize the handle class, its fields and metods.
(sendConfigureNotify, sendKeyPress, sendKeyRelease, sendFocusIn)
(sendFocusOut, sendWindowAction, sendEnterNotify)
(sendLeaveNotify, sendMotionNotify, sendButtonPress)
(sendButtonRelease, sendTouchDown, sendTouchUp, sendTouchMove)
(sendWheel, sendIconified, sendDeiconified, sendContextMenu)
(sendExpose, sendDndDrag, sendDndUri, sendDndText): Update for
changes to handle type.
(android_alloc_id, android_resolve_handle)
(android_resolve_handle2): Remove functions; replace the second
with a macro that accepts one fewer argument.  All callers
changed.
(android_destroy_handle): Cease indexing the handle list for the
handle object.
(android_globalize_reference): New function.
(android_create_window, android_create_gc, android_create_pixmap)
(android_create_font_cursor): Call android_globalize_reference
to convert global references into handles.
(android_free_cursor, android_destroy_window): Cease verifying
the handle type.
(android_copy_area): Check destination object type rather than
handle entry.
(android_query_tree): Adjust for changes to return types.
(likely): Define __builtin_expect variant unconditionally.

* src/android.h (android_resolve_handle): New macro.

* src/androidgui.h (android_handle): Define to intptr_t.

* src/androidterm.c (deleteSurroundingText, finishComposingText)
(performEditorAction, performContextMenuAction, getExtractedText)
(getSelectedText, requestSelectionUpdate, requestCursorUpdates)
(clearInputFlags, getSurroundingText)
(android_get_surrounding_text_internal): Accept handles as
longs, not jshorts.
2024-05-04 11:36:09 +08:00
Po Lu
b84fa71f89 Port visible bell to Android
* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Ignore
GC_INVERT.

* java/org/gnu/emacs/EmacsFillRectangle.java
(EmacsFillRectangle) <invertFilter>: New variable.
(perform): If the transfer mode is invert, copy the source
to itself with invertFilter as the color filter.

* java/org/gnu/emacs/EmacsGC.java (EmacsGC) <xorAlu, srcInAlu>:
Delete now-redundant ALUs.
(markDirty): Cease updating the paint's transfermode.

* java/org/gnu/emacs/EmacsSafThread.java (openDocument1): Fix
typo in documentation.

* src/android.c (android_blit_xor): Delete unused function.
(android_copy_area): Remove calls to unused blit functions.

* src/androidgui.h (enum android_gc_function): Rename XOR to
INVERT.

* src/androidterm.c (android_flash): Replace with GXinvert.
2024-05-02 11:31:37 +08:00
Po Lu
2451456695 Fix compatibility issues with Android clipboards
* java/org/gnu/emacs/EmacsClipboard.java (getClipboardData):
Return an AssetFileDescriptor.

* java/org/gnu/emacs/EmacsContextMenu.java (onMenuItemClick):
Typo corrections in commentary.

* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Raise
minimum version on which to read file descriptors from
ParcelFileDescriptor objects to Honeycomb.

* java/org/gnu/emacs/EmacsSdk11Clipboard.java
(getClipboardData): Return the asset file descriptor.

* java/org/gnu/emacs/EmacsSdk8Clipboard.java (getClipboardData):
Adjust return type to match.

* src/android.h (struct android_parcel_file_descriptor_class):
Move from androidselect.c.

* src/androidselect.c (fd_class): Export function.
(android_init_emacs_clipboard): Adjust signature of
getClipboardData.
(android_init_asset_file_descriptor, close_asset_fd)
(extract_fd_offsets): New functions.
(Fandroid_get_clipboard_data): Extract file descriptor and
offset from the AssetFileDescriptor here, rather than in
getClipboardData.
(init_androidselect): Call android_init_asset_file_descriptor.

* src/androidvfs.c (android_init_fd_class): Export and enable
calling this function more than once.
2024-05-01 11:46:31 +08:00
Po Lu
ee2e0031d8 ; Delete obsolete commentary
* java/org/gnu/emacs/EmacsDrawLine.java (perform): Delete
obsolete commentary.
2024-04-29 09:21:02 +08:00
Po Lu
e658a6938e Implement dots and dashes on Android
* java/org/gnu/emacs/EmacsDrawLine.java (EmacsDrawLine)
(measureLine, polyDashPattern): New function.
(perform): Delegate to polyDashPattern if the line style is not
LineSolid.  Also simplify now that anti-aliasing need no longer
be taken into account.

* java/org/gnu/emacs/EmacsDrawRectangle.java (perform): Mention
omission in commentary.

* java/org/gnu/emacs/EmacsGC.java (EmacsGC): Disable
anti-aliasing in default paint object.
<line_style, line>: New fields.
(markDirty): Apply stroke width.

* src/android.c (android_init_emacs_gc_class): Initialize new
fields.
(android_create_gc, android_free_gc, android_change_gc)
(android_set_dashes, android_get_gc_values):

* src/androidgui.h (enum android_line_style)
(enum android_gc_value_mask, struct android_gc): Introduce line
style, width, dash offset and dash GC attributes.

* src/androidterm.c (android_draw_dash, android_fill_underline)
(android_draw_glyph_string): Port from X.

* src/xterm.c (x_draw_dash): Delete redundant code.
2024-04-28 17:00:43 +08:00