make_absolute_path(): Do not append redundant slash

When concatenating two paths, if the first one already have '/', do
not put another '/' in between the two paths.

Usually this is not the case as getcwd() won't return '/foo/bar/',
except when you are standing at root, then it will return '/'.

Signed-off-by: Nguyễn Thái Ngọc Duy <pclouds@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Nguyễn Thái Ngọc Duy 2010-02-14 22:44:41 +07:00 коммит произвёл Junio C Hamano
Родитель 4133fd2552
Коммит ed0cb46ebb
1 изменённых файлов: 3 добавлений и 2 удалений

Просмотреть файл

@ -54,8 +54,9 @@ const char *make_absolute_path(const char *path)
if (len + strlen(last_elem) + 2 > PATH_MAX) if (len + strlen(last_elem) + 2 > PATH_MAX)
die ("Too long path name: '%s/%s'", die ("Too long path name: '%s/%s'",
buf, last_elem); buf, last_elem);
buf[len] = '/'; if (len && buf[len-1] != '/')
strcpy(buf + len + 1, last_elem); buf[len++] = '/';
strcpy(buf + len, last_elem);
free(last_elem); free(last_elem);
last_elem = NULL; last_elem = NULL;
} }