616 int n = args.length - count;
617 if (n > 0) {
618 int version = BASE_VERSION;
619 int k = 0;
620 String[] nameBuf = new String[n];
621 pathsMap.put(version, new HashSet<>());
622 try {
623 for (int i = count; i < args.length; i++) {
624 if (args[i].equals("-C")) {
625 if (dflag) {
626 // "--describe-module/-d" does not require file argument(s),
627 // but does accept --release
628 usageError(getMsg("error.bad.dflag"));
629 return false;
630 }
631 /* change the directory */
632 String dir = args[++i];
633 dir = (dir.endsWith(File.separator) ?
634 dir : (dir + File.separator));
635 dir = dir.replace(File.separatorChar, '/');
636 while (dir.indexOf("//") > -1) {
637 dir = dir.replace("//", "/");
638 }
639 pathsMap.get(version).add(dir.replace(File.separatorChar, '/'));
640 nameBuf[k++] = dir + args[++i];
641 } else if (args[i].startsWith("--release")) {
642 int v = BASE_VERSION;
643 try {
644 v = Integer.valueOf(args[++i]);
645 } catch (NumberFormatException x) {
646 error(formatMsg("error.release.value.notnumber", args[i]));
647 // this will fall into the next error, thus returning false
648 }
649 if (v < 9) {
650 usageError(formatMsg("error.release.value.toosmall", String.valueOf(v)));
651 return false;
652 }
653 // associate the files, if any, with the previous version number
654 if (k > 0) {
655 String[] files = new String[k];
656 System.arraycopy(nameBuf, 0, files, 0, k);
657 filesMap.put(version, files);
658 isMultiRelease = version > BASE_VERSION;
659 }
|
616 int n = args.length - count;
617 if (n > 0) {
618 int version = BASE_VERSION;
619 int k = 0;
620 String[] nameBuf = new String[n];
621 pathsMap.put(version, new HashSet<>());
622 try {
623 for (int i = count; i < args.length; i++) {
624 if (args[i].equals("-C")) {
625 if (dflag) {
626 // "--describe-module/-d" does not require file argument(s),
627 // but does accept --release
628 usageError(getMsg("error.bad.dflag"));
629 return false;
630 }
631 /* change the directory */
632 String dir = args[++i];
633 dir = (dir.endsWith(File.separator) ?
634 dir : (dir + File.separator));
635 dir = dir.replace(File.separatorChar, '/');
636
637 String unc = (dir.startsWith("//") && (File.separatorChar == '\\')) ? "/" : "";
638 while (dir.indexOf("//") > -1) {
639 dir = dir.replace("//", "/");
640 }
641 // Restore the second leading '/' needed for the Windows UNC path.
642 dir = unc + dir;
643 pathsMap.get(version).add(dir);
644 nameBuf[k++] = dir + args[++i];
645 } else if (args[i].startsWith("--release")) {
646 int v = BASE_VERSION;
647 try {
648 v = Integer.valueOf(args[++i]);
649 } catch (NumberFormatException x) {
650 error(formatMsg("error.release.value.notnumber", args[i]));
651 // this will fall into the next error, thus returning false
652 }
653 if (v < 9) {
654 usageError(formatMsg("error.release.value.toosmall", String.valueOf(v)));
655 return false;
656 }
657 // associate the files, if any, with the previous version number
658 if (k > 0) {
659 String[] files = new String[k];
660 System.arraycopy(nameBuf, 0, files, 0, k);
661 filesMap.put(version, files);
662 isMultiRelease = version > BASE_VERSION;
663 }
|