(convert_Path_to_windows32): Fix last change. Fixes Savannah bug #25412.

This commit is contained in:
Eli Zaretskii 2009-03-14 16:31:57 +00:00
parent 27ef86f6b1
commit 3fd62c76c2
2 changed files with 12 additions and 3 deletions

View File

@ -1,5 +1,8 @@
2009-03-14 Eli Zaretskii <eliz@gnu.org>
* w32/pathstuff.c (convert_Path_to_windows32): Fix last change.
Fixes Savannah bug #25412.
* w32/subproc/sub_proc.c <top level>: Update Copyright years. Add
prototype for xmalloc.
(find_file): Accept 3 arguments PATH_VAR, FULL_FNAME, and FULL_LEN

View File

@ -1,6 +1,6 @@
/* Path conversion for Windows pathnames.
Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006,
2007 Free Software Foundation, Inc.
2007, 2009 Free Software Foundation, Inc.
This file is part of GNU Make.
GNU Make is free software; you can redistribute it and/or modify it under the
@ -49,6 +49,9 @@ convert_Path_to_windows32(char *Path, char to_delim)
char *p; /* points to element of old Path */
/* is this a multi-element Path ? */
/* FIXME: Perhaps use ":;\"" in strpbrk to convert all quotes to
delimiters as well, as a way to handle quoted directories in
PATH? */
for (p = Path, etok = strpbrk(p, ":;");
etok;
etok = strpbrk(p, ":;"))
@ -74,8 +77,11 @@ convert_Path_to_windows32(char *Path, char to_delim)
for (p++; *p && *p != '"'; p++) /* skip quoted part */
;
etok = strpbrk(p, ":;"); /* find next delimiter */
*etok = to_delim;
p = ++etok;
if (etok) {
*etok = to_delim;
p = ++etok;
} else
p += strlen(p);
} else {
/* found another one, no drive letter */
*etok = to_delim;