[前][次][番号順一覧][スレッド一覧]

ruby-changes:3740

From: ko1@a...
Date: Fri, 25 Jan 2008 15:41:41 +0900 (JST)
Subject: [ruby-changes:3740] nobu - Ruby:r15229 (trunk): * ruby.c (cmdline_arguments): split argc and argv from cmdline_options.

nobu	2008-01-25 15:41:22 +0900 (Fri, 25 Jan 2008)

  New Revision: 15229

  Modified files:
    trunk/ChangeLog
    trunk/ruby.c

  Log:
    * ruby.c (cmdline_arguments): split argc and argv from cmdline_options.


  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ruby.c?r1=15229&r2=15228&diff_format=u
  http://svn.ruby-lang.org/cgi-bin/viewvc.cgi/trunk/ChangeLog?r1=15229&r2=15228&diff_format=u

Index: ChangeLog
===================================================================
--- ChangeLog	(revision 15228)
+++ ChangeLog	(revision 15229)
@@ -1,5 +1,7 @@
-Fri Jan 25 15:12:42 2008  Nobuyoshi Nakada  <nobu@r...>
+Fri Jan 25 15:41:20 2008  Nobuyoshi Nakada  <nobu@r...>
 
+	* ruby.c (cmdline_arguments): split argc and argv from cmdline_options.
+
 	* ruby.c (process_options): not set encoding of -e option from -E
 	  option if they are not compatible.
 
Index: ruby.c
===================================================================
--- ruby.c	(revision 15228)
+++ ruby.c	(revision 15229)
@@ -66,8 +66,6 @@
 char *ruby_inplace_mode = 0;
 
 struct cmdline_options {
-    int argc;
-    char **argv;
     int sflag, xflag;
     int do_loop, do_print;
     int do_check, do_line;
@@ -88,6 +86,12 @@
     } src, ext;
 };
 
+struct cmdline_arguments {
+    int argc;
+    char **argv;
+    struct cmdline_options *opt;
+};
+
 static NODE *load_file(VALUE, const char *, int, struct cmdline_options *);
 static void forbid_setid(const char *);
 
@@ -880,9 +884,10 @@
 static VALUE
 process_options(VALUE arg)
 {
-    struct cmdline_options *opt = (struct cmdline_options *)arg;
-    int argc = opt->argc;
-    char **argv = opt->argv;
+    struct cmdline_arguments *argp = (struct cmdline_arguments *)arg;
+    struct cmdline_options *opt = argp->opt;
+    int argc = argp->argc;
+    char **argv = argp->argv;
     NODE *tree = 0;
     VALUE parser;
     rb_encoding *enc;
@@ -1437,18 +1442,20 @@
 void *
 ruby_process_options(int argc, char **argv)
 {
+    struct cmdline_arguments args;
     struct cmdline_options opt;
     NODE *tree;
 
     MEMZERO(&opt, opt, 1);
     ruby_script(argv[0]);	/* for the time being */
     rb_argv0 = rb_progname;
-    opt.argc = argc;
-    opt.argv = argv;
+    args.argc = argc;
+    args.argv = argv;
+    args.opt = &opt;
     opt.src.enc.index = -1;
     opt.ext.enc.index = -1;
     tree = (NODE *)rb_vm_call_cfunc(rb_vm_top_self(),
-				    process_options, (VALUE)&opt,
+				    process_options, (VALUE)&args,
 				    0, rb_progname);
 
     rb_define_readonly_boolean("$-p", opt.do_print);

--
ML: ruby-changes@q...
Info: http://www.atdot.net/~ko1/quickml/

[前][次][番号順一覧][スレッド一覧]