#include #include "util.h" #include "streamtypes.h" const char* filename_extension(const char* pathname) { const char* extension; /* favor strrchr (optimized/aligned) rather than homemade loops */ extension = strrchr(pathname,'.'); if (extension != NULL) { /* probably has extension */ extension++; /* skip dot */ /* find possible separators to avoid misdetecting folders with dots + extensionless files * (after the above to reduce search space, allows both slashes in case of non-normalized names) */ if (strchr(extension, '/') == NULL && strchr(extension, '\\') == NULL) return extension; /* no slashes = really has extension */ } /* extensionless: point to null after current name * (could return NULL but prev code expects with to return an actual c-string) */ return pathname + strlen(pathname); } int round10(int val) { int round_val = val % 10; if (round_val < 5) /* half-down rounding */ return val - round_val; else return val + (10 - round_val); } /* length is maximum length of dst. dst will always be null-terminated if * length > 0 */ void concatn(int length, char * dst, const char * src) { int i,j; if (length <= 0) return; for (i=0;i