aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-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 {