summaryrefslogtreecommitdiff
path: root/wiggle/wiggle-0.6/004ExtractFix
diff options
context:
space:
mode:
Diffstat (limited to 'wiggle/wiggle-0.6/004ExtractFix')
-rw-r--r--wiggle/wiggle-0.6/004ExtractFix63
1 files changed, 63 insertions, 0 deletions
diff --git a/wiggle/wiggle-0.6/004ExtractFix b/wiggle/wiggle-0.6/004ExtractFix
index e69de29bb2..8ab090992d 100644
--- a/wiggle/wiggle-0.6/004ExtractFix
+++ b/wiggle/wiggle-0.6/004ExtractFix
@@ -0,0 +1,63 @@
+Status: ok
+
+Fix off-by-one-error when extracting a merge file.
+
+If a merge ended at EOF, --extract wouldn't interpret it properly.
+
+ ----------- Diffstat output ------------
+ ./extract.c | 8 ++++----
+ ./p | 2 +-
+ 2 files changed, 5 insertions(+), 5 deletions(-)
+
+diff ./extract.c~current~ ./extract.c
+--- ./extract.c~current~ 2004-02-03 13:18:41.000000000 +1100
++++ ./extract.c 2004-02-03 13:18:55.000000000 +1100
+@@ -207,7 +207,7 @@ int split_merge(struct stream f, struct
+ lineno++;
+ switch(state) {
+ case 0:
+- if (len>8 &&
++ if (len>=8 &&
+ strncmp(cp, "<<<<<<<", 7)==0 &&
+ (cp[7] == ' ' || cp[7] == '\n')
+ ) {
+@@ -222,7 +222,7 @@ int split_merge(struct stream f, struct
+ }
+ break;
+ case 1:
+- if (len>8 &&
++ if (len>=8 &&
+ strncmp(cp, "|||||||", 7)==0 &&
+ (cp[7] == ' ' || cp[7] == '\n')
+ ) {
+@@ -232,7 +232,7 @@ int split_merge(struct stream f, struct
+ copyline(&r1, &cp, end);
+ break;
+ case 2:
+- if (len>8 &&
++ if (len>=8 &&
+ strncmp(cp, "=======", 7)==0 &&
+ (cp[7] == ' ' || cp[7] == '\n')
+ ) {
+@@ -242,7 +242,7 @@ int split_merge(struct stream f, struct
+ copyline(&r2, &cp, end);
+ break;
+ case 3:
+- if (len>8 &&
++ if (len>=8 &&
+ strncmp(cp, ">>>>>>>", 7)==0 &&
+ (cp[7] == ' ' || cp[7] == '\n')
+ ) {
+
+diff ./p~current~ ./p
+--- ./p~current~ 2004-02-03 13:18:44.000000000 +1100
++++ ./p 2004-02-03 13:18:55.000000000 +1100
+@@ -170,7 +170,7 @@ commit_one()
+ {
+ rm -f "$1~current~"
+ mv "$1" "$1~current~"
+- cp "$1~current~" $1
++ cp -p "$1~current~" $1
+ chmod u+w $1
+ }
+