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);
|
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 if (dir.startsWith("//") && (File.separatorChar == '\\') ) {
638 while (dir.indexOf("//") > -1) {
639 dir = dir.replace("//", "/");
640 }
641 // restore the leading / to fix the Win UNC path
642 dir = "/" + dir;
643 } else {
644 while (dir.indexOf("//") > -1) {
645 dir = dir.replace("//", "/");
646 }
647 }
648 pathsMap.get(version).add(dir.replace(File.separatorChar, '/'));
649 nameBuf[k++] = dir + args[++i];
650 } else if (args[i].startsWith("--release")) {
651 int v = BASE_VERSION;
652 try {
653 v = Integer.valueOf(args[++i]);
654 } catch (NumberFormatException x) {
655 error(formatMsg("error.release.value.notnumber", args[i]));
656 // this will fall into the next error, thus returning false
657 }
658 if (v < 9) {
659 usageError(formatMsg("error.release.value.toosmall", String.valueOf(v)));
660 return false;
661 }
662 // associate the files, if any, with the previous version number
663 if (k > 0) {
664 String[] files = new String[k];
665 System.arraycopy(nameBuf, 0, files, 0, k);
666 filesMap.put(version, files);
|