"Fossies" - the Fresh Open Source Software Archive

Member "highlight-3.57-x64/src/core/Diluculum/LuaWrappers.cpp" (12 May 2020, 2995 Bytes) of package /windows/www/highlight-3.57-x64.zip:


As a special service "Fossies" has tried to format the requested source page into HTML format using (guessed) C and C++ source code syntax highlighting (style: standard) with prefixed line numbers and code folding option. Alternatively you can here view or download the uninterpreted source code file.

    1 /******************************************************************************\
    2 * LuaWrappers.cpp                                                              *
    3 * Making C++ stuff accessible from Lua.                                        *
    4 *                                                                              *
    5 *                                                                              *
    6 * Copyright (C) 2005-2013 by Leandro Motta Barros.                             *
    7 *                                                                              *
    8 * Permission is hereby granted, free of charge, to any person obtaining a copy *
    9 * of this software and associated documentation files (the "Software"), to     *
   10 * deal in the Software without restriction, including without limitation the   *
   11 * rights to use, copy, modify, merge, publish, distribute, sublicense, and/or  *
   12 * sell copies of the Software, and to permit persons to whom the Software is   *
   13 * furnished to do so, subject to the following conditions:                     *
   14 *                                                                              *
   15 * The above copyright notice and this permission notice shall be included in   *
   16 * all copies or substantial portions of the Software.                          *
   17 *                                                                              *
   18 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR   *
   19 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,     *
   20 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.  IN NO EVENT SHALL THE *
   21 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER       *
   22 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING      *
   23 * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS *
   24 * IN THE SOFTWARE.                                                             *
   25 \******************************************************************************/
   26 
   27 #include <Diluculum/LuaWrappers.hpp>
   28 #include <cassert>
   29 
   30 
   31 namespace Diluculum
   32 {
   33    namespace Impl
   34    {
   35       // - ReportErrorFromCFunction --------------------------------------------
   36       void ReportErrorFromCFunction (lua_State* ls, const::std::string& what)
   37       {
   38          lua_Debug ar;
   39          int ret = lua_getstack (ls, 0, &ar);
   40 
   41          assert (ret != 0 && "'lua_getstack()' wasn't supposed to return '0' "
   42                  "here. Possible error cause: 'ReportErrorFromCFunction()' "
   43                  "wasn't called from a Lua function implemented in C.");
   44 
   45          ret = lua_getinfo (ls, "n", &ar);
   46 
   47          assert (ret != 0 && "'lua_getinfo()' wasn't supposed to return '1' "
   48                  "here. *Nothing* could go wrong at this point! Oh, well...");
   49 
   50          const std::string msg = std::string("Error found when calling '")
   51             + ar.name + "': " + what;
   52 
   53          lua_pushstring (ls, msg.c_str());
   54          lua_error (ls);
   55       }
   56    }
   57 }