diff options
author | Tyler Murphy <tylerm@tylerm.dev> | 2023-04-28 20:32:18 -0400 |
---|---|---|
committer | Tyler Murphy <tylerm@tylerm.dev> | 2023-04-28 20:32:18 -0400 |
commit | a94b5bcd943ff91c90d04000d6896fdaf5070392 (patch) | |
tree | 531451b0682e1b63a9b45870258e16e55900d8d1 /src/shared.c | |
parent | ls tty fix (diff) | |
download | lazysphere-a94b5bcd943ff91c90d04000d6896fdaf5070392.tar.gz lazysphere-a94b5bcd943ff91c90d04000d6896fdaf5070392.tar.bz2 lazysphere-a94b5bcd943ff91c90d04000d6896fdaf5070392.zip |
added tail and head
Diffstat (limited to 'src/shared.c')
-rw-r--r-- | src/shared.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/shared.c b/src/shared.c index 8d0dcca..240e364 100644 --- a/src/shared.c +++ b/src/shared.c @@ -34,6 +34,7 @@ FILE* get_file_s(const char* path, const char* type) { } FILE* get_file(const char* path, const char* type) { + if (streql("-", path)) return stdin; FILE* file = get_file_s(path, type); if (file == NULL) exit(EXIT_FAILURE); return file; @@ -48,6 +49,30 @@ long int get_number(const char* text) { return n; } +long int get_blkm(const char* text) { + char* end; + long int n = strtol(text, &end, 10); + if (text == end) { + error("error: %s is not a valid bkm", text); + } + if (*end == '\0') return n; + switch (*end) { + case 'K': + case 'k': + return n * 1024; + case 'B': + case 'b': + return n * 512; + case 'M': + case 'm': + return n * 1024 * 1204; + default: + error("error: invalid bkm type %c", *end); + } + // shouldnt get here anyways + return 0; +} + bool streql(const char* a, const char* b) { if (*a != *b) return false; int n = 0; |