summaryrefslogtreecommitdiff
path: root/java/org/gnu/emacs/EmacsThread.java
diff options
context:
space:
mode:
authorPo Lu <luangruo@yahoo.com>2024-05-04 16:06:00 +0800
committerPo Lu <luangruo@yahoo.com>2024-05-04 16:13:24 +0800
commit41dd78cd362a80f1becc006a37f163119b93df10 (patch)
treea70aadac807e63052922b214e82dfa0de95dab87 /java/org/gnu/emacs/EmacsThread.java
parentecfbd0ff992adcb5b1b4b37884db8dbfda2fca6b (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.java38
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 ();