static XS (XS_eval) { int foo; dXSARGS; for (foo=0; foo<items; foo++) { runcmds(SvPV_nolen(ST(foo)), ""); } XSRETURN(0); }
static XS (XS_cmd) { int foo; dXSARGS; for (foo=0; foo<items; foo++) { runcmds("$*", SvPV_nolen(ST(foo))); } XSRETURN(0); }
static void for_next_cmd (int argc, char **argv, const char *subargs) { char *var, *cmds; char istr[256]; int start, end, step = 1, i; if (!subargs) subargs = empty_string; if ((my_stricmp(argv[1], "from") && my_stricmp(argv[1], "=")) || (argc != 6 && argc != 8)) { my_error("Usage: /FOR var FROM start TO end {commands}"); return; } var = argv[0]; start = atoi(argv[2]); end = atoi(argv[4]); if (argc == 8) { step = atoi(argv[6]); cmds = argv[7]; } else { step = 1; cmds = argv[5]; } if (*cmds == '{') cmds++; will_catch_break_exceptions++; will_catch_continue_exceptions++; for (i = start; step > 0 ? i <= end : i >= end; i += step) { snprintf(istr, 255, "%d", i); add_local_alias(var, istr, 0); runcmds(cmds, subargs); if (break_exception) { break_exception = 0; break; } if (continue_exception) continue_exception = 0; /* Dont continue here! */ if (return_exception) break; if (system_exception) break; } will_catch_break_exceptions--; will_catch_continue_exceptions--; }
static void for_fe_cmd (int argc, char **argv, const char *subargs) { char *var, *list, *cmds; char *next, *real_list, *x; if (!subargs) subargs = empty_string; if ((my_stricmp(argv[1], "in")) || (argc != 4)) { my_error("Usage: /FOR var IN (list) {commands}"); return; } var = argv[0]; list = argv[2]; cmds = argv[3]; if (*cmds == '{') cmds++; if (*list == '(') list++; x = real_list = expand_alias(list, subargs); will_catch_break_exceptions++; will_catch_continue_exceptions++; while (real_list && *real_list) { next = next_func_arg(real_list, &real_list); add_local_alias(var, next, 0); runcmds(cmds, subargs); if (break_exception) { break_exception = 0; break; } if (continue_exception) continue_exception = 0; /* Dont continue here! */ if (return_exception) break; if (system_exception) break; } will_catch_break_exceptions--; will_catch_continue_exceptions--; new_free(&x); }
static VALUE epic_eval (VALUE module, VALUE string) { RUBY_STARTUP runcmds(my_string, ""); return Qnil; }
static VALUE epic_cmd (VALUE module, VALUE string) { RUBY_STARTUP runcmds("$*", my_string); return Qnil; }