From 0ca215bd99dde1505dc855e4d8826ce2ce63973d Mon Sep 17 00:00:00 2001 From: mrb0nk500 Date: Sat, 3 Jul 2021 10:47:47 -0400 Subject: Added `find_alpha()`, and `create_num_str()`. --- misc.c | 17 +++++++++++++++++ misc.h | 2 ++ 2 files changed, 19 insertions(+) diff --git a/misc.c b/misc.c index ce286cb..52c5c67 100644 --- a/misc.c +++ b/misc.c @@ -1,3 +1,4 @@ +#include #include #include #include @@ -127,6 +128,22 @@ char *sanitize_str(char *str) { return san_str; } +char *find_alpha(const char *str) { + for (; !isalpha(*str); str++); + return str; +} + +char *create_num_str(const char *str, int num) { + char *name; + int lead_num = strtol(str, &name, 10); + const char *sep = (*name != '-') ? "-" : ""; + const char *s = find_alpha(name); + + name = calloc(format_len("%04d%s%s", num, sep, s), sizeof(char)); + sprintf(name, "%04d%s%s", num, sep, str); + return name; +} + int format_len(const char *fmt, ...) { int len = 0; va_list args; diff --git a/misc.h b/misc.h index d9829a5..9d07f81 100644 --- a/misc.h +++ b/misc.h @@ -9,5 +9,7 @@ extern char *dir_path_name(const char *root, char *name); extern int delm_span(char *str, const char delm); extern int sanitize_strlen(char *str); extern char *sanitize_str(char *str); +extern char *find_alpha(const char *str); +extern char *create_num_str(const char *str, int num); extern int format_len(const char *fmt, ...); #endif -- cgit v1.2.3-13-gbd6f