diff options
author | Thomas Quinot <quinot@act-europe.fr> | 2004-05-15 17:14:40 +0200 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2004-05-15 15:14:40 +0000 |
commit | 428d4d7660cb092c281734b56d62dce45d7b599a (patch) | |
tree | 7e1e2e9b6472c30bab3e9a5af0ef5196e8276ba4 /gcc/prefix.c | |
parent | 61f0ccffa36f96fc1a1f20fd8d4ec2bfb911140d (diff) | |
download | gcc-428d4d7660cb092c281734b56d62dce45d7b599a.zip gcc-428d4d7660cb092c281734b56d62dce45d7b599a.tar.gz gcc-428d4d7660cb092c281734b56d62dce45d7b599a.tar.bz2 |
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
Diffstat (limited to 'gcc/prefix.c')
-rw-r--r-- | gcc/prefix.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/gcc/prefix.c b/gcc/prefix.c index df556aa..373707f 100644 --- a/gcc/prefix.c +++ b/gcc/prefix.c @@ -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); |