1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00

* eval.c (ruby_options), ruby.c (proc_options, process_options): not

call exit(2) directly.  [ruby-dev:31912]

* eval.c (ruby_run_node): deal with direct exit code.


git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@13579 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
This commit is contained in:
nobu 2007-10-01 01:52:32 +00:00
parent eb64f5de06
commit b9b34059a6
4 changed files with 26 additions and 12 deletions

View file

@ -1,3 +1,10 @@
Mon Oct 1 10:52:30 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* eval.c (ruby_options), ruby.c (proc_options, process_options): not
call exit(2) directly. [ruby-dev:31912]
* eval.c (ruby_run_node): deal with direct exit code.
Sun Sep 30 17:12:53 2007 Nobuyoshi Nakada <nobu@ruby-lang.org>
* string.c (rb_str_append): always set encoding, and coderange

13
eval.c
View file

@ -121,7 +121,8 @@ ruby_options(int argc, char **argv)
}
else {
rb_clear_trace_func();
exit(error_handle(state));
state = error_handle(state);
tree = (void *)INT2FIX(state);
}
POP_TAG();
return tree;
@ -249,8 +250,13 @@ int
ruby_run_node(void *n)
{
NODE *node = (NODE *)n;
if (!n) {
return EXIT_FAILURE;
switch ((VALUE)n) {
case Qtrue: return EXIT_SUCCESS;
case Qfalse: return EXIT_FAILURE;
}
if (FIXNUM_P((VALUE)n)) {
return FIX2INT((VALUE)n);
}
Init_stack((void *)&n);
return ruby_cleanup(ruby_exec_node(node, node->nd_file));
@ -964,6 +970,7 @@ loop_i()
for (;;) {
rb_yield_0(0, 0);
}
return Qnil;
}
/*

10
ruby.c
View file

@ -614,7 +614,8 @@ proc_options(int argc, char **argv, struct cmdline_options *opt)
case 'h':
usage(origarg.argv[0]);
exit(0);
rb_exit(EXIT_SUCCESS);
break;
case 'l':
opt->do_line = Qtrue;
@ -787,7 +788,7 @@ proc_options(int argc, char **argv, struct cmdline_options *opt)
ruby_yydebug = 1;
else if (strcmp("help", s) == 0) {
usage(origarg.argv[0]);
exit(0);
rb_exit(EXIT_SUCCESS);
}
else {
rb_raise(rb_eRuntimeError,
@ -873,7 +874,7 @@ process_options(int argc, char **argv, struct cmdline_options *opt)
if (opt->version) {
ruby_show_version();
exit(0);
return (NODE *)Qtrue;
}
if (opt->copyright) {
ruby_show_copyright();
@ -887,7 +888,7 @@ process_options(int argc, char **argv, struct cmdline_options *opt)
if (!opt->e_script) {
if (argc == 0) { /* no more args */
if (opt->verbose)
return 0;
return (NODE *)Qtrue;
opt->script = "-";
}
else {
@ -1311,7 +1312,6 @@ ruby_process_options(int argc, char **argv)
struct cmdline_options opt;
NODE *tree;
MEMZERO(&opt, opt, 1);
ruby_script(argv[0]); /* for the time being */
rb_argv0 = rb_progname;

View file

@ -1,15 +1,15 @@
#define RUBY_VERSION "1.9.0"
#define RUBY_RELEASE_DATE "2007-09-30"
#define RUBY_RELEASE_DATE "2007-10-01"
#define RUBY_VERSION_CODE 190
#define RUBY_RELEASE_CODE 20070930
#define RUBY_RELEASE_CODE 20071001
#define RUBY_PATCHLEVEL 0
#define RUBY_VERSION_MAJOR 1
#define RUBY_VERSION_MINOR 9
#define RUBY_VERSION_TEENY 0
#define RUBY_RELEASE_YEAR 2007
#define RUBY_RELEASE_MONTH 9
#define RUBY_RELEASE_DAY 30
#define RUBY_RELEASE_MONTH 10
#define RUBY_RELEASE_DAY 1
#ifdef RUBY_EXTERN
RUBY_EXTERN const char ruby_version[];