diff options
author | Po Lu <luangruo@yahoo.com> | 2023-01-24 17:31:16 +0800 |
---|---|---|
committer | Po Lu <luangruo@yahoo.com> | 2023-01-24 17:31:16 +0800 |
commit | 56e55a80080f78754db6f385d574d17c3631ee30 (patch) | |
tree | 58abd71c77cb2e95b93c39c69dc76bb0ea90adac /src/emacs.c | |
parent | 3267a2d6d2b1f5b62f12f849712ead7016e71976 (diff) | |
download | emacs-56e55a80080f78754db6f385d574d17c3631ee30.tar.gz |
Update Android port
* INSTALL.android: Update.
* build-aux/ndk-build-helper-1.mk: Fix typo.
* configure.ac: Enable --with-json on Android.
* cross/ndk-build/ndk-build-shared-library.mk:
(NDK_CFLAGS_$(LOCAL_MODULE)):
(LOCAL_MODULE_FILENAME):
* cross/ndk-build/ndk-build-static-library.mk:
(ALL_OBJECT_FILES$(LOCAL_MODULE)):
(LOCAL_MODULE_FILENAME): Recursively resolve dependencies.
* cross/ndk-build/ndk-resolve.mk: New function.
* doc/emacs/android.texi (Android Startup): Document how Emacs
is dumped during initial startup.
* java/Makefile.in (filename): Fix build with multiple shared
libraries.
* java/README: Improve commentary.
* java/org/gnu/emacs/EmacsApplication.java (onCreate): Look and
set dump file.
* java/org/gnu/emacs/EmacsNative.java (EmacsNative): New
function getFingerprint.
* java/org/gnu/emacs/EmacsPreferencesActivity.java (onCreate):
Add option to erase the dump file.
* java/org/gnu/emacs/EmacsService.java (browseUrl): New
function.
* java/org/gnu/emacs/EmacsThread.java (run): Specify dump file
if found.
* lisp/loadup.el: Always dump during loadup on Android.
* lisp/net/browse-url.el (browse-url--browser-defcustom-type):
(browse-url-default-browser):
(browse-url-default-android-browser): New browse url type.
* m4/ndk-build.m4 (ndk_package_map): Map jansson to libjansson.
* src/android.c (struct android_emacs_service): New method
`browse_url'.
(getFingerprint): New function.
(android_init_emacs_service): Initialize new method.
(android_browse_url): New function.
* src/android.h: Update prototypes.
* src/androidselect.c (Fandroid_browse_url): New function.
(syms_of_androidselect): Define it.
* src/emacs.c (load_pdump): Don't look in fancy places on
Android.
* src/pdumper.c (Fdump_emacs_portable): Allow dumping while
interactive on Android.
(syms_of_pdumper): New variable `pdumper-fingerprint'.
* src/sfntfont-android.c (sfntfont_android_composite_bitmap):
Fix unused variables.
Diffstat (limited to 'src/emacs.c')
-rw-r--r-- | src/emacs.c | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/src/emacs.c b/src/emacs.c index 02016e53c45..b0c19fe0070 100644 --- a/src/emacs.c +++ b/src/emacs.c @@ -744,6 +744,8 @@ argmatch (char **argv, int argc, const char *sstr, const char *lstr, } } +#if !defined HAVE_ANDROID || defined ANDROID_STUBIFY + /* Find a name (absolute or relative) of the Emacs executable whose name (as passed into this program) is ARGV0. Called early in initialization by portable dumper loading code, so avoid Lisp and @@ -843,6 +845,8 @@ find_emacs_executable (char const *argv0, ptrdiff_t *candidate_size) #endif /* !WINDOWSNT */ } +#endif + #ifdef HAVE_PDUMPER static const char * @@ -875,6 +879,30 @@ dump_error_to_string (int result) static char * load_pdump (int argc, char **argv) { +#if defined HAVE_ANDROID && !defined ANDROID_STUBIFY + char *dump_file = NULL; + int skip_args = 0, result; + + while (skip_args < argc - 1) + { + if (argmatch (argv, argc, "-dump-file", "--dump-file", 6, + &dump_file, &skip_args) + || argmatch (argv, argc, "--", NULL, 2, NULL, &skip_args)) + break; + skip_args++; + } + + if (!dump_file) + return argv[0]; + + result = pdumper_load (dump_file, argv[0]); + + if (result != PDUMPER_LOAD_SUCCESS) + fatal ("could not load dump file \"%s\": %s", + dump_file, dump_error_to_string (result)); + return argv[0]; +#else + const char *const suffix = ".pdmp"; int result; char *emacs_executable = argv[0]; @@ -1067,6 +1095,7 @@ load_pdump (int argc, char **argv) xfree (dump_file); return emacs_executable; +#endif } #endif /* HAVE_PDUMPER */ |