1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/main.c
shyouhei 83c5219287 * main.c: <stdlib.h> is needed, to introduce the getenv(3)
prototype declaration.  Without it a C compiler shall infer
  the getenv type as "int getenv(...);", but this is totally
  wrong, especially when your machine's sizeof(int) and
  sizeof(char*) differs.  On such environment a return value
  of getenv(3), which is in fact a char*, might first casted
  into a int (loses data here), and then casted back to char*
  by automatic integral promotion fo fit to the prototype of
  ruby_set_debug_option().


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@29658 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
2010-11-01 12:43:59 +00:00

40 lines
729 B
C

/**********************************************************************
main.c -
$Author$
created at: Fri Aug 19 13:19:58 JST 1994
Copyright (C) 1993-2007 Yukihiro Matsumoto
**********************************************************************/
#undef RUBY_EXPORT
#include "ruby.h"
#include "debug.h"
#ifdef HAVE_LOCALE_H
#include <locale.h>
#endif
#ifdef RUBY_DEBUG_ENV
#include <stdlib.h>
#endif
RUBY_GLOBAL_SETUP
int
main(int argc, char **argv)
{
#ifdef RUBY_DEBUG_ENV
ruby_set_debug_option(getenv("RUBY_DEBUG"));
#endif
#ifdef HAVE_LOCALE_H
setlocale(LC_CTYPE, "");
#endif
ruby_sysinit(&argc, &argv);
{
RUBY_INIT_STACK;
ruby_init();
return ruby_run_node(ruby_options(argc, argv));
}
}