From 67e644395802294de723b8cafcf01cf153e47684 Mon Sep 17 00:00:00 2001 From: Tom Tromey Date: Tue, 30 Jan 2007 15:50:00 +0000 Subject: [PATCH] re PR preprocessor/30468 (-M not fully chops dirname) PR preprocessor/30468: * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped './'. From-SVN: r121341 --- libcpp/ChangeLog | 6 ++++++ libcpp/mkdeps.c | 10 ++++++++-- 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,3 +1,9 @@ +2007-01-30 Tom Tromey + + PR preprocessor/30468: + * mkdeps.c (apply_vpath): Strip successive '/'s if we stripped + './'. + 2007-01-30 Tom Tromey PR preprocessor/29966: 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; }