/* Processes options 'e' and 'l', which involve running Lua code, and 'W', which also affects the state. Returns 0 if some code raises an error.  */
static int runargs(lua_State *L, char **argv, int n)
/* Processes options 'e' and 'l', which involve running Lua code, and 'W', which also affects the state. Returns 0 if some code raises an error.  */
static int runargs(lua_State *L, char **argv, int n)
{
    int option = argv[i][1];
    lua_assert(argv[i][0] == '-');
    switch (option) {
      case 'e':  case 'l': {
        int status;
        char *extra = argv[i] + 2;
        if (*extra == '\0') extra = argv[++i];
        lua_assert(extra != NULL);
        status = (option == 'e')
                 ? dostring(L, extra, "=(command line)")
                 : dolibrary(L, extra);
        if (status != LUA_OK) return 0;
        break;
      }
      case 'W':
        lua_warning(L, "@on", 0);
        break;
    }
  }
  return 1;
}