defa94e
--- allegro-4.2.0/src/digmid.c.digmid	2004-09-03 11:30:22.000000000 +0200
defa94e
+++ allegro-4.2.0/src/digmid.c	2006-02-01 16:35:03.000000000 +0100
defa94e
@@ -519,7 +519,7 @@
defa94e
 {
defa94e
    PACKFILE *f;
defa94e
    char dir[1024], file[1024], buf[1024], filename[1024];
defa94e
-   char todo[256][32];
defa94e
+   char todo[256][1024];
defa94e
    char *argv[16], *p;
defa94e
    char tmp[128];
defa94e
    int argc;
defa94e
@@ -679,8 +679,11 @@
defa94e
       /* read from regular disk files */
defa94e
       for (i=0; i<256; i++) {
defa94e
 	 if (ugetc(todo[i])) {
defa94e
-	    ustrzcpy(filename, sizeof(filename), dir);
defa94e
-	    ustrzcat(filename, sizeof(filename), todo[i]);
defa94e
+	    if (is_relative_filename(todo[i])) {
defa94e
+	       ustrzcpy(filename, sizeof(filename), dir);
defa94e
+	       ustrzcat(filename, sizeof(filename), todo[i]);
defa94e
+            } else
defa94e
+	       ustrzcpy(filename, sizeof(filename), todo[i]);
defa94e
 
defa94e
 	    if (ugetc(get_extension(filename)) == 0)
defa94e
 	       ustrzcat(filename, sizeof(filename), uconvert_ascii(".pat", tmp));