If a newline ever made it into an repository-side expanded $Id$ field,
the keyword would still be detected as a keyword and collapsed, before
rexpansion, e.g.
$Id: all of this text would be removed, even if there
were a newline in the middle of it$
This patch catches newlines in this case and abandons treating this as a
keyword expansion, this text would be left untouched in the working
checkout.
Signed-off-by: Andy Parkins <redacted>
---
convert.c | 4 +++-
1 files changed, 3 insertions(+), 1 deletions(-)
diff --git a/convert.c b/convert.c
index 3c44e3d..051366c 100644
--- a/convert.c
+++ b/convert.c
@@ -547,12 +547,14 @@ static char *ident_to_worktree(const char *path, const char *src, unsigned long
ch = *cp;
if (ch == '$')
break;
+ if (ch == '\n')
+ break;
cp++;
rem--;
} while (rem);
/* If the above finished because it ran out of characters, then
* this is an incomplete keyword, so don't run the expansion */
- if (!rem)
+ if (!rem || ch == '\n')
continue;
} else if (src[2] == '$')
cp = src + 2;
--
1.5.2.763.g8c5e-dirty