summaryrefslogtreecommitdiff
path: root/ted.c
diff options
context:
space:
mode:
Diffstat (limited to 'ted.c')
-rw-r--r--ted.c27
1 files changed, 1 insertions, 26 deletions
diff --git a/ted.c b/ted.c
index 94505df..b6e100c 100644
--- a/ted.c
+++ b/ted.c
@@ -264,30 +264,5 @@ static bool ted_save_all(Ted *ted) {
}
static void ted_full_path(Ted *ted, char const *relpath, char *abspath, size_t abspath_size) {
- str_cpy(abspath, abspath_size, ted->cwd);
-
- while (1) {
- size_t component_len = strcspn(relpath, ALL_PATH_SEPARATORS);
- char const *component_end = relpath + component_len;
-
- size_t len = strlen(abspath);
- if (abspath[len - 1] != PATH_SEPARATOR)
- str_cat(abspath, abspath_size, PATH_SEPARATOR_STR);
- if (component_len == 1 && relpath[0] == '.') {
- // ., do nothing
- } else if (component_len == 2 && relpath[0] == '.' && relpath[1] == '.') {
- // ..
- char *lastsep = strrchr(abspath, PATH_SEPARATOR);
- if (lastsep == abspath)
- lastsep[1] = '\0';
- else
- lastsep[0] = '\0';
- } else {
- strn_cat(abspath, abspath_size, relpath, component_len);
- }
- if (*component_end == 0)
- break;
- else
- relpath = component_end + 1;
- }
+ path_full(ted->cwd, relpath, abspath, abspath_size);
}