Skip to content

Commit a6fd1fd

Browse files
committed
处理参数带双引号的情况
1 parent ff01319 commit a6fd1fd

File tree

3 files changed

+12
-3
lines changed

3 files changed

+12
-3
lines changed

src/main.c

+4-3
Original file line numberDiff line numberDiff line change
@@ -11,8 +11,7 @@
1111
int main(int argc, char *argv[])
1212
{
1313
#ifndef DEBUG
14-
char *bin_path = malloc(sizeof(char) * (strlen(argv[0]) + 1));
15-
strtrim(bin_path, argv[0], "\"");
14+
char *bin_path = path_from(argv[0]);
1615
char *dirname = path_dirname(bin_path);
1716
chdir(dirname);
1817
free(bin_path);
@@ -23,8 +22,10 @@ int main(int argc, char *argv[])
2322
lcui_app_init();
2423
if (argc > 1) {
2524
ui_widget_t *view = ui_create_image_view();
25+
char *file_path = path_from(argv[1]);
2626
ui_widget_append(ui_root(), view);
27-
image_view_load_file(view, argv[1]);
27+
image_view_load_file(view, file_path);
28+
free(file_path);
2829
} else {
2930
ui_widget_append(ui_root(), ui_create_home());
3031
ui_widget_set_title(ui_root(), L"kantu");

src/utils.c

+7
Original file line numberDiff line numberDiff line change
@@ -81,3 +81,10 @@ int format_size(char buf[16], size_t size)
8181
}
8282
return snprintf(buf, 16, "%zu %s", size, units[i]);
8383
}
84+
85+
char *path_from(const char *str)
86+
{
87+
char *path = malloc(sizeof(char) * (strlen(str) + 1));
88+
strtrim(path, str, "\"");
89+
return path;
90+
}

src/utils.h

+1
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
const char *str_last_char(const char *str, char ch);
44
const char *path_last_sep(const char *path);
55
const char *path_basename(const char *path);
6+
char *path_from(const char *str);
67
char *path_dirname(const char *path);
78
char *path_join(const char *dir, const char *name);
89
int format_size(char buf[16], size_t size);

0 commit comments

Comments
 (0)