- static char r[MAX_PATH_LEN];
- snprintf(r, MAX_PATH_LEN, "%s/%s", g_data_dir, filename);
- return r;
+ char *s;
+ size_t plen, flen;
+
+ if(!path || !file) return NULL;
+ plen = strlen(path);
+ flen = strlen(file);
+ s = malloc(2+plen+flen);
+ if(!s) return NULL;
+ memcpy(s, path, plen);
+ s[plen] = '/';
+ memcpy(s+plen+1, file, flen+1);
+ return s;
+}
+
+char *
+add_data_path(char *filename)
+{
+ return add_path(g_data_dir, filename);