cs: communicate DLL directory to rktio

rktio needs the DLL directory path to load iconv.
This commit is contained in:
Matthew Flatt 2018-11-12 15:47:08 -07:00
parent 28a28e4244
commit 0b7072eed3
3 changed files with 17 additions and 5 deletions

View File

@ -93,7 +93,7 @@ static void init_foreign()
void racket_boot(int argc, char **argv, char *exec_file, char *run_file,
char *boot_exe, long segment_offset,
char *coldir, char *configdir,
char *coldir, char *configdir, /* wchar_t * */void *dlldir,
int pos1, int pos2, int pos3,
int cs_compiled_subdir, int is_gui,
int wm_is_gracket, char *gracket_guid)
@ -105,7 +105,12 @@ void racket_boot(int argc, char **argv, char *exec_file, char *run_file,
#ifdef RACKET_USE_FRAMEWORK
const char *fw_path;
#endif
#ifdef WIN32
if (dlldir)
rktio_set_dll_path((wchar_t *)dlldir);
#endif
Sscheme_init(NULL);
#ifdef RACKET_USE_FRAMEWORK

View File

@ -1,13 +1,13 @@
BOOT_EXTERN void racket_boot(int argc, char **argv, char *exec_file, char *run_file,
char *boot_exe, long segment_offset,
char *coldir, char *configdir,
char *coldir, char *configdir, /* wchar_t * */void *dlldir,
int pos1, int pos2, int pos3,
int cs_compiled_subdir, int is_gui,
int wm_is_gracket, char *gracket_guid);
typedef void (*racket_boot_t)(int argc, char **argv, char *exec_file, char *run_file,
char* boot_exe, long segment_offset,
char *coldir, char *configdir,
char *coldir, char *configdir, /* wchar_t * */void *dlldir,
int pos1, int pos2, int pos3,
int cs_compiled_subdir, int is_gui,
int wm_is_gracket, char *gracket_guid);

View File

@ -275,6 +275,13 @@ static long get_segment_offset()
}
#endif
#ifndef WIN32
static void *extract_dlldir()
{
return NULL;
}
#endif
#ifndef do_pre_filter_cmdline_arguments
# define do_pre_filter_cmdline_arguments(argc, argv) /* empty */
#endif
@ -333,7 +340,7 @@ static int bytes_main(int argc, char **argv,
racket_boot(argc, argv, exec_file, run_file,
boot_exe, segment_offset,
extract_coldir(), extract_configdir(),
extract_coldir(), extract_configdir(), extract_dlldir(),
pos1, pos2, pos3,
CS_COMPILED_SUBDIR, RACKET_IS_GUI,
wm_is_gracket, gracket_guid);