diff options
author | Jim Meyering <jim@meyering.net> | 2001-03-13 15:57:15 +0000 |
---|---|---|
committer | Jim Meyering <jim@meyering.net> | 2001-03-13 15:57:15 +0000 |
commit | 35e76078e7b584044bf9629448e581d2aec69881 (patch) | |
tree | e6ad017a221203dd29ffb26d7f7aacaa095064a9 /lib | |
parent | 4d44d31bd939595ebb34ac8549d1fa31df99aa36 (diff) | |
download | coreutils-35e76078e7b584044bf9629448e581d2aec69881.tar.xz |
(path_concat) [FILESYSTEM_ACCEPTS_DRIVE_LETTER_PREFIX]:
Don't insert a backslash when concatenating e.g., `C:' and `foo'.
From Bruno Haible.
Diffstat (limited to 'lib')
-rw-r--r-- | lib/path-concat.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/path-concat.c b/lib/path-concat.c index 3130e386d..e6f44d3e8 100644 --- a/lib/path-concat.c +++ b/lib/path-concat.c @@ -1,5 +1,5 @@ /* path-concat.c -- concatenate two arbitrary pathnames - Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc. + Copyright (C) 1996, 1997, 1998, 1999, 2000, 2001 Free Software Foundation, Inc. This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -59,6 +59,10 @@ char *strdup (); # define DIRECTORY_SEPARATOR '/' #endif +#ifndef FILESYSTEM_PREFIX_LEN +# define FILESYSTEM_PREFIX_LEN(Filename) 0 +#endif + #ifndef ISSLASH # define ISSLASH(C) ((C) == DIRECTORY_SEPARATOR) #endif @@ -105,11 +109,11 @@ path_concat (const char *dir, const char *base, char **base_in_result) p = mempcpy (p_concat, dir, dir_len); - if (dir_len > 0) + if (dir_len > FILESYSTEM_PREFIX_LEN (dir)) { - if (ISSLASH (*(p - 1)) && ISSLASH(*base)) + if (ISSLASH (*(p - 1)) && ISSLASH (*base)) --p; - else if (!ISSLASH (*(p - 1)) && !ISSLASH(*base)) + else if (!ISSLASH (*(p - 1)) && !ISSLASH (*base)) *p++ = DIRECTORY_SEPARATOR; } |