diff options
author | Thomas White <taw@physics.org> | 2020-03-20 14:13:17 +0100 |
---|---|---|
committer | Thomas White <taw@physics.org> | 2020-07-29 18:42:57 +0200 |
commit | 926267d69531e5d1f936231f4e01971e7f31b8e9 (patch) | |
tree | e0c51830aba2b596b6f73d42ace309ce50f75b32 /libcrystfel | |
parent | 5543f048ba45e07238cf5b16bc778305a7db2be1 (diff) |
Factorise filename_extension()
Diffstat (limited to 'libcrystfel')
-rw-r--r-- | libcrystfel/src/utils.c | 23 | ||||
-rw-r--r-- | libcrystfel/src/utils.h | 1 |
2 files changed, 24 insertions, 0 deletions
diff --git a/libcrystfel/src/utils.c b/libcrystfel/src/utils.c index 1da0dfca..1e225778 100644 --- a/libcrystfel/src/utils.c +++ b/libcrystfel/src/utils.c @@ -612,6 +612,29 @@ void strip_extension(char *bfn) } +const char *filename_extension(const char *fn, const char **pext2) +{ + const char *ext = NULL; + const char *ext2 = NULL; + size_t r = strlen(fn)-1; + + while ( r > 0 ) { + if ( fn[r] == '.' ) { + if ( ext != NULL ) { + ext2 = fn+r; + break; + } else { + ext = fn+r; + } + } + r--; + } + + if ( pext2 != NULL ) *pext2 = ext2; + return ext; +} + + /* Force the linker to bring in CBLAS to make GSL happy */ void utils_fudge_gslcblas() { diff --git a/libcrystfel/src/utils.h b/libcrystfel/src/utils.h index 39ee8848..9607708f 100644 --- a/libcrystfel/src/utils.h +++ b/libcrystfel/src/utils.h @@ -219,6 +219,7 @@ extern char *safe_basename(const char *in); extern char *safe_strdup(const char *in); extern void strip_extension(char *bfn); extern char *load_entire_file(const char *filename); +extern const char *filename_extension(const char *fn, const char **ext2); /* ------------------------------ Useful stuff ------------------------------ */ |