Change 117522 by jkristian@jkristian-home on 2003/11/11 00:46:57 Renamed UnixStyleFilter to UnixCommand. Improved. Affected files ... ... //users/jkristian/lib/UnixCommandResources.properties#1 branch ... //users/jkristian/lib/UnixStyleFilterResources.properties#2 delete ... //users/jkristian/lib/p4d2pResources.properties#3 edit ... //users/jkristian/src/UnixCommand.java#1 add ... //users/jkristian/src/UnixStyleFilter.java#3 delete ... //users/jkristian/src/p4d2p.java#3 edit Differences ... ==== //users/jkristian/lib/p4d2pResources.properties#3 (text) ==== 48a49 > diff.default: converting default diff (not recommended for `patch`)\n ==== //users/jkristian/src/p4d2p.java#3 (text) ==== 2,3d1 < import java.io.BufferedReader; < import java.io.InputStreamReader; 5d2 < import java.io.PushbackReader; 20c17 < UnixStyleFilter filter = new UnixStyleFilter(p4d2p.class, "hi::o:p:v", ARGV); --- > UnixCommand command = new UnixCommand(p4d2p.class, "hi::o:p:v", ARGV); 22,24c19,21 < Properties options = filter.getOptions(); < if (options.getProperty("h") != null) { < filter.writeError(filter.getHelp()); --- > Properties options = command.getOptions(); > if (options.get("h") != null) { > command.writeError(command.getHelp()); 26,29c23,26 < filter.setEditInPlace(options.getProperty("i")); < LineWriter self = new p4d2p(filter, filter.getOutputWriter()); < while (filter.getFile()) { < Copier.copyAll(filter.getInputLineReader(), self); --- > command.setEditInPlace(options.getProperty("i")); > LineWriter self = new p4d2p(command); > while (command.getFile()) { > Copier.copyAll(command.getInputLineReader(), self); 34c31 < filter.flush(); --- > command.flush(); 38,42c35,50 < private String oldFile = null; < private String oldNote; < private String newFile; < private String newNote; < private List movedFiles = new ArrayList(); --- > protected p4d2p(UnixCommand command) throws IOException { > this.command = command; > this.options = command.getOptions(); > this.verbose = (options.get("v") != null); > this.out = command.getOutputWriter(); > } > > protected static DateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); // ISO 8601 > protected static String epoch = timeFormat.format(new Date(0)); > > protected String now = timeFormat.format(new Date()); > protected UnixCommand command; > protected Properties options; > protected boolean verbose; > protected Writer out; > protected Writer err; 44,48c52,56 < private static final Pattern P4_DESCRIBE_MOVE = Pattern.compile("^\\.\\.\\. (//.+?\\#\\d+ (add|branch|delete))$", Pattern.MULTILINE); < private static final Pattern P4_MOVED_FILE = Pattern.compile("//(.+?)(\\#\\d+) (\\w*)$", Pattern.MULTILINE); < private static final Pattern P4_DESCRIBE_HEADER = Pattern.compile("^==== //(.+?)(\\#\\d+) .*?====( \\(.+\\))?$", Pattern.MULTILINE); < private static final Pattern P4_DIFF_HEADER = Pattern.compile("^==== //(.+?)(\\#\\d+) +- +(.+?) +====( \\(.+\\))?$", Pattern.MULTILINE); < private static final Pattern P4_DIFF2_HEADER = Pattern.compile("^==== //(.+?)(\\#\\d+) +\\(.+?\\) +- +(.+?)(\\#\\d+) +\\(.+?\\) +==== +\\w+$", Pattern.MULTILINE); --- > protected String oldFile = null; > protected String oldNote; > protected String newFile; > protected String newNote; > protected List movedFiles = new ArrayList(); 50,53c58,67 < private static final Pattern VERSION = Pattern.compile("\\#(\\d+)"); < private static final Pattern UNIFIED_DIFF = Pattern.compile("^\\@\\@\\s.*\\s\\@\\@$", Pattern.MULTILINE); < private static final Pattern CONTEXT_DIFF = Pattern.compile("^\\*+$", Pattern.MULTILINE); < private static final Pattern DEFAULT_DIFF = Pattern.compile("^\\d+(,\\d+)?[acd]\\d+", Pattern.MULTILINE); --- > protected static Pattern P4_DESCRIBE_MOVE = Pattern.compile("^\\.\\.\\. (//.+?\\#\\d+ (add|branch|delete))$", Pattern.MULTILINE); > protected static Pattern P4_MOVED_FILE = Pattern.compile("//(.+?)(\\#\\d+) (\\w*)$", Pattern.MULTILINE); > protected static Pattern P4_DESCRIBE_HEADER = Pattern.compile("^==== //(.+?)(\\#\\d+) .*?====( \\(.+\\))?$", Pattern.MULTILINE); > protected static Pattern P4_DIFF_HEADER = Pattern.compile("^==== //(.+?)(\\#\\d+) +- +(.+?) +====( \\(.+\\))?$", Pattern.MULTILINE); > protected static Pattern P4_DIFF2_HEADER = Pattern.compile("^==== //(.+?)(\\#\\d+) +\\(.+?\\) +- +(.+?)(\\#\\d+) +\\(.+?\\) +==== +\\w+$", > Pattern.MULTILINE); > protected static Pattern VERSION = Pattern.compile("\\#(\\d+)"); > protected static Pattern UNIFIED_DIFF = Pattern.compile("^\\@\\@\\s.*\\s\\@\\@$", Pattern.MULTILINE); > protected static Pattern CONTEXT_DIFF = Pattern.compile("^\\*+$", Pattern.MULTILINE); > protected static Pattern DEFAULT_DIFF = Pattern.compile("^\\d+(,\\d+)?[acd]\\d+", Pattern.MULTILINE); 56d69 < //if (verbose) out.write("// write(line)\n"); 60d72 < if (verbose) out.write("// p4 describe move\n"); 64d75 < if (verbose) out.write("// p4 diff header\n"); 72d82 < if (verbose) out.write("// p4 diff2 header\n"); 79d88 < if (verbose) out.write("// p4 describe header\n"); 90d98 < if (verbose) System.err.println("emitting diff -u header"); 97d104 < if (verbose) System.err.println("emitting diff -c header"); 104c111 < if (verbose) System.err.println("emitting diff header (not recommended for `patch`)"); --- > if (verbose) command.writeError(command.getResource("diff.default")); 109a117 > 126d133 < if (verbose) System.err.println(verb); 128,131c135,137 < if (verb.equals("delete")) { < Matcher version = VERSION.matcher(newNote); < version.find(); < oldNote = "#" + (Long.parseLong(version.group(1)) - 1); --- > if ("delete".equals(verb)) { > (m = VERSION.matcher(newNote)).find(); > oldNote = "#" + (Long.parseLong(m.group(1)) - 1); 147c153 < if (verb.equals("delete")) { --- > if ("delete".equals(verb)) { 168c174 < private List p4print(String name) throws IOException { --- > protected List p4print(String name) throws IOException { 176c182 < System.err.println("exit " + p.exitValue() + " from " + cmd); --- > command.writeError("exit " + p.exitValue() + " from " + cmd + "\n"); 181,197d186 < protected UnixStyleFilter filter; < protected Properties options; < protected boolean verbose; < protected Writer out; < < private p4d2p(UnixStyleFilter filter, Writer out) { < this.filter = filter; < this.options = filter.getOptions(); < this.verbose = (options.getProperty("v") != null); < this.out = out; < } < < private static DateFormat timeFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss Z"); // ISO 8601 < private static final String epoch = timeFormat.format(new Date(0)); < < private String now = timeFormat.format(new Date()); <