mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 05:17:34 +00:00
Enough compatibility work to make figlet build and run!
I ran out of steam writing library routines and imported two BSD-licensed libc routines: sscanf() and getopt(). I will most likely rewrite them sooner or later. For now I just wanted to see figlet running.
This commit is contained in:
parent
69c7a59e6f
commit
819ce91395
22 changed files with 714 additions and 36 deletions
|
@ -10,9 +10,14 @@ int errno;
|
|||
FILE* stdin;
|
||||
FILE* stdout;
|
||||
FILE* stderr;
|
||||
char** environ;
|
||||
|
||||
extern "C" void __malloc_init();
|
||||
|
||||
extern "C" int _start()
|
||||
{
|
||||
__malloc_init();
|
||||
|
||||
errno = 0;
|
||||
|
||||
__default_streams[0].fd = 0;
|
||||
|
@ -26,12 +31,18 @@ extern "C" int _start()
|
|||
|
||||
StringImpl::initializeGlobals();
|
||||
|
||||
int status = 254;
|
||||
int argc;
|
||||
char** argv;
|
||||
int rc = Syscall::invoke(Syscall::GetArguments, (dword)&argc, (dword)&argv);
|
||||
int status = 254;
|
||||
if (rc == 0)
|
||||
status = main(argc, argv);
|
||||
if (rc < 0)
|
||||
goto epilogue;
|
||||
rc = Syscall::invoke(Syscall::GetEnvironment, (dword)&environ);
|
||||
if (rc < 0)
|
||||
goto epilogue;
|
||||
status = main(argc, argv);
|
||||
|
||||
epilogue:
|
||||
Syscall::invoke(Syscall::PosixExit, status);
|
||||
|
||||
// Birger's birthday <3
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue