fix reference to statics meant to be adjusted by `raco exe'
This commit is contained in:
parent
e640041dd6
commit
80ca2b34ff
|
@ -6,7 +6,7 @@
|
||||||
|
|
||||||
#define SDESC "Set! works on undefined identifiers"
|
#define SDESC "Set! works on undefined identifiers"
|
||||||
|
|
||||||
char *cmdline_exe_hack = (char *)
|
char * volatile scheme_cmdline_exe_hack = (char *)
|
||||||
("[Replace me for EXE hack "
|
("[Replace me for EXE hack "
|
||||||
" ]");
|
" ]");
|
||||||
|
|
||||||
|
@ -15,7 +15,7 @@ char *cmdline_exe_hack = (char *)
|
||||||
#else
|
#else
|
||||||
# define GC_PRECISION_TYPE "c"
|
# define GC_PRECISION_TYPE "c"
|
||||||
#endif
|
#endif
|
||||||
char *binary_type_hack = "bINARy tYPe:" INITIAL_BIN_TYPE GC_PRECISION_TYPE;
|
char * volatile scheme_binary_type_hack = "bINARy tYPe:" INITIAL_BIN_TYPE GC_PRECISION_TYPE;
|
||||||
/* The format of bINARy tYPe is e?[zr]i[3c].
|
/* The format of bINARy tYPe is e?[zr]i[3c].
|
||||||
e indicates a starter executable
|
e indicates a starter executable
|
||||||
z/r indicates Racket or GRacket
|
z/r indicates Racket or GRacket
|
||||||
|
@ -30,7 +30,7 @@ char *binary_type_hack = "bINARy tYPe:" INITIAL_BIN_TYPE GC_PRECISION_TYPE;
|
||||||
# endif
|
# endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
static char *_coldir = "coLLECTs dIRECTORy:" /* <- this tag stays, so we can find it again */
|
char * volatile scheme_coldir = "coLLECTs dIRECTORy:" /* <- this tag stays, so we can find it again */
|
||||||
INITIAL_COLLECTS_DIRECTORY
|
INITIAL_COLLECTS_DIRECTORY
|
||||||
"\0\0" /* <- 1st nul terminates path, 2nd terminates path list */
|
"\0\0" /* <- 1st nul terminates path, 2nd terminates path list */
|
||||||
/* Pad with at least 1024 bytes: */
|
/* Pad with at least 1024 bytes: */
|
||||||
|
@ -641,9 +641,9 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* If cmdline_exe_hack is changed, then we extract built-in
|
/* If scheme_cmdline_exe_hack is changed, then we extract built-in
|
||||||
arguments. */
|
arguments. */
|
||||||
if (cmdline_exe_hack[0] != '[') {
|
if (scheme_cmdline_exe_hack[0] != '[') {
|
||||||
int n, i;
|
int n, i;
|
||||||
long d;
|
long d;
|
||||||
GC_CAN_IGNORE unsigned char *p;
|
GC_CAN_IGNORE unsigned char *p;
|
||||||
|
@ -651,12 +651,12 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
||||||
char **argv2;
|
char **argv2;
|
||||||
|
|
||||||
#ifdef DOS_FILE_SYSTEM
|
#ifdef DOS_FILE_SYSTEM
|
||||||
if ((cmdline_exe_hack[0] == '?')
|
if ((scheme_cmdline_exe_hack[0] == '?')
|
||||||
|| (cmdline_exe_hack[0] == '*')) {
|
|| (scheme_cmdline_exe_hack[0] == '*')) {
|
||||||
/* This is how we make launchers in Windows.
|
/* This is how we make launchers in Windows.
|
||||||
The cmdline is appended to the end of the binary.
|
The cmdline is appended to the end of the binary.
|
||||||
The long integer at cmdline_exe_hack[4] says
|
The long integer at scheme_cmdline_exe_hack[4] says
|
||||||
where the old end was, and cmdline_exe_hack[8]
|
where the old end was, and scheme_cmdline_exe_hack[8]
|
||||||
says how long the cmdline string is. It might
|
says how long the cmdline string is. It might
|
||||||
be relative to the executable. */
|
be relative to the executable. */
|
||||||
wchar_t *path;
|
wchar_t *path;
|
||||||
|
@ -675,15 +675,15 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
||||||
else {
|
else {
|
||||||
long start, len;
|
long start, len;
|
||||||
DWORD got;
|
DWORD got;
|
||||||
start = *(long *)&cmdline_exe_hack[4];
|
start = *(long *)&scheme_cmdline_exe_hack[4];
|
||||||
len = *(long *)&cmdline_exe_hack[8];
|
len = *(long *)&scheme_cmdline_exe_hack[8];
|
||||||
p = (unsigned char *)malloc(len);
|
p = (unsigned char *)malloc(len);
|
||||||
SetFilePointer(fd, start, 0, FILE_BEGIN);
|
SetFilePointer(fd, start, 0, FILE_BEGIN);
|
||||||
ReadFile(fd, p, len, &got, NULL);
|
ReadFile(fd, p, len, &got, NULL);
|
||||||
CloseHandle(fd);
|
CloseHandle(fd);
|
||||||
if (got != len)
|
if (got != len)
|
||||||
p = (unsigned char *)"\0\0\0";
|
p = (unsigned char *)"\0\0\0";
|
||||||
else if (cmdline_exe_hack[0] == '*') {
|
else if (scheme_cmdline_exe_hack[0] == '*') {
|
||||||
/* "*" means that the first item is argv[0] replacement: */
|
/* "*" means that the first item is argv[0] replacement: */
|
||||||
sprog = prog;
|
sprog = prog;
|
||||||
prog = (char *)p + 4;
|
prog = (char *)p + 4;
|
||||||
|
@ -727,7 +727,7 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
||||||
}
|
}
|
||||||
} else
|
} else
|
||||||
#endif
|
#endif
|
||||||
p = (unsigned char *)cmdline_exe_hack + 1;
|
p = (unsigned char *)scheme_cmdline_exe_hack + 1;
|
||||||
|
|
||||||
/* Command line is encoded as a sequence of pascal-style strings;
|
/* Command line is encoded as a sequence of pascal-style strings;
|
||||||
we use four whole bytes for the length, though, little-endian. */
|
we use four whole bytes for the length, though, little-endian. */
|
||||||
|
@ -1194,10 +1194,10 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
||||||
#ifndef NO_FILE_SYSTEM_UTILS
|
#ifndef NO_FILE_SYSTEM_UTILS
|
||||||
/* Setup path for "collects" collection directory: */
|
/* Setup path for "collects" collection directory: */
|
||||||
if (!collects_path) {
|
if (!collects_path) {
|
||||||
if (!_coldir[_coldir_offset])
|
if (!scheme_coldir[_coldir_offset])
|
||||||
collects_path = scheme_make_false();
|
collects_path = scheme_make_false();
|
||||||
else
|
else
|
||||||
collects_path = scheme_make_path(_coldir XFORM_OK_PLUS _coldir_offset);
|
collects_path = scheme_make_path(scheme_coldir XFORM_OK_PLUS _coldir_offset);
|
||||||
} else if (!SAME_OBJ(collects_path, scheme_make_false()))
|
} else if (!SAME_OBJ(collects_path, scheme_make_false()))
|
||||||
collects_path = scheme_path_to_complete_path(collects_path, NULL);
|
collects_path = scheme_path_to_complete_path(collects_path, NULL);
|
||||||
if (SAME_OBJ(collects_path, scheme_make_false())) {
|
if (SAME_OBJ(collects_path, scheme_make_false())) {
|
||||||
|
@ -1220,11 +1220,11 @@ static int run_from_cmd_line(int argc, char *_argv[],
|
||||||
collects_paths_l = scheme_make_null();
|
collects_paths_l = scheme_make_null();
|
||||||
offset = _coldir_offset;
|
offset = _coldir_offset;
|
||||||
while (1) {
|
while (1) {
|
||||||
len = strlen(_coldir XFORM_OK_PLUS offset);
|
len = strlen(scheme_coldir XFORM_OK_PLUS offset);
|
||||||
offset += len + 1;
|
offset += len + 1;
|
||||||
if (!_coldir[offset])
|
if (!scheme_coldir[offset])
|
||||||
break;
|
break;
|
||||||
collects_paths_l = scheme_make_pair(scheme_make_path(_coldir XFORM_OK_PLUS offset),
|
collects_paths_l = scheme_make_pair(scheme_make_path(scheme_coldir XFORM_OK_PLUS offset),
|
||||||
collects_paths_l);
|
collects_paths_l);
|
||||||
}
|
}
|
||||||
collects_paths_l = reverse_path_list(collects_paths_l, 0);
|
collects_paths_l = reverse_path_list(collects_paths_l, 0);
|
||||||
|
|
Loading…
Reference in New Issue
Block a user