diff options
author | Ingo Bürk <admin@airblader.de> | 2020-05-01 13:17:09 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-05-01 13:17:09 +0200 |
commit | ef03d7c4794d35cf322288c93577ea777a17c697 (patch) | |
tree | 672d98eebbf93f1e81907bb323712910977a2abf /i3status.c | |
parent | 55b5fb2172956c030c0989335396d664eeaa0ef6 (diff) | |
parent | 94d10968c94ad1a13392db1e17ed26265336fd33 (diff) |
Merge pull request #415 from orestisfl/resolve-tilde
Resolve tilde
Diffstat (limited to 'i3status.c')
-rw-r--r-- | i3status.c | 55 |
1 files changed, 0 insertions, 55 deletions
@@ -23,7 +23,6 @@ #include <getopt.h> #include <signal.h> #include <confuse.h> -#include <glob.h> #include <sys/stat.h> #include <sys/types.h> #include <time.h> @@ -35,12 +34,6 @@ #include "i3status.h" -#define exit_if_null(pointer, ...) \ - { \ - if (pointer == NULL) \ - die(__VA_ARGS__); \ - } - #define CFG_CUSTOM_ALIGN_OPT \ CFG_STR_CB("align", NULL, CFGF_NONE, parse_align) @@ -106,21 +99,6 @@ static bool path_exists(const char *path) { return (stat(path, &buf) == 0); } -static void *scalloc(size_t size) { - void *result = calloc(size, 1); - exit_if_null(result, "Error: out of memory (calloc(%zu))\n", size); - return result; -} - -char *sstrdup(const char *str) { - if (str == NULL) { - return NULL; - } - char *result = strdup(str); - exit_if_null(result, "Error: out of memory (strdup())\n"); - return result; -} - /* * Parses the "align" module option (to validate input). */ @@ -205,39 +183,6 @@ static int valid_color(const char *value) { return 1; } -/* - * This function resolves ~ in pathnames. - * It may resolve wildcards in the first part of the path, but if no match - * or multiple matches are found, it just returns a copy of path as given. - * - */ -static char *resolve_tilde(const char *path) { - static glob_t globbuf; - char *head, *tail, *result = NULL; - - tail = strchr(path, '/'); - head = strndup(path, tail ? (size_t)(tail - path) : strlen(path)); - - int res = glob(head, GLOB_TILDE, NULL, &globbuf); - free(head); - /* no match, or many wildcard matches are bad */ - if (res == GLOB_NOMATCH || globbuf.gl_pathc != 1) - result = sstrdup(path); - else if (res != 0) { - die("glob() failed"); - } else { - head = globbuf.gl_pathv[0]; - result = scalloc(strlen(head) + (tail ? strlen(tail) : 0) + 1); - strcpy(result, head); - if (tail) { - strcat(result, tail); - } - } - globfree(&globbuf); - - return result; -} - static char *get_config_path(void) { char *xdg_config_home, *xdg_config_dirs, *config_path; |