Skip to content
GitLab
Projects
Groups
Snippets
/
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
clean-compiler-and-rts
compiler
Commits
6aecb51e
Commit
6aecb51e
authored
Apr 19, 2004
by
John van Groningen
Browse files
port to gcc on Mac OS X
parent
89f4221b
Changes
1
Hide whitespace changes
Inline
Side-by-side
backendC/CleanCompilerSources/mac_io.c
View file @
6aecb51e
...
...
@@ -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
#if
n
def 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 */
}
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment