summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--libcpp/ChangeLog6
-rw-r--r--libcpp/mkdeps.c10
2 files changed, 14 insertions, 2 deletions
diff --git a/libcpp/ChangeLog b/libcpp/ChangeLog
index 40c216b3bb1..ea5f1ff9806 100644
--- a/libcpp/ChangeLog
+++ b/libcpp/ChangeLog
@@ -1,5 +1,11 @@
2007-01-30 Tom Tromey <tromey@redhat.com>
+ PR preprocessor/30468:
+ * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped
+ './'.
+
+2007-01-30 Tom Tromey <tromey@redhat.com>
+
PR preprocessor/29966:
* macro.c (lex_expansion_token): Save and restore cpp_reader's
cur_token.
diff --git a/libcpp/mkdeps.c b/libcpp/mkdeps.c
index 3e2c4d82e96..8aa96c529e3 100644
--- a/libcpp/mkdeps.c
+++ b/libcpp/mkdeps.c
@@ -1,5 +1,5 @@
/* Dependency generator for Makefile fragments.
- Copyright (C) 2000, 2001, 2003 Free Software Foundation, Inc.
+ Copyright (C) 2000, 2001, 2003, 2007 Free Software Foundation, Inc.
Contributed by Zack Weinberg, Mar 2000
This program is free software; you can redistribute it and/or modify it
@@ -141,7 +141,13 @@ apply_vpath (struct deps *d, const char *t)
/* Remove leading ./ in any case. */
while (t[0] == '.' && IS_DIR_SEPARATOR (t[1]))
- t += 2;
+ {
+ t += 2;
+ /* If we removed a leading ./, then also remove any /s after the
+ first. */
+ while (IS_DIR_SEPARATOR (t[0]))
+ ++t;
+ }
return t;
}