src/shared/util.c
changeset 4 49362b34116c
child 17 baf3fe7c6354
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/shared/util.c	Mon Dec 28 20:36:29 2009 +0200
@@ -0,0 +1,35 @@
+#include "util.h"
+
+#include <string.h>
+
+int chfext (char *buf, size_t len, const char *newext)
+{
+    char *ext;
+
+    // find .ext
+    if ((ext = strrchr(buf, '.')) == NULL)
+        return -1;
+
+    // check length
+    if (ext + strlen(newext) >= buf + len)
+        return -1;
+
+    // change to .foo
+    strcpy(ext, newext);
+    
+    // ok
+    return 0;
+}
+
+int path_with_fext (const char *path, char *buf, size_t len, const char *newext)
+{
+    // verify length
+    if (strlen(path) > len)
+        return -1;
+
+    // copy filename
+    strcpy(buf, path);
+
+    // change fext
+    return chfext(buf, len, newext);
+}