# Copyright (C) 2009  Miriam Ruiz <little_miry@yahoo.es>
# Distributed under the same license as the game. See debian/copyright.

--- excellent-bifurcation-0.0.20071015.orig/src/Makefile
+++ excellent-bifurcation-0.0.20071015/src/Makefile
@@ -1,5 +1,8 @@
 CC=gcc
 CFLAGS=-Wall -O2
+PKGCONFIG_FILES=libxdg-basedir
+PKGCONFIG_CFLAGS= `pkg-config $(PKGCONFIG_FILES) --cflags`
+PKGCONFIG_LDFLAGS= `pkg-config $(PKGCONFIG_FILES) --libs`
 LDFLAGS=-lalleg-4.2.2
 SOURCES=$(shell find . -name "*.c")
 OBJECTS=$(SOURCES:.c=.o)
@@ -8,10 +11,10 @@
 all: $(SOURCES) $(EXECUTABLE)
 
 $(EXECUTABLE): $(OBJECTS) 
-	$(CC) $(LDFLAGS) $(OBJECTS) -o $@
+	$(CC) $(LDFLAGS) $(PKGCONFIG_LDFLAGS) $(OBJECTS) -o $@
 
 .c.o:
-	$(CC) $(CFLAGS) -c $< -o $@
+	$(CC) $(CFLAGS) $(PKGCONFIG_CFLAGS) `pkg-config libxdg-basedir --libs` -c $< -o $@
 
 clean:
 	rm -f $(EXECUTABLE) $(OBJECTS)
--- excellent-bifurcation-0.0.20071015.orig/src/main.c
+++ excellent-bifurcation-0.0.20071015/src/main.c
@@ -49,6 +49,11 @@
 #include "menu.h"
 #include "sound.h"
 
+#include <basedir.h>
+#include <basedir_fs.h>
+#include <sys/stat.h>
+#include <limits.h>
+
 // timer interupt functions and variables:
 void framecount(void);
 
@@ -106,6 +111,8 @@
 
 int main(void)
 {
+char FileName[PATH_MAX];
+xdgHandle xdg_handle;
 
 int allint =  allegro_init();
    if (allint == -1)
@@ -115,7 +122,18 @@
       exit(1);
    }
 
-   set_config_file("init.txt");
+   if (xdgInitHandle(&xdg_handle))
+   {
+      snprintf (FileName,sizeof(FileName),"%s/excellent-bifurcation",xdgConfigHome(&xdg_handle));
+      xdgMakePath(FileName, S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH);
+      snprintf (FileName,sizeof(FileName),"%s/excellent-bifurcation/init.txt",xdgConfigHome(&xdg_handle));
+         xdgWipeHandle(&xdg_handle);
+      fprintf(stderr, "Config File: \"%s\"\n", FileName);
+      set_config_file(FileName);
+   } else {
+      fprintf(stderr, "Error initializing XDG Handle\n");
+      exit(1);
+   }
 
    install_keyboard();
    install_timer();
