1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2026-02-09 01:05:39 -08:00

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.
This commit is contained in:
Po Lu 2024-05-04 16:06:00 +08:00
parent ecfbd0ff99
commit 41dd78cd36
5 changed files with 32 additions and 41 deletions

View file

@ -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 ();