Show
Ignore:
Timestamp:
10/11/08 08:36:18 (3 months ago)
Author:
tokuhirom
Message:

added --eval option support with gengetopt++

Files:
1 modified

Legend:

Unmodified
Added
Removed
  • lang/cplusplus/llv8call/trunk/src/main.cc

    r20862 r21104  
    1212#endif 
    1313#include "util.h" 
     14#include "cmdline.h" 
    1415#include "v8ext.h" 
    1516 
     
    117118 
    118119int main(int argc, char ** argv) { 
     120    gengetopt_args_info args_info; 
     121    if (cmdline_parser (argc, argv, &args_info) != 0) { 
     122        return 1; 
     123    } 
     124 
    119125    // initialize 
    120126    V8::SetFlagsFromCommandLine(&argc, argv, true); 
     
    134140 
    135141    // setup argv 
    136     Handle<Array> ARGV = Array::New(argc); 
    137     for (int i=1; i<argc; i++) { 
    138         ARGV->Set(Int32::New(i-1), String::New(argv[i])); 
     142    Handle<Array> ARGV = Array::New(args_info.inputs_num); 
     143    for (unsigned int i=1; i<args_info.inputs_num; i++) { 
     144        ARGV->Set(Int32::New(i-1), String::New(args_info.inputs[i])); 
    139145    } 
    140146    context->Global()->Set(String::New("ARGV"), ARGV); 
    141147 
    142148    // process main 
    143     if (argc >= 2) { 
     149    if (args_info.eval_given) { 
     150        if (!Exec(String::New(args_info.eval_arg), Undefined(), false)) { 
     151            return 1; 
     152        } else { 
     153            return 0; 
     154        } 
     155    } else if (args_info.inputs_num >= 1) { 
    144156        const char *srcfile = argv[1]; 
    145157        Handle<String> file_name = String::New(srcfile);