diff options
| -rw-r--r-- | .gitmodules | 3 | ||||
| m--------- | bruiser/LuaJIT | 0 | ||||
| -rw-r--r-- | bruiser/bruiser.cpp | 245 | 
3 files changed, 5 insertions, 243 deletions
| diff --git a/.gitmodules b/.gitmodules index c5242ab..b4dd2d7 100644 --- a/.gitmodules +++ b/.gitmodules @@ -1,3 +1,6 @@  [submodule "bruiser/linenoise"]  	path = bruiser/linenoise  	url = https://github.com/antirez/linenoise +[submodule "bruiser/LuaJIT"] +	path = bruiser/LuaJIT +	url = https://github.com/LuaJIT/LuaJIT diff --git a/bruiser/LuaJIT b/bruiser/LuaJIT new file mode 160000 +Subproject 630ff3196a06353c6a7ccd1e9ac3958f4a8ca13 diff --git a/bruiser/bruiser.cpp b/bruiser/bruiser.cpp index 12cbea0..d9c0f66 100644 --- a/bruiser/bruiser.cpp +++ b/bruiser/bruiser.cpp @@ -924,6 +924,7 @@ class LuaWrapper  #define LIST_GENERATOR(__x1) \      int List##__x1(lua_State* __ls)\      {\ +      assert(PushToLua.size() == 0);\        unsigned int InArgCnt = 0U;\        InArgCnt = lua_gettop(__ls);\        unsigned int returncount=0U;\ @@ -979,20 +980,6 @@ int LuaDispatch(lua_State* __ls)  /*Main*/  int main(int argc, const char **argv)   { -  int RunResult; -  bruiser::ShellHistory shHistory; - -  std::regex listcommand("^list\\s"); -  std::regex listfuncs("^list\\sfuncs$"); -  std::regex listvars("^list\\svars$"); -  std::regex listarrays("^list\\sarrays$"); -  std::regex listrecords("^list\\srecords$"); -  std::regex listclasses("^list\\sclasses$"); -  std::regex liststructs("^list\\sstructs$$"); -  std::regex listunions("^list\\sunions$$"); -  std::regex dumplist("^list\\sdump\\s"); -  std::smatch smresult; -    /*gets the compilation database and options for the clang instances that we would later run*/    CommonOptionsParser op(argc, argv, BruiserCategory);    ClangTool Tool(op.getCompilations(), op.getSourcePathList()); @@ -1034,238 +1021,10 @@ int main(int argc, const char **argv)        linenoiseHistoryAdd(command);        linenoiseHistorySave(SHELL_HISTORY_FILE);        LE.RunChunk(command); +      linenoiseFree(command);      }      /*end of bruiser main*/ - -    while((command = linenoise("bruiser>>")) != NULL) -    { -      linenoiseHistoryAdd(command); -      linenoiseHistorySave(SHELL_HISTORY_FILE); - -      std::string dummy_string(command); - -      shHistory.History.push_back(command); - -      if (std::regex_search(dummy_string, smresult, listcommand)) -      { -        if (std::regex_search(dummy_string, smresult, listfuncs)) -        { -          RunResult = Tool.run(newFrontendActionFactory<LiveActionListFuncs>().get()); -          continue; -        } - -        if (std::regex_search(dummy_string, smresult, listvars)) -        { -          RunResult = Tool.run(newFrontendActionFactory<LiveActionListVars>().get()); -          continue; -        } - -        if (std::regex_search(dummy_string, smresult, listarrays)) -        { -          RunResult = Tool.run(newFrontendActionFactory<LiveActionListArrays>().get()); -          continue; -        } - -        if (std::regex_search(dummy_string, smresult, listclasses)) -        { -          RunResult = Tool.run(newFrontendActionFactory<LiveActionListClasses>().get()); -          continue; -        } - -        if (std::regex_search(dummy_string, smresult, liststructs)) -        { -          RunResult = Tool.run(newFrontendActionFactory<LiveActionListStructs>().get()); -          continue; -        } - -        if (std::regex_search(dummy_string, smresult, listunions)) -        { -          RunResult = Tool.run(newFrontendActionFactory<LiveActionListUnions>().get()); -          continue; -        } - -        if (std::regex_search(dummy_string, smresult, listrecords)) -        { -          NOT_IMPLEMENTED; -          continue; -        } -      } - -      if (std::strcmp(command, "exit") == 0 || std::strcmp(command, "quit") == 0) -      { -        return 0; -      } - -      if (std::strcmp(command, "m0") == 0) -      { -        BruiseRep.PrintToLog("bruiser exited with:"); -        BruiseRep.PrintToLog(RunResult); - -        bruiser::ReadM0 M0Rep; -        tinyxml2::XMLError XMLErr; - -        XMLErr = M0Rep.LoadXMLDoc(); -        if (XMLErr != XML_SUCCESS) -        { -          std::cout << RED << "could not load m0 xml report.\n" << NORMAL; -          std::cout << RED << "tinyxml2 returned " << XMLErr << NORMAL; -          return XMLErr; -        } - -        XMLErr = M0Rep.ReadFirstElement(); -        if (XMLErr != XML_SUCCESS) -        { -          std::cerr << RED << "could not read first element of m0 xml report.\n" << NORMAL; -          return XMLErr; -        } - -        bruiser::SearchM0(M0Rep.getRootPointer()); -        continue; -      } - -      if (std::strcmp(command, "hijack main") == 0) -      { - -        RunResult = Tool.run(newFrontendActionFactory<BruiserFrontendAction>().get()); -        //std::cout << CYAN <<"hijacking main returned " << RunResult << "\n" << NORMAL; -        printf(CYAN"hijacking main returned %d", RunResult); -        printf(NORMAL"\n"); -        continue; -      } - -      if (std::strcmp(command, "list") == 0) -      { - -      } - -      if (std::strcmp(command, "clear") == 0) -      { -        linenoiseClearScreen(); -        //std::cout << CLEAR; -        continue; -      } - -      if (std::strcmp(command, "shell") == 0) -      { -        system("bash -i"); -        continue; -      } - -      if (std::strcmp(command, "help") == 0) -      { - -        for (auto &iter : bruiser::CMDHelp) -        { -          printf(GREEN"%s:%s:%s",iter.name.c_str(),iter.proto.c_str(),iter.descr.c_str()); -          printf(NORMAL"\n"); -        } - -        std::cout << NORMAL; - -        continue; -      } - -      if (std::strcmp(command, "history") == 0) -      { -        std::ifstream historyfile; -        historyfile.open(SHELL_HISTORY_FILE); - -        std::string tempstring; -        unsigned int tempint = 0; -        while(std::getline(historyfile, tempstring)) -        { -          printf(GREEN"%d - %s", tempint, tempstring.c_str()); -          printf(NORMAL"\n"); - -          tempint++; -        } - -        continue; -      } - -      if (std::strcmp(command, "version") == 0) -      { -        PRINT_WITH_COLOR_LB(GREEN, "bruiser experimental version something."); -        PRINT_WITH_COLOR_LB(GREEN, "project mutator"); -        PRINT_WITH_COLOR_LB(GREEN, "GPL v2.0"); -        PRINT_WITH_COLOR_LB(GREEN, "bloodstalker 2017"); -        continue; -      } - -      if (std::strcmp(command, "runlua") == 0) -      { -        LuaEngine LE; -        LE.LoadEverylib(); -        LE.Test(); -        //LE.Cleanup(); -        continue; -      } - -#if 1 -      if (std::strcmp(command, "runluachain1") == 0) -      { -        LuaEngine LE; -        LE.LoadEverylib(); -        LE.Test2(); -        //LE.Cleanup(); -        continue; -      } - -      if (std::strcmp(command, "runluachain2") == 0) -      { -        LuaEngine LE; -        LE.LoadEverylib(); -        LE.Test3(); -        //LE.Cleanup(); -        continue; -      } -#endif - -      if (command[0] == '!') -      { -        /*FIXME*/ -        std::string cut_string; -        unsigned int command_number; -        cut_string = dummy_string.substr(1, dummy_string.length()); -        command_number = std::stoi(cut_string, 0, 10); - -        if (command_number > SHELL_HISTORY_SIZE - 1) -        { -          PRINT_WITH_COLOR_LB(RED, "the command number provided is bigger than SHELL_HISTORY_SIZE"); -        } -        else -        { -          std::ifstream historyfile; -          historyfile.open(SHELL_HISTORY_FILE); -          std::string tempstring; -          unsigned int tempint = 0; - -          while(std::getline(historyfile, tempstring)) -          { -            if (tempint == command_number) -            { -              PRINT_WITH_COLOR_LB(NORMAL, tempstring.c_str()); -              break; -            } - -            tempint++; -          } -        } - -        continue; -      } - -      if (command != NULL) -      { -        printf(BLUE"unknown command. run help" NORMAL "\n"); -        //PRINT_WITH_COLOR_LB(BLUE, "unknown command. run help"); -        //std::cout << RED << "unknown command. run help.\n" << NORMAL; -      } - -      linenoiseFree(command); -    } // end of while -      return 0;    } //end of cli block | 
