1
0
mirror of https://git.savannah.gnu.org/git/emacs.git synced 2024-11-21 06:55:39 +00:00
Commit Graph

377 Commits

Author SHA1 Message Date
Po Lu
73367ea5c1 Better port to Android 35
* java/INSTALL: Don't refer users to build-tools 33.0.x.

* java/res/values-v35/styles.xml: New dark theme; define status
bar colors properly for this release.
2024-09-05 10:47:51 +08:00
Po Lu
2847106f3b Port to Android 35
* configure.ac: Temporary workaround for Gnulib bug.  Verify
that the provided android.jar corresponds to Android 35, or any
later version.

* cross/ndk-build/Makefile.in (NDK_BUILD_SO_LDFLAGS): New
variable.

* cross/ndk-build/ndk-resolve.mk
(NDK_LOCAL_A_NAMES_$(LOCAL_MODULE)): Define to
NDK_BUILD_SO_LDFLAGS by default to enable building binaries
with support for 16 kb page sizes.

* java/AndroidManifest.xml.in: Target SDK 35.

* java/INSTALL (16KB PAGE SIZES): New section.  Replace
references to Android 34 with 35.

* java/org/gnu/emacs/EmacsActivity.java (onCreate): Restore
pre-SDK 35 inset-relative placement.

* java/org/gnu/emacs/EmacsFillPolygon.java (perform): Suppress
deprecation warnings, and document why.

* m4/ndk-build.m4 (ndk_INIT, ndk_LATE): Check for and enable
toolchain support for 16 KB page sizes, if available.
(ndk_CONFIG_FILES): Export linker options so derived.

* src/conf_post.h [__ANDROID_API__ < 35]: Include system time.h
and redefine timezone_t to rpl_timezone_t, so that the Gnulib
replacement may not conflict with the useless OS type.
2024-09-04 17:24:34 +08:00
Po Lu
3896f5034f Merge from savannah/emacs-30
16462b1a62 Register for more Intents actions on Android
2024-08-09 10:12:26 +08:00
Po Lu
16462b1a62 Register for more Intents actions on Android
* java/AndroidManifest.xml.in <EmacsOpenActivity>: Register
for SEND Intents with mailto URIs.

* java/org/gnu/emacs/EmacsOpenActivity.java (onCreate): Use
Intent constants rather than string literals.
2024-08-09 10:11:51 +08:00
Stefan Monnier
153732e638 Merge from origin/emacs-30
a478423d19 * lisp/progmodes/peg.el (peg-syntax-classes): Typo (bug#7...
951fb93956 * lisp/transient.el (static-if): Remove duplicated defini...
0218fb2143 Adapt file-remote-p doc
34c1094e60 ; Fix typo in etc/ORG-NEWS (Bug#72186)
5916b172bd * etc/TODO: Delete item about merging Magit.
a6cab228d4 ; Fix typos
41dc28244f * doc/man/emacs.1.in: Add "No warranty" notice.
b2ac343586 ; * doc/man/emacs.1.in: Improve wording.
110b3d08d7 Improve emacs man page description of --user flag
4911f08912 Checkdoc fixes in allout-widgets.el
109b592d77 Checkdoc fixes in subr.el
4643672078 Checkdoc fixes in touch-screen.el
9889774c62 Checkdoc fixes in treesit.el

# Conflicts:
#	etc/NEWS
2024-07-19 14:31:53 -04:00
Stefan Kangas
a6cab228d4 ; Fix typos 2024-07-18 11:46:50 +02:00
Po Lu
d31b202377 Merge from savannah/emacs-30
4c35382e98 ; * src/emacs.c (syms_of_emacs) <Vsystem_type>: Fix doc s...
34882d5243 Port better to Android 3.0
765cfaed77 ; * doc/emacs/anti.texi (Antinews): Fix typos (bug#72167).
7093504da2 ; Fix typos (bug#72167)
8c7c4f4baa New Tramp tests
85d2d7982d Update Tramp manual
504bdd560a ; Fix last change
3ccebbe17b Fix 'toggle-window-dedicated' documentation
719d5753ca ; * doc/lispref/help.texi (Keys in Documentation): Add cr...
e3bba63ecb Checkdoc fixes in transient.el
2024-07-18 13:36:46 +08:00
Po Lu
34882d5243 Port better to Android 3.0
* java/org/gnu/emacs/EmacsNoninteractive.java (main): Use the
old getPackageInfo calling convention if it exists rather than
on Android 2.3.3 and earlier.
2024-07-18 13:34:55 +08:00
Po Lu
f9dae55ccc Merge from savannah/emacs-30
b00fc31dd1 Do not set LD_LIBRARY_PATH during Android initialization
04bf3172f0 ; Set Transient's version
e6f78485aa ; Fix typos in 'which-key-mode' (bug#72093)
2024-07-14 12:47:51 +08:00
Po Lu
b00fc31dd1 Do not set LD_LIBRARY_PATH during Android initialization
* doc/emacs/android.texi (Android Environment): Adjust
documentation to match.

* java/org/gnu/emacs/EmacsNoninteractive.java (main1): New
function.  Remove initialization of EmacsNative hither.
(main): Acquire an ApplicationInfo or LoadedApk, as the case may
be on the host system, derive a ClassLoader from the result, and
load and call `main1' from within this class loader.

* src/android-emacs.c (main):

* src/android.c (setEmacsParams): Do not override
LD_LIBRARY_PATH or set EMACS_LD_LIBRARY_PATH.  This enables
Emacs to execute subprocesses in certain "fortified" Android
systems, amongst other things.
2024-07-14 12:46:23 +08:00
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