Index: trunk/src/file.c =================================================================== --- trunk/src/file.c (revision 810) +++ trunk/src/file.c (revision 811) @@ -402,7 +402,9 @@ start = clock (); #endif - new_filename = strdup (Filename); +// new_filename = strdup (Filename); + resolve_path(Filename, &new_filename); + printf("JAJJ: '%s' -> '%s'\n", Filename, new_filename); oldPCB = PCB; PCB = newPCB; Index: trunk/src/main.c =================================================================== --- trunk/src/main.c (revision 810) +++ trunk/src/main.c (revision 811) @@ -1414,6 +1414,11 @@ } \ } while(0) +void resolve_path(const char *in, char **out) +{ + resolve_paths(&in, out, 1); +} + /* ---------------------------------------------------------------------- * Figure out the canonical name of the executed program * and fix up the defaults for various paths Index: trunk/src/misc.h =================================================================== --- trunk/src/misc.h (revision 810) +++ trunk/src/misc.h (revision 811) @@ -144,6 +144,8 @@ void NetlistChanged (int force_unfreeze); +/* Allocate *out and copy the path from in to out, replacing ~ with homedir */ +void resolve_path(const char *in, char **out); #endif /* PCB_MISC_H */