This commit is contained in:
Paul Smith 2006-02-13 23:38:36 +00:00
parent a6bdc58385
commit df267b31c5
2 changed files with 23 additions and 6 deletions

View file

@ -1,3 +1,9 @@
2006-02-13 Paul D. Smith <psmith@gnu.org>
* implicit.c (pattern_search): Add checking for DOS pathnames to
the pattern rule target LASTSLASH manipulation.
Fixes Savannah bug #11183.
2006-02-11 Paul D. Smith <psmith@gnu.org>
* (ALL FILES): Updated copyright and license notices.

View file

@ -346,17 +346,28 @@ pattern_search (struct file *file, int archive,
/* Set CHECK_LASTSLASH if FILENAME contains a directory
prefix and the target pattern does not contain a slash. */
check_lastslash = 0;
if (lastslash)
{
#ifdef VMS
check_lastslash = lastslash != 0
&& ((strchr (target, ']') == 0)
&& (strchr (target, ':') == 0));
check_lastslash = (strchr (target, ']') == 0
&& strchr (target, ':') == 0);
#else
check_lastslash = lastslash != 0 && strchr (target, '/') == 0;
check_lastslash = strchr (target, '/') == 0;
#ifdef HAVE_DOS_PATHS
/* Didn't find it yet: check for DOS-type directories. */
if (!check_lastslash)
{
char *b = strrchr (target, '\\');
check_lastslash = !(b ? b > lastslash
: (target[0] && target[1] == ':'));
}
#endif
#endif
}
if (check_lastslash)
{
/* In that case, don't include the
directory prefix in STEM here. */
/* If so, don't include the directory prefix in STEM here. */
unsigned int difference = lastslash - filename + 1;
if (difference > stemlen)
continue;