diff options
Diffstat (limited to 'lib/common')
-rw-r--r-- | lib/common/Makemodule.am | 3 | ||||
-rw-r--r-- | lib/common/dirstack.c | 78 |
2 files changed, 1 insertions, 80 deletions
diff --git a/lib/common/Makemodule.am b/lib/common/Makemodule.am index 4f4562b..2e5a812 100644 --- a/lib/common/Makemodule.am +++ b/lib/common/Makemodule.am @@ -5,7 +5,6 @@ libcommon_a_SOURCES += lib/common/compress.c lib/common/comp_opt.c libcommon_a_SOURCES += lib/common/data_writer.c include/common.h libcommon_a_SOURCES += lib/common/get_path.c lib/common/io_stdin.c libcommon_a_SOURCES += lib/common/writer.c lib/common/perror.c -libcommon_a_SOURCES += lib/common/dirstack.c lib/common/mkdir_p.c -libcommon_a_SOURCES += lib/common/filename_sane.c +libcommon_a_SOURCES += lib/common/mkdir_p.c lib/common/filename_sane.c noinst_LIBRARIES += libcommon.a diff --git a/lib/common/dirstack.c b/lib/common/dirstack.c deleted file mode 100644 index f8d1278..0000000 --- a/lib/common/dirstack.c +++ /dev/null @@ -1,78 +0,0 @@ -/* SPDX-License-Identifier: GPL-3.0-or-later */ -/* - * dirstack.c - * - * Copyright (C) 2019 David Oberhollenzer <goliath@infraroot.at> - */ -#include "common.h" -#include "util/compat.h" - -#include <string.h> -#include <stdlib.h> -#include <unistd.h> -#include <assert.h> -#include <fcntl.h> -#include <stdio.h> - -#define STACK_DEPTH 128 - -static int dirstack[STACK_DEPTH]; -static int stacktop = 0; - -int pushd(const char *path) -{ - int fd; - - assert(stacktop < STACK_DEPTH); - - fd = open(".", O_DIRECTORY | O_PATH | O_RDONLY | O_CLOEXEC); - - if (fd < 0) { - perror("open ./"); - return -1; - } - - if (chdir(path)) { - perror(path); - close(fd); - return -1; - } - - dirstack[stacktop++] = fd; - return 0; -} - -int pushdn(const char *path, size_t len) -{ - char *temp; - int ret; - - temp = strndup(path, len); - if (temp == NULL) { - perror("pushd"); - return -1; - } - - ret = pushd(temp); - - free(temp); - return ret; -} - -int popd(void) -{ - int fd; - - assert(stacktop > 0); - - fd = dirstack[stacktop - 1]; - - if (fchdir(fd)) { - perror("popd"); - return -1; - } - - --stacktop; - close(fd); - return 0; -} |