Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit7203d48

Browse files
committed
mmoved header to inner processing to allow a header for each diff block
1 parente413d79 commit7203d48

File tree

2 files changed

+56
-24
lines changed

2 files changed

+56
-24
lines changed

‎java-diff-utils/src/main/java/com/github/difflib/unifieddiff/UnifiedDiffReader.java‎

Lines changed: 52 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -72,26 +72,45 @@ public final class UnifiedDiffReader {
7272
// [/^---\s/, from_file], [/^\+\+\+\s/, to_file], [/^@@\s+\-(\d+),?(\d+)?\s+\+(\d+),?(\d+)?\s@@/, chunk],
7373
// [/^-/, del], [/^\+/, add], [/^\\ No newline at end of file$/, eof]];
7474
privateUnifiedDiffparse()throwsIOException,UnifiedDiffParserException {
75-
StringheaderTxt ="";
76-
LOG.log(Level.FINE,"header parsing");
77-
Stringline =null;
78-
while (READER.ready()) {
79-
line =READER.readLine();
80-
LOG.log(Level.FINE,"parsing line {0}",line);
81-
if (DIFF_COMMAND.validLine(line) ||INDEX.validLine(line)
82-
||FROM_FILE.validLine(line) ||TO_FILE.validLine(line)
83-
||NEW_FILE_MODE.validLine(line)) {
84-
break;
85-
}else {
86-
headerTxt +=line +"\n";
87-
}
88-
}
89-
if (!"".equals(headerTxt)) {
90-
data.setHeader(headerTxt);
91-
}
92-
75+
// String headerTxt = "";
76+
// LOG.log(Level.FINE, "header parsing");
77+
// String line = null;
78+
// while (READER.ready()) {
79+
// line = READER.readLine();
80+
// LOG.log(Level.FINE, "parsing line {0}", line);
81+
// if (DIFF_COMMAND.validLine(line) || INDEX.validLine(line)
82+
// || FROM_FILE.validLine(line) || TO_FILE.validLine(line)
83+
// || NEW_FILE_MODE.validLine(line)) {
84+
// break;
85+
// } else {
86+
// headerTxt += line + "\n";
87+
// }
88+
// }
89+
// if (!"".equals(headerTxt)) {
90+
// data.setHeader(headerTxt);
91+
// }
92+
93+
Stringline =READER.readLine();
9394
while (line !=null) {
94-
if (!CHUNK.validLine(line)) {
95+
StringheaderTxt ="";
96+
LOG.log(Level.FINE,"header parsing");
97+
while (line !=null) {
98+
LOG.log(Level.FINE,"parsing line {0}",line);
99+
if (validLine(line,DIFF_COMMAND,SIMILARITY_INDEX,INDEX,
100+
FROM_FILE,TO_FILE,
101+
RENAME_FROM,RENAME_TO,
102+
NEW_FILE_MODE,DELETED_FILE_MODE,
103+
CHUNK)) {
104+
break;
105+
}else {
106+
headerTxt +=line +"\n";
107+
}
108+
line =READER.readLine();
109+
}
110+
if (!"".equals(headerTxt)) {
111+
data.setHeader(headerTxt);
112+
}
113+
if (line !=null && !CHUNK.validLine(line)) {
95114
initFileIfNecessary();
96115
while (line !=null && !CHUNK.validLine(line)) {
97116
if (!processLine(line,DIFF_COMMAND,SIMILARITY_INDEX,INDEX,
@@ -107,7 +126,7 @@ private UnifiedDiff parse() throws IOException, UnifiedDiffParserException {
107126
processLine(line,CHUNK);
108127
while ((line =READER.readLine()) !=null) {
109128
line =checkForNoNewLineAtTheEndOfTheFile(line);
110-
129+
111130
if (!processLine(line,LINE_NORMAL,LINE_ADD,LINE_DEL)) {
112131
thrownewUnifiedDiffParserException("expected data line not found");
113132
}
@@ -186,6 +205,19 @@ private boolean processLine(String line, UnifiedDiffLine... rules) throws Unifie
186205
returnfalse;
187206
//throw new UnifiedDiffParserException("parsing error at line " + line);
188207
}
208+
209+
privatebooleanvalidLine(Stringline,UnifiedDiffLine ...rules) {
210+
if (line ==null) {
211+
returnfalse;
212+
}
213+
for (UnifiedDiffLinerule :rules) {
214+
if (rule.validLine(line)) {
215+
LOG.fine(" >>> accepted rule " +rule.toString());
216+
returntrue;
217+
}
218+
}
219+
returnfalse;
220+
}
189221

190222
privatevoidinitFileIfNecessary() {
191223
if (!originalTxt.isEmpty() || !revisedTxt.isEmpty()) {

‎java-diff-utils/src/test/java/com/github/difflib/unifieddiff/UnifiedDiffReaderTest.java‎

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -370,18 +370,18 @@ public void testParseIssue122() throws IOException {
370370
UnifiedDiffdiff =UnifiedDiffReader.parseUnifiedDiff(
371371
UnifiedDiffReaderTest.class.getResourceAsStream("problem_diff_issue122.diff"));
372372

373-
assertThat(diff.getFiles().size()).isEqualTo(22);
373+
assertThat(diff.getFiles().size()).isEqualTo(1);
374374

375-
assertThat(diff.getFiles()).extracting(f ->f.getFromFile()).contains("rt/management/src/test/java/org/apache/cxf/management/jmx/MBServerConnectorFactoryTest.java");
375+
assertThat(diff.getFiles()).extracting(f ->f.getFromFile()).contains("coders/wpg.c");
376376
}
377377

378378
@Test
379379
publicvoidtestParseIssue123()throwsIOException {
380380
UnifiedDiffdiff =UnifiedDiffReader.parseUnifiedDiff(
381381
UnifiedDiffReaderTest.class.getResourceAsStream("problem_diff_issue123.diff"));
382382

383-
assertThat(diff.getFiles().size()).isEqualTo(22);
383+
assertThat(diff.getFiles().size()).isEqualTo(2);
384384

385-
assertThat(diff.getFiles()).extracting(f ->f.getFromFile()).contains("rt/management/src/test/java/org/apache/cxf/management/jmx/MBServerConnectorFactoryTest.java");
385+
assertThat(diff.getFiles()).extracting(f ->f.getFromFile()).contains("src/java/main/org/apache/zookeeper/server/FinalRequestProcessor.java");
386386
}
387387
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp