factoring out startup routine for embedded use
This commit is contained in:
parent
eec95c17b8
commit
1dcc71ec82
|
@ -2258,7 +2258,7 @@ static value_t argv_list(int argc, char *argv[])
|
|||
|
||||
extern value_t fl_file(value_t *args, uint32_t nargs);
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
int fl_startup()
|
||||
{
|
||||
value_t e;
|
||||
int saveSP;
|
||||
|
@ -2303,10 +2303,6 @@ int main(int argc, char *argv[])
|
|||
}
|
||||
ios_close(value2c(ios_t*,Stack[SP-1]));
|
||||
POPN(1);
|
||||
|
||||
PUSH(symbol_value(symbol("__start")));
|
||||
PUSH(argv_list(argc, argv));
|
||||
(void)_applyn(1);
|
||||
}
|
||||
FL_CATCH {
|
||||
ios_puts("fatal error during bootstrap:\n", ios_stderr);
|
||||
|
@ -2314,6 +2310,24 @@ int main(int argc, char *argv[])
|
|||
ios_putc('\n', ios_stderr);
|
||||
return 1;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int main(int argc, char *argv[])
|
||||
{
|
||||
if (fl_startup())
|
||||
return 1;
|
||||
|
||||
FL_TRY {
|
||||
PUSH(symbol_value(symbol("__start")));
|
||||
PUSH(argv_list(argc, argv));
|
||||
(void)_applyn(1);
|
||||
}
|
||||
FL_CATCH {
|
||||
ios_puts("fatal error:\n", ios_stderr);
|
||||
fl_print(ios_stderr, lasterror);
|
||||
ios_putc('\n', ios_stderr);
|
||||
return 1;
|
||||
}
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -322,4 +322,6 @@ value_t fl_hash(value_t *args, u_int32_t nargs);
|
|||
value_t cvalue_byte(value_t *args, uint32_t nargs);
|
||||
value_t cvalue_wchar(value_t *args, uint32_t nargs);
|
||||
|
||||
int fl_startup();
|
||||
|
||||
#endif
|
||||
|
|
Loading…
Reference in New Issue