diff options
-rw-r--r-- | misc.c | 17 | ||||
-rw-r--r-- | misc.h | 2 |
2 files changed, 19 insertions, 0 deletions
@@ -1,3 +1,4 @@ +#include <ctype.h> #include <string.h> #include <stdarg.h> #include <stdio.h> @@ -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; @@ -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 |