Robie Basak <robie.basak@xxxxxxxxxxxxx> writes: > "patch" works with -p1 and diffs in the following form: > --- foo.orig//bar > +++ foo//bar > ... > > patch(1) says that "A sequence of one or more adjacent slashes is > counted as a single slash." It merely says patch(1) treats duplicate slashes that way; it does not mean it is a useful thing to do in the real life. Could you justify why such a change is a good thing in your proposed commit log message? > builtin/apply.c | 8 ++++++-- > t/t4153-apply-doubleslash.sh | 29 +++++++++++++++++++++++++++++ > 2 files changed, 35 insertions(+), 2 deletions(-) > create mode 100755 t/t4153-apply-doubleslash.sh Can we avoid wasting a new test number for just a single trivial test by findign appropriate places in existing tests to add new ones to? I think 4133 may be one of the good places (not just checkint between a/f vs b/f, you would check a//f vs b/f and somesuch). > diff --git a/builtin/apply.c b/builtin/apply.c > index 84a8a0b..78e25fa 100644 > --- a/builtin/apply.c > +++ b/builtin/apply.c > @@ -627,9 +627,13 @@ static char *find_name_common(const char *line, char *def, int p_value, > if (name_terminate(start, line-start, c, terminate)) > break; > } > - line++; > - if (c == '/' && !--p_value) > + if (c == '/' && !--p_value) { > + while (*line == '/') > + line++; > start = line; I am not sure if this is sufficient or necessarily correct. You are de-dupling slashes only when p_value hits 0. When working on an input "a///b//c" with -p3, your loop strips one slash per decrement of p_value between "a" and "b" and then you notice slashes after "b" are duplicated and clean them up, which would mean you normalized the input to "a///b/c", not "a/b/c", no? -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html