Commit 6aecb51e authored by John van Groningen's avatar John van Groningen
Browse files

port to gcc on Mac OS X

parent 89f4221b
......@@ -7,7 +7,7 @@
#define for_l(v,l,n) for(v=(l);v!=NULL;v=v->n)
#if defined (applec) || defined (__MWERKS__) || defined (__MRC__)
#if defined (applec) || defined (__MWERKS__) || defined (__MRC__) || defined (GNU_C)
# define mpwc
#endif
......@@ -39,11 +39,14 @@
#endif
#include <Files.h>
#include <Memory.h>
#ifdef mpwc
#ifndef mpwc
# include <strings.h>
#endif
#include <Devices.h>
#include <Events.h>
#ifdef KARBON
# include <Script.h>
#endif
#ifndef mpwc
# include <unix.h>
#endif
......@@ -801,6 +804,44 @@ extern char *clean_abc_path; /* imported from clm.c */
}
#endif
#if defined (GNU_C)
static FILE *fopen_with_file_name_conversion (char *file_name,char *mode)
{
FSSpec fs_spec;
FSRef fs_ref;
CFURLRef CFURL_ref;
char buffer[512+1];
int string_size;
Boolean r;
OSErr e;
buffer[0]=strlen (file_name);
strcpy (&buffer[1],file_name);
e=FSMakeFSSpec (0/*vRefNum*/,0/*dirID*/,buffer,&fs_spec);
if (e!=noErr)
return NULL;
e=FSpMakeFSRef (&fs_spec,&fs_ref);
if (e!=noErr)
return NULL;
CFURL_ref=CFURLCreateFromFSRef (NULL,&fs_ref);
string_size=512;
r=CFURLGetFileSystemRepresentation (CFURL_ref,1,buffer,string_size);
if (!r)
return NULL;
file_name=buffer;
return fopen (file_name,mode);
}
# define fopen fopen_with_file_name_conversion
#endif
#if WRITE_DCL_MODIFICATION_TIME
File FOpenWithFileTime (char *file_name,FileKind kind, char *mode,FileTime *file_time_p)
{
......@@ -816,6 +857,10 @@ File FOpenWithFileTime (char *file_name,FileKind kind, char *mode,FileTime *file
}
#endif
#if 0
extern File rules_file;
#endif
File FOpen (char *file_name,FileKind kind, char *mode)
{
char path[MAXPATHLEN];
......@@ -824,6 +869,11 @@ File FOpen (char *file_name,FileKind kind, char *mode)
#ifdef mpwc
if (mode[0]=='r'){
findfilepath (file_name,kind,path);
# if 0
FPrintF (rules_file,"%s\n",path);
# endif
return (File) fopen (path, mode);
} else {
char *p;
......@@ -1289,5 +1339,4 @@ int System (char *file_name)
return error;
}
#endif
} /* System */
}
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment