summaryrefslogtreecommitdiffstats
path: root/src/dirs.c
diff options
context:
space:
mode:
authorP. J. McDermott <pj@pehjota.net>2021-03-19 19:31:49 (EDT)
committer P. J. McDermott <pj@pehjota.net>2021-03-19 19:35:07 (EDT)
commitb0c5479f13c40f0c8e07cc6b679408b56d8891c7 (patch)
tree56531e9e224d991090eb58978d22dc7100aefd3a /src/dirs.c
parentd0f6e9a8eaf1a1fb7c7ecae88efc02c92b888d4e (diff)
downloaddodge-balls-b0c5479f13c40f0c8e07cc6b679408b56d8891c7.zip
dodge-balls-b0c5479f13c40f0c8e07cc6b679408b56d8891c7.tar.gz
dodge-balls-b0c5479f13c40f0c8e07cc6b679408b56d8891c7.tar.bz2
db_get_*_dir(): Move out of src/main.c
Diffstat (limited to 'src/dirs.c')
-rw-r--r--src/dirs.c56
1 files changed, 56 insertions, 0 deletions
diff --git a/src/dirs.c b/src/dirs.c
new file mode 100644
index 0000000..7d3f6ee
--- /dev/null
+++ b/src/dirs.c
@@ -0,0 +1,56 @@
+/*
+ * Copyright (C) 2021 P. J. McDermott
+ *
+ * This file is part of Dodge Balls
+ *
+ * Dodge Balls is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 3 of the License, or
+ * (at your option) any later version.
+ *
+ * Dodge Balls is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with Dodge Balls. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include <libgen.h>
+#include <stdlib.h>
+#include <string.h>
+#include "dirs.h"
+
+static const char *_db_games_dir;
+static const char *_db_fonts_dir;
+
+void
+db_find_dirs(char *program_name)
+{
+ char *program_dir;
+
+ program_dir = realpath(dirname(program_name), NULL);
+ if (strcmp(program_dir, ABS_BUILDDIR) == 0) {
+ /* Running in place */
+ _db_games_dir = ABS_BUILDDIR "/games";
+ _db_fonts_dir = ABS_BUILDDIR "/fonts";
+ } else {
+ /* Running from installation */
+ _db_games_dir = GAMESDIR;
+ _db_fonts_dir = FONTSDIR;
+ }
+ free(program_dir);
+}
+
+const char *
+db_get_games_dir(void)
+{
+ return _db_games_dir;
+}
+
+const char *
+db_get_fonts_dir(void)
+{
+ return _db_fonts_dir;
+}