aboutsummaryrefslogtreecommitdiff
path: root/src/main.c
diff options
context:
space:
mode:
authorJoseph Hunkeler <jhunkeler@gmail.com>2022-02-16 12:45:39 -0500
committerJoseph Hunkeler <jhunkeler@gmail.com>2022-02-16 12:45:39 -0500
commita15215bf581d54b7b03da4649df2f9827ac72414 (patch)
tree916b4a8b45521feed8d6fb6ecbedcb93f55a7992 /src/main.c
parent7c9ebcd4adc8596ac7f85211451a7bef213cf377 (diff)
downloadcleanpath-a15215bf581d54b7b03da4649df2f9827ac72414.tar.gz
Go by the part_nelem rather than length of data
Diffstat (limited to 'src/main.c')
-rw-r--r--src/main.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/src/main.c b/src/main.c
index e55fa72..7689035 100644
--- a/src/main.c
+++ b/src/main.c
@@ -249,8 +249,13 @@ int main(int argc, char *argv[], char *arge[]) {
if (do_all_sys_vars) {
for (size_t i = 0; environ[i] != NULL; i++) {
char *var = getenv_ex(environ[i]);
+ if (!var) {
+ continue;
+ }
+
path = cleanpath_init(var, sep);
if (path == NULL) {
+ fprintf(stderr, "Unexpected error. Invalid data consumed by cleanpath_init(\"%s\", \"%s\")\n", environ[i], sep);
exit(1);
}
@@ -276,8 +281,8 @@ int main(int argc, char *argv[], char *arge[]) {
if (do_listing) {
show_listing(path);
} else {
- char *data = get_path(path);
- if (strlen(path->data) == 0 && dcount < sizeof(deferred) / sizeof(*deferred)) {
+ char *data = cleanpath_read(path);
+ if (!path->part_nelem && dcount < sizeof(deferred) / sizeof(*deferred)) {
deferred[dcount] = strdup(key);
dcount++;
} else {