version 1.241, 2021/10/24 21:24:17 |
version 1.242, 2022/01/08 07:36:11 |
|
|
static char * |
static char * |
prepare_remote_path(struct sftp_conn *conn, const char *path) |
prepare_remote_path(struct sftp_conn *conn, const char *path) |
{ |
{ |
|
size_t nslash; |
|
|
/* Handle ~ prefixed paths */ |
/* Handle ~ prefixed paths */ |
if (*path != '~') |
|
return xstrdup(path); |
|
if (*path == '\0' || strcmp(path, "~") == 0) |
if (*path == '\0' || strcmp(path, "~") == 0) |
return xstrdup("."); |
return xstrdup("."); |
if (strncmp(path, "~/", 2) == 0) |
if (*path != '~') |
return xstrdup(path + 2); |
return xstrdup(path); |
|
if (strncmp(path, "~/", 2) == 0) { |
|
if ((nslash = strspn(path + 2, "/")) == strlen(path + 2)) |
|
return xstrdup("."); |
|
return xstrdup(path + 2 + nslash); |
|
} |
if (can_expand_path(conn)) |
if (can_expand_path(conn)) |
return do_expand_path(conn, path); |
return do_expand_path(conn, path); |
/* No protocol extension */ |
/* No protocol extension */ |