diff options
Diffstat (limited to 'misc.c')
-rw-r--r-- | misc.c | 17 |
1 files changed, 17 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; |