From 7d75b83fa7e5113fe9f6a7e034abdf8ed853da05 Mon Sep 17 00:00:00 2001 From: Dan Buch Date: Wed, 11 Apr 2012 08:53:36 -0400 Subject: [PATCH] I moved this to the "junkdrawer" repo because I am now using it! --- digressions/.gitignore | 1 - digressions/Makefile | 2 +- digressions/truncpwd.c | 76 ------------------------------------------ 3 files changed, 1 insertion(+), 78 deletions(-) delete mode 100644 digressions/truncpwd.c diff --git a/digressions/.gitignore b/digressions/.gitignore index 538ff14..0086ed8 100644 --- a/digressions/.gitignore +++ b/digressions/.gitignore @@ -1,2 +1 @@ /temperatures -/truncpwd diff --git a/digressions/Makefile b/digressions/Makefile index e522565..1884913 100644 --- a/digressions/Makefile +++ b/digressions/Makefile @@ -1,5 +1,5 @@ CFLAGS += -g -Wall -Wextra -all: temperatures truncpwd +all: temperatures .PHONY: all diff --git a/digressions/truncpwd.c b/digressions/truncpwd.c deleted file mode 100644 index 1f225a0..0000000 --- a/digressions/truncpwd.c +++ /dev/null @@ -1,76 +0,0 @@ -#include -#include -#include -#include -#include - - -#define BUFSIZE 2048 + 1 -#define DEFAULT_TRUNCPWD_LEN "40" - - -void substr(char *dest, char *src, int offset, int len) { - int i; - for (i = 0; i < len && src[offset + i] != '\0'; i++) { - dest[i] = src[offset + i]; - } - dest[i] = '\0'; -} - - -void with_home_as_tilde(char *dest, char *src, char *home) { - size_t src_len = strlen(src); - size_t home_len = strlen(home); - - if (strncmp(src, home, home_len) == 0) { - char less_home[BUFSIZE]; - substr(less_home, src, home_len, src_len - home_len); - sprintf(dest, "~%s", less_home); - } else { - sprintf(dest, "%s", src); - } -} - - -int main(void) -{ - char pwd[BUFSIZE]; - const char *home = getenv("HOME"); - const char *truncpwd_len_str = getenv("TRUNCPWD_LEN"); - if (truncpwd_len_str == NULL) { - truncpwd_len_str = DEFAULT_TRUNCPWD_LEN; - } - unsigned int truncpwd_len = (unsigned int)atoi(truncpwd_len_str); - - const char *truncpwd_leader = getenv("TRUNCPWD_LEADER"); - if (truncpwd_leader == NULL) { - truncpwd_leader = "..."; - } - - if (getcwd(pwd, sizeof(pwd)) == NULL) { - fprintf(stderr, "truncpwd: %s\n", strerror(errno)); - return 1; - } - - size_t pwd_len = strlen(pwd); - - if (strncmp(home, pwd, pwd_len) == 0) { - printf("~\n"); - } - - char tilde_subbed[BUFSIZE]; - with_home_as_tilde(tilde_subbed, pwd, (char *)home); - - size_t tilde_subbed_len = strlen(tilde_subbed); - - if (tilde_subbed_len <= truncpwd_len) { - printf("%s\n", tilde_subbed); - return 0; - } else { - char last_n[truncpwd_len + 1]; - int offset = tilde_subbed_len - truncpwd_len + 1; - substr(last_n, tilde_subbed, offset, truncpwd_len + 1); - printf("%s%s\n", truncpwd_leader, last_n); - } - return 0; -}