prefix.c (update_path): Replace PREFIX with KEY only when it matches a full directory name in PATH.

2004-05-15  Thomas Quinot  <quinot@act-europe.fr>

	* prefix.c (update_path): Replace PREFIX with KEY only
	when it matches a full directory name in PATH.

From-SVN: r81883
This commit is contained in:
Thomas Quinot 2004-05-15 17:14:40 +02:00 committed by Roger Sayle
parent 61f0ccffa3
commit 428d4d7660
2 changed files with 14 additions and 5 deletions

View File

@ -1,3 +1,8 @@
2004-05-15 Thomas Quinot <quinot@act-europe.fr>
* prefix.c (update_path): Replace PREFIX with KEY only
when it matches a full directory name in PATH.
2004-05-15 Richard Earnshaw <reanrsha@arm.com>
* arm.h (TARGET_APCS_32): Delete.

View File

@ -238,16 +238,20 @@ tr (char *string, int c1, int c2)
while (*string++);
}
/* Update PATH using KEY if PATH starts with PREFIX. The returned
string is always malloc-ed, and the caller is responsible for
freeing it. */
/* Update PATH using KEY if PATH starts with PREFIX as a directory.
The returned string is always malloc-ed, and the caller is
responsible for freeing it. */
char *
update_path (const char *path, const char *key)
{
char *result, *p;
const int len = strlen (std_prefix);
if (! strncmp (path, std_prefix, strlen (std_prefix)) && key != 0)
if (! strncmp (path, std_prefix, len)
&& (IS_DIR_SEPARATOR(path[len])
|| path[len] == '\0')
&& key != 0)
{
bool free_key = false;
@ -257,7 +261,7 @@ update_path (const char *path, const char *key)
free_key = true;
}
result = concat (key, &path[strlen (std_prefix)], NULL);
result = concat (key, &path[len], NULL);
if (free_key)
free ((char *) key);
result = translate_name (result);