#include "LuaState.h"#include <list>#include <string>#include <algorithm>#include <stdio.h>#include <string.h>#include "LuaStateFunctions.h"#include "lualib.h"Go to the source code of this file.
Functions | |
| LUALIB_API int | lua_baselibopen (lua_State *L) | 
| LUALIB_API int | lua_iolibopen (lua_State *L) | 
| LUALIB_API int | lua_strlibopen (lua_State *L) | 
| LUALIB_API int | lua_mathlibopen (lua_State *L) | 
| LUALIB_API int | lua_dblibopen (lua_State *L) | 
| int | LS_LOG (LuaState state) | 
| int | LS_WriteLuaObject (LuaState state) | 
| int | LS_WriteLuaFile (LuaState state) | 
| int | LS_WriteLuaGlobalsFile (LuaState state) | 
| void | FatalError () | 
| void | LSLock (void *data) | 
| void | LSUnlock (void *data) | 
| int | lua_dumplibopen (lua_State *L) | 
| void | IndentFile (LuaStateOutFile &file, unsigned int indentLevel) | 
| void | luaI_addquotedbinary (LuaStateOutFile &file, lua_State *L, const char *s, int l) | 
| void | luaI_addquotedwidebinary (LuaStateOutFile &file, lua_State *L, const wchar_t *s, int l) | 
      
  | 
  
| 
 
 Definition at line 146 of file LuaState.cpp. 00149     {
 | 
  
      
  | 
  ||||||||||||
| 
 Adds [indentLevel] number of spaces to the file. Definition at line 342 of file LuaState.cpp. 00342         {
00343             case l_c('"'):  case l_c('\\'):
00344                 file.Print("\\%c", *s);
00345                 break;
00346             case l_c('\a'):     file.Print("\\a");      break;
00347             case l_c('\b'):     file.Print("\\b");      break;
00348             case l_c('\f'):     file.Print("\\f");      break;
00349             case l_c('\n'):     file.Print("\\n");      break;
00350             case l_c('\r'):     file.Print("\\r");      break;
 | 
  
      
  | 
  
| 
 
 Definition at line 154 of file LuaState.cpp.  | 
  
      
  | 
  
| 
 
 Definition at line 163 of file LuaState.cpp. 00163 {
00164     m_state = lua_newthread(script, stackSize);
00165     Init(initStandardLibrary, stackSize);
00166 }
00167 
 | 
  
      
  | 
  
| 
 
 Definition at line 57 of file LuaState.cpp. 00068 {
 | 
  
      
  | 
  
| 
 
 Definition at line 95 of file LuaState.cpp. 00100 {
00101     LPCSTR fileName = state.ToString(1);
00102     LuaObject writeAllObj(state, 2);
00103     LuaObject alphabeticalObj(state, 3);
00104     LuaObject maxIndentLevelObj(state, 4);
00105     bool writeAll = !writeAllObj.IsNil()  &&  writeAllObj.GetInteger() != 0;
00106     bool alphabetical = !alphabeticalObj.IsNil()  &&  alphabeticalObj.GetInteger() != 0;
00107     int maxIndentLevel = maxIndentLevelObj.IsNumber() ? maxIndentLevelObj.GetInteger() : 0xFFFFFFFF;
00108 
00109     state.WriteLuaGlobalsFile(fileName, writeAll, alphabetical, false, maxIndentLevel);
00110 
00111     state.PushBool(true);
00112     return 1;
00113 }
00114 
00115 
00118 static void FatalError()
00119 {
00120     throw -1;
00121 }
00122 
 | 
  
      
  | 
  
| 
 
 Definition at line 127 of file LuaState.cpp. 00127 {
00128     CRITICAL_SECTION* cs = (CRITICAL_SECTION*)data;
00129     ::EnterCriticalSection(cs);
00130 }
00131 
00132 
00135 static void LSUnlock(void* data)
00136 {
00137     CRITICAL_SECTION* cs = (CRITICAL_SECTION*)data;
00138     ::LeaveCriticalSection(cs);
00139 }
00140 
00141 
 | 
  
      
  | 
  
| 
 
 Definition at line 72 of file LuaState.cpp. 00072     {
00073         state.PushBool(false);
00074         return 1;
00075     }
00076     LuaObject nameObj(state, 2);
00077     LuaObject valueObj(state, 3);
00078     LuaObject indentLevelObj(state, 4);
00079     LuaObject writeAllObj(state, 5);
00080     LuaObject alphabeticalObj(state, 6);
00081     LuaObject maxIndentLevelObj(state, 7);
00082     bool writeAll = !writeAllObj.IsNil()  &&  writeAllObj.GetInteger() != 0;
00083     bool alphabetical = !alphabeticalObj.IsNil()  &&  alphabeticalObj.GetInteger() != 0;
00084     int maxIndentLevel = maxIndentLevelObj.IsNumber() ? maxIndentLevelObj.GetInteger() : 0xFFFFFFFF;
00085 
00086     LuaStateOutFile stdFile;
00087     stdFile.Assign(file);
00088     state.WriteLuaObject(stdFile, nameObj.GetString(), valueObj,
00089             indentLevelObj.GetInteger(), writeAll, alphabetical, false, maxIndentLevel);
00090     fclose(file);
 | 
  
      
  | 
  ||||||||||||||||||||
| 
 
 Definition at line 364 of file LuaState.cpp. 00368 {
00369     file.Print("L\"");
00370     while (l--)
00371     {
00372         switch (*s)
00373         {
00374             case l_uc('"'):
00375             case l_uc('\\'):
00376                 file.Print("\\%c", *s);
00377                 break;
00378             case l_uc('\a'):        file.Print("\\a");      break;
00379             case l_uc('\b'):        file.Print("\\b");      break;
00380             case l_uc('\f'):        file.Print("\\f");      break;
00381             case l_uc('\n'):        file.Print("\\n");      break;
00382             case l_uc('\r'):        file.Print("\\r");      break;
00383             case l_uc('\t'):        file.Print("\\t");      break;
00384             case l_uc('\v'):        file.Print("\\v");      break;
00385             default:
00386                 if (*s < 256  &&  isprint((BYTE)*s))
00387                 {
00388                     file.Print("%c", *s);
00389                 }
00390                 else
00391                 {
00392                     file.Print("\\x%04x", (DWORD)*s);
 | 
  
      
  | 
  ||||||||||||||||||||
| 
 
 Definition at line 395 of file LuaState.cpp. 00407 {
00408     LuaState script = value;
00409     
00410     // If there is nothing in the variable, then don't write it.
00411     if (value.IsNil())
00412         return false;
00413 
00414     // If the variable is user data or a function, then don't write it.
00415     if (value.IsUserData()  ||  value.IsFunction()  ||  value.IsCFunction())
00416     {
00417         if (writeAll  &&  name)
00418         {
00419             if (value.IsUserData())
00420                 file.Print("-- %s = '!!!USERDATA!!!'\n", name);
00421             else if (value.IsFunction())
00422             {
00423                 lua_Debug ar;
00424                 PushValue(value);
00425                 lua_getinfo(m_state, ">S", &ar);
00426 //              printf("%d\n", ar.linedefined);
 | 
  
      
  | 
  
| 
 
  | 
  
      
  | 
  
| 
 
  | 
  
      
  | 
  
| 
 
  | 
  
      
  | 
  
| 
 
  | 
  
      
  | 
  
| 
 
  | 
  
      
  | 
  
| 
 
  | 
  
1.2.11.1 written by Dimitri van Heesch,
 © 1997-2001