import jalview.bin.Jalview;
import jalview.bin.argparser.Arg.Opt;
import jalview.util.FileUtils;
+import jalview.util.HttpUtils;
public class ArgParser
{
// the substitution string used to use the defaultLinkedIdCounter
private static final String DEFAULTLINKEDIDCOUNTER = "{}";
- // the counter added to the default linked id prefix
- private int opennewLinkedIdCounter = 0;
+ // the counter added to the default linked id prefix. NOW using
+ // linkedIdAutoCounter
+ // private int openLinkedIdCounter = 0;
- // the linked id prefix used for --opennew files
- protected static final String OPENNEWLINKEDIDPREFIX = "OPENNEW:";
+ // the linked id prefix used for --open files. NOW the same as DEFAULT
+ protected static final String OPENLINKEDIDPREFIX = DEFAULTLINKEDIDPREFIX;
// the counter used for {n} substitutions
private int linkedIdAutoCounter = 0;
// the linked id substitution string used to use the idCounter
private static final String LINKEDIDAUTOCOUNTER = "{n}";
- // the linked id substitution string used to use the base filename of --open
- // or --opennew
+ // the linked id substitution string used to use the base filename of --append
+ // or --open
private static final String LINKEDIDBASENAME = "{basename}";
- // the linked id substitution string used to use the dir path of --open
- // or --opennew
+ // the linked id substitution string used to use the dir path of --append
+ // or --open
private static final String LINKEDIDDIRNAME = "{dirname}";
// the current argfile
// Make a mutable new ArrayList so that shell globbing parser works.
// (When shell file globbing is used, there are a sequence of non-Arg
// arguments (which are the expanded globbed filenames) that need to be
- // consumed by the --open/--argfile/etc Arg which is most easily done by
+ // consumed by the --append/--argfile/etc Arg which is most easily done by
// removing these filenames from the list one at a time. This can't be done
// with an ArrayList made with only Arrays.asList(String[] args). )
this(new ArrayList<>(Arrays.asList(args)), initsubstitutions);
public ArgParser(List<String> args, boolean initsubstitutions,
boolean allowPrivate)
{
- // do nothing if there are no "--" args and some "-" args
+ // do nothing if there are no "--" args and (some "-" args || >0 arg is
+ // "open")
boolean d = false;
boolean dd = false;
for (String arg : args)
dd = true;
break;
}
- else if (arg.startsWith("-"))
+ else if (arg.startsWith("-") || arg.equals("open"))
{
d = true;
}
// single arg[i] and increment the defaultLinkedIdCounter so that each of
// these files is opened separately.
if (openEachInitialFilenames && !arg.startsWith(DOUBLEDASH)
- && !arg.startsWith("-") && new File(arg).exists())
+ && !arg.startsWith("-") && (new File(arg).exists()
+ || HttpUtils.startsWithHttpOrHttps(arg)))
{
- arg = Arg.OPENNEW.argString();
+ arg = Arg.OPEN.argString();
}
else
{
// make NOACTION adjustments
// default and auto counter increments
- if (a == Arg.INCREMENT)
+ if (a == Arg.NEWFRAME)
{
defaultLinkedIdCounter++;
}
{
if (linkedId == null)
{
- if (a == Arg.OPENNEW)
+ if (a == Arg.OPEN)
{
- // use the next default prefixed OPENNEWLINKEDID
- linkedId = new StringBuilder(OPENNEWLINKEDIDPREFIX)
- .append(Integer.toString(opennewLinkedIdCounter))
+ // use the next default prefixed OPENLINKEDID
+ // NOW using the linkedIdAutoCounter
+ defaultLinkedIdCounter++;
+ linkedId = new StringBuilder(OPENLINKEDIDPREFIX)
+ .append(Integer.toString(defaultLinkedIdCounter))
.toString();
- opennewLinkedIdCounter++;
}
else
{