From 07685390b0af45ff4df0fea9b0c86a59690b0aa3 Mon Sep 17 00:00:00 2001 From: Mikachu2333 Date: Sun, 17 Aug 2025 19:52:04 +0800 Subject: [PATCH] fix parent --- lib/xy.h | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/lib/xy.h b/lib/xy.h index dd39274..9848aec 100644 --- a/lib/xy.h +++ b/lib/xy.h @@ -927,32 +927,31 @@ xy_normalize_path (const char *path) return new; } +/** + * @note 总是返回不含末尾斜杠的父目录路径 + */ static char * xy_parent_dir (const char *path) { char *dir = xy_normalize_path (path); + dir = xy_str_gsub (dir, "\\", "/"); + if (xy_str_end_with (dir, "/")) + dir = xy_str_delete_suffix (dir, "/"); + char *last = NULL; + + last = strrchr (dir, '/'); + if (!last) + { + /* current dir */ + return "."; + } + *last = '\0'; + if (xy_on_windows) - { - last = strrchr (dir, '\\'); - if (!last) - { - /* current dir */ - return "."; - } - *last = '\0'; - } + return xy_str_gsub (dir, "/", "\\"); else - { - last = strrchr (dir, '/'); - if (!last) - { - /* current dir */ - return "."; - } - *last = '\0'; - } - return dir; + return dir; } #endif