/*---------------------------------------------------------------------------*/
-int demo_exists(const char *name)
+static const char *demo_path(const char *name)
{
- char buf[MAXSTR];
+ static char path[MAXSTR];
+ sprintf(path, DEMO_PATH "/%s" REPLAY_EXT, name);
+ return path;
+}
- strcpy(buf, name);
- strcat(buf, REPLAY_EXT);
+/*---------------------------------------------------------------------------*/
- return fs_exists(buf);
+int demo_exists(const char *name)
+{
+ return fs_exists(demo_path(name));
}
#define MAXSTRLEN(a) (sizeof ((a)) - 1)
memset(&demo, 0, sizeof (demo));
- strncpy(demo.filename, name, MAXSTR);
- strcat(demo.filename, REPLAY_EXT);
+ strncpy(demo.filename, demo_path(name), sizeof (demo.filename) - 1);
demo.mode = mode;
demo.date = time(NULL);
demo_exists(USER_REPLAY_FILE) &&
strcmp(name, USER_REPLAY_FILE) != 0)
{
- strcpy(src, USER_REPLAY_FILE);
- strcat(src, REPLAY_EXT);
-
- strcpy(dst, name);
- strcat(dst, REPLAY_EXT);
+ strncpy(src, demo_path(USER_REPLAY_FILE), sizeof (src) - 1);
+ strncpy(dst, demo_path(name), sizeof (dst) - 1);
fs_rename(src, dst);
}
return (item->data = demo_load(item->path)) ? 1 : 0;
}
-Array demo_dir_scan(const char *path)
+Array demo_dir_scan(void)
{
- return fs_dir_scan(path, scan_item);
+ return fs_dir_scan(DEMO_PATH, scan_item);
}
void demo_dir_free(Array items)
/*---------------------------------------------------------------------------*/
+static void make_dirs(void)
+{
+ fs_mkdir(DEMO_PATH);
+}
+
int main(int argc, char *argv[])
{
SDL_Joystick *joy = NULL;
parse_args(argc, argv);
config_paths(data_path);
+ make_dirs();
/* Initialize SDL system and subsystems */