diff options
| author | Po Lu <luangruo@yahoo.com> | 2024-05-04 16:06:00 +0800 |
|---|---|---|
| committer | Po Lu <luangruo@yahoo.com> | 2024-05-04 16:13:24 +0800 |
| commit | 41dd78cd362a80f1becc006a37f163119b93df10 (patch) | |
| tree | a70aadac807e63052922b214e82dfa0de95dab87 /java/org/gnu/emacs/EmacsThread.java | |
| parent | ecfbd0ff992adcb5b1b4b37884db8dbfda2fca6b (diff) | |
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.
Diffstat (limited to 'java/org/gnu/emacs/EmacsThread.java')
| -rw-r--r-- | java/org/gnu/emacs/EmacsThread.java | 38 |
1 files changed, 13 insertions, 25 deletions
diff --git a/java/org/gnu/emacs/EmacsThread.java b/java/org/gnu/emacs/EmacsThread.java index 4adcb98b2f7..a90eb73b1ef 100644 --- a/java/org/gnu/emacs/EmacsThread.java +++ b/java/org/gnu/emacs/EmacsThread.java @@ -28,24 +28,20 @@ public final class EmacsThread extends Thread { private static final String TAG = "EmacsThread"; - /* Whether or not Emacs should be started with an additional - argument, and that additional argument if non-NULL. */ - private String extraStartupArgument; + /* Whether or not Emacs should be started with additional arguments, + and those additional arguments if non-NULL. */ + private final String[] extraStartupArguments; /* Runnable run to initialize Emacs. */ - private Runnable paramsClosure; - - /* Whether or not to open a file after starting Emacs. */ - private String fileToOpen; + private final Runnable paramsClosure; public EmacsThread (EmacsService service, Runnable paramsClosure, - String extraStartupArgument, String fileToOpen) + String[] extraStartupArguments) { super ("Emacs main thread"); - this.extraStartupArgument = extraStartupArgument; + this.extraStartupArguments = extraStartupArguments; this.paramsClosure = paramsClosure; - this.fileToOpen = fileToOpen; } @Override @@ -54,23 +50,15 @@ public final class EmacsThread extends Thread { String args[]; - if (fileToOpen == null) - { - if (extraStartupArgument == null) - args = new String[] { "libandroid-emacs.so", }; - else - args = new String[] { "libandroid-emacs.so", - extraStartupArgument, }; - } + if (extraStartupArguments == null) + args = new String[] { "libandroid-emacs.so", }; else { - if (extraStartupArgument == null) - args = new String[] { "libandroid-emacs.so", - fileToOpen, }; - else - args = new String[] { "libandroid-emacs.so", - extraStartupArgument, - fileToOpen, }; + /* Prepend "libandroid-emacs.so" to the list of arguments. */ + args = new String[extraStartupArguments.length + 1]; + args[0] = "libandroid-emacs.so"; + System.arraycopy (extraStartupArguments, 0, args, + 1, extraStartupArguments.length); } paramsClosure.run (); |
