X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fbin%2Fargparser%2FArgParser.java;h=1558065cdbef3c21c2a242baa208bcf1923ba774;hb=65ed1da9a1710a9ce132c7edfce54955dc1ddf99;hp=f08e678112d83ba1221b6f05f293ad1f1397c5ff;hpb=b9293410486a5a6f9bc505e66b04b912a559cdd5;p=jalview.git diff --git a/src/jalview/bin/argparser/ArgParser.java b/src/jalview/bin/argparser/ArgParser.java index f08e678..1558065c 100644 --- a/src/jalview/bin/argparser/ArgParser.java +++ b/src/jalview/bin/argparser/ArgParser.java @@ -48,7 +48,7 @@ public class ArgParser protected static final String DOUBLEDASH = "--"; - protected static final char EQUALS = '='; + public static final char EQUALS = '='; protected static final String NEGATESTRING = "no"; @@ -302,12 +302,34 @@ public class ArgParser Arg a = argMap.get(argName); // check for boolean prepended by "no" e.g. --nowrap boolean negated = false; - if (a == null && argName.startsWith(NEGATESTRING) && argMap - .containsKey(argName.substring(NEGATESTRING.length()))) + if (a == null) { - argName = argName.substring(NEGATESTRING.length()); - a = argMap.get(argName); - negated = true; + if (argName.startsWith(NEGATESTRING) && argMap + .containsKey(argName.substring(NEGATESTRING.length()))) + { + argName = argName.substring(NEGATESTRING.length()); + a = argMap.get(argName); + negated = true; + } + else + { + // after all other args, look for Opt.PREFIXKEV args if still not + // found + for (Arg potentialArg : EnumSet.allOf(Arg.class)) + { + if (potentialArg.hasOption(Opt.PREFIXKEV) && argName != null + && argName.startsWith(potentialArg.getName()) + && equalPos > -1) + { + val = argName.substring(potentialArg.getName().length()) + + EQUALS + val; + argName = argName.substring(0, + potentialArg.getName().length()); + a = potentialArg; + break; + } + } + } } // check for config errors @@ -464,7 +486,8 @@ public class ArgParser val = LINKEDIDDIRNAME + File.separator + LINKEDIDBASENAME + val.substring(MATCHALLLINKEDIDS.length()); } - else if (a.hasOption(Opt.OUTPUTFILE) && a.hasOption(Opt.ALLOWALL) + else if (a.hasOption(Opt.OUTPUTFILE) + && a.hasOption(Opt.ALLOWALL) && val.startsWith(MATCHOPENEDLINKEDIDS)) { // --output=open*.ext is shorthand for --opened --output