Skip to content
Browse files

Import to git

  • Loading branch information...
0 parents commit f53e9c764e6b95c3da02b27030173d7ba4f52d83 @drahosp drahosp committed Oct 1, 2010
Showing with 30,464 additions and 0 deletions.
  1. +37 −0 CMakeLists.txt
  2. +33 −0 COPYRIGHT
  3. +42 −0 INSTALL
  4. +5 −0 Makefile
  5. +30 −0 README
  6. +50 −0 README-5.1
  7. +180 −0 SConstruct
  8. +22 −0 config_linux.py
  9. +28 −0 config_msvc.py
  10. +23 −0 config_posix.py
  11. +9 −0 custom-5.1.py
  12. +6 −0 debian/README
  13. +6 −0 debian/README.Debian
  14. +121 −0 debian/changelog
  15. +1 −0 debian/compat
  16. +7 −0 debian/conffiles.ex
  17. +13 −0 debian/control
  18. +16 −0 debian/copyright
  19. +4 −0 debian/cron.d.ex
  20. +4 −0 debian/dirs
  21. +1 −0 debian/docs
  22. +45 −0 debian/emacsen-install.ex
  23. +15 −0 debian/emacsen-remove.ex
  24. +19 −0 debian/emacsen-startup.ex
  25. +74 −0 debian/init.d.ex
  26. +59 −0 debian/manpage.1.ex
  27. +156 −0 debian/manpage.sgml.ex
  28. +148 −0 debian/manpage.xml.ex
  29. +2 −0 debian/menu.ex
  30. +42 −0 debian/postinst.ex
  31. +38 −0 debian/postrm.ex
  32. +44 −0 debian/preinst.ex
  33. +39 −0 debian/prerm.ex
  34. +102 −0 debian/rules
  35. +10 −0 debian/tolua++-default.ex
  36. +22 −0 debian/tolua++.doc-base.EX
  37. +6 −0 debian/watch.ex
  38. +130 −0 dist.cmake
  39. +14 −0 dist.info
  40. +226 −0 doc/index.html
  41. +1,956 −0 doc/tolua++.html
  42. BIN doc/toluapp.gif
  43. +186 −0 include/tolua++.h
  44. +65 −0 libtoluapp.def
  45. +12 −0 src/bin/SCsub
  46. +30 −0 src/bin/lua/all.lua
  47. +233 −0 src/bin/lua/array.lua
  48. +414 −0 src/bin/lua/basic.lua
  49. +202 −0 src/bin/lua/class.lua
  50. +79 −0 src/bin/lua/clean.lua
  51. +105 −0 src/bin/lua/code.lua
  52. +57 −0 src/bin/lua/compat-5.1.lua
  53. +193 −0 src/bin/lua/compat.lua
  54. +786 −0 src/bin/lua/container.lua
  55. +45 −0 src/bin/lua/custom.lua
  56. +579 −0 src/bin/lua/declaration.lua
  57. +63 −0 src/bin/lua/define.lua
  58. +101 −0 src/bin/lua/doit.lua
  59. +106 −0 src/bin/lua/enumerate.lua
  60. +139 −0 src/bin/lua/feature.lua
  61. +577 −0 src/bin/lua/function.lua
  62. +68 −0 src/bin/lua/module.lua
  63. +52 −0 src/bin/lua/namespace.lua
  64. +220 −0 src/bin/lua/operator.lua
  65. +343 −0 src/bin/lua/package.lua
  66. +82 −0 src/bin/lua/template_class.lua
  67. +71 −0 src/bin/lua/typedef.lua
  68. +300 −0 src/bin/lua/variable.lua
  69. +78 −0 src/bin/lua/verbatim.lua
  70. +169 −0 src/bin/tolua.c
  71. +31 −0 src/bin/tolua_scons.pkg
  72. +8,072 −0 src/bin/toluabind.c
  73. +8 −0 src/bin/toluabind.h
  74. +8,009 −0 src/bin/toluabind_default.c
  75. +8 −0 src/bin/toluabind_default.h
  76. +18 −0 src/lib/SCsub
  77. +536 −0 src/lib/tolua_event.c
  78. +24 −0 src/lib/tolua_event.h
  79. +621 −0 src/lib/tolua_is.c
  80. +704 −0 src/lib/tolua_map.c
  81. +171 −0 src/lib/tolua_push.c
  82. +133 −0 src/lib/tolua_to.c
  83. +18 −0 src/tests/SCsub
  84. +45 −0 src/tests/tarray.c
  85. +28 −0 src/tests/tarray.h
  86. +37 −0 src/tests/tarray.lua
  87. +29 −0 src/tests/tarray.pkg
  88. +504 −0 src/tests/tarraybind.c
  89. +32 −0 src/tests/tclass.cpp
  90. +121 −0 src/tests/tclass.h
  91. +131 −0 src/tests/tclass.lua
  92. +97 −0 src/tests/tclass.pkg
  93. +29 −0 src/tests/tconstant.h
  94. +11 −0 src/tests/tconstant.lua
  95. +34 −0 src/tests/tconstant.pkg
  96. +6 −0 src/tests/tdirective.lua
  97. +28 −0 src/tests/tdirective.pkg
  98. +85 −0 src/tests/tdirectivebind.c
  99. +3 −0 src/tests/tdirectivelua.lua
  100. +2 −0 src/tests/tdirectivepkg.pkg
  101. +220 −0 src/tests/tfunction.h
  102. +104 −0 src/tests/tfunction.lua
  103. +74 −0 src/tests/tfunction.pkg
  104. +24 −0 src/tests/tmodule.c
  105. +7 −0 src/tests/tmodule.h
  106. +17 −0 src/tests/tmodule.lua
  107. +16 −0 src/tests/tmodule.pkg
  108. +124 −0 src/tests/tmodulebind.c
  109. +11 −0 src/tests/tnamespace.h
  110. +14 −0 src/tests/tnamespace.lua
  111. +13 −0 src/tests/tnamespace.pkg
  112. +46 −0 src/tests/tvariable.c
  113. +44 −0 src/tests/tvariable.h
  114. +73 −0 src/tests/tvariable.lua
  115. +45 −0 src/tests/tvariable.pkg
  116. +631 −0 src/tests/tvariablebind.c
  117. +27 −0 win32/vc7/toluapp.sln
  118. +259 −0 win32/vc7/toluapp.vcproj
37 CMakeLists.txt
@@ -0,0 +1,37 @@
+# Copyright (C) 2007-2009 LuaDist.
+# Created by Peter Kapec
+# Redistribution and use of this file is allowed according to the terms of the MIT license.
+# For details see the COPYRIGHT file distributed with LuaDist.
+# Please note that the package source code is licensed under its own license.
+
+PROJECT (toluapp C)
+CMAKE_MINIMUM_REQUIRED(VERSION 2.8)
+INCLUDE(dist.cmake)
+
+# Find Lua
+find_package(Lua51 REQUIRED)
+include_directories(${LUA_INCLUDE_DIR})
+
+# Build lib
+INCLUDE_DIRECTORIES(include src/lib)
+FILE(GLOB SRC_LIBTOLUAPP src/lib/*.c )
+IF(MSVC)
+ SET(DEF_FILE libtoluapp.def)
+ENDIF()
+
+ADD_LIBRARY (toluapp_lib SHARED ${SRC_LIBTOLUAPP} ${DEF_FILE})
+TARGET_LINK_LIBRARIES (toluapp_lib ${LUA_LIBRARIES})
+SET_TARGET_PROPERTIES (toluapp_lib PROPERTIES OUTPUT_NAME toluapp CLEAN_DIRECT_OUTPUT 1 )
+
+# Build app
+INCLUDE_DIRECTORIES(src/bin)
+SET(SRC_TOLUA src/bin/tolua.c src/bin/toluabind.c)
+ADD_EXECUTABLE (toluapp ${SRC_TOLUA})
+TARGET_LINK_LIBRARIES (toluapp toluapp_lib ${LUA_LIBRARIES})
+
+# Install
+INSTALL(TARGETS toluapp DESTINATION ${INSTALL_BIN})
+INSTALL(TARGETS toluapp_lib DESTINATION ${INSTALL_LIB})
+INSTALL(DIRECTORY include/ DESTINATION ${INSTALL_INC})
+INSTALL(FILES README INSTALL DESTINATION ${INSTALL_DATA})
+INSTALL(DIRECTORY doc/ DESTINATION ${INSTALL_DOC})
33 COPYRIGHT
@@ -0,0 +1,33 @@
+tolua++ License
+---------------
+
+tolua++ is based on toLua (www.tecgraf.puc-rio.br/~celes/tolua), and
+it's licensed under the terms of the MIT license reproduced below.
+This means that Lua is free software and can be used for both academic
+and commercial purposes at absolutely no cost.
+
+===============================================================================
+
+Copyright (C) 2009 Ariel Manzur.
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in
+all copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
+THE SOFTWARE.
+
+===============================================================================
+
+(end of COPYRIGHT)
42 INSTALL
@@ -0,0 +1,42 @@
+This version of tolua++ uses SCons to compile (http://www.scons.org). SCons uses
+pythin. If you don't want to install python, check "Installation without scons"
+below.
+
+* Installation
+
+ 1. Edit the "config" file for your platform to suit your environment,
+ if at all necessary (for cygwin, mingw, BSD and mac OSX use
+ 'config_posix')
+ 2. Then, type "scons".
+
+ You can use 'scons -h' to see a list of available command line options.
+
+* What you get
+
+ If "scons" succeeds, you get:
+ * an executable to generate binding code in ./bin;
+ * the C library to be linked in your application in ./lib;
+ * the include file needed to compile your application in ./include.
+ These are the only directories you need for development, besides Lua.
+
+ You can use 'scons install' to install the files, see the 'prefix' option.
+
+* Installation without scons
+
+ The instructions for building tolua++ without scons depend on the particular
+ compiler you are using.
+ The simplest way is to create a folder with all .c and .h files except
+ 'toluabind_default.c', and then create a project for the executable and the
+ library, as follows:
+
+ tolua.exe: all *.c *.h in src/bin (except toluabind_default.c)
+ tolua.lib: all *.c *.h in src/lib.
+
+* Installation with Microsoft Visual Studio
+
+ The directory 'win32' contains project files for Microsoft Visual Studio 7
+ (contributed by Makoto Hamanaka). The project has 4 different build options:
+ withLua50_Release, withLua51_Release, withLua50_Debug and withLua51_Debug.
+ They all expect the lua library names used by the LuaBinaries packages
+ (http://luabinaries.luaforge.net/). The resulting files are built on /lib and
+ /bin (for the library and tolua++.exe).
5 Makefile
@@ -0,0 +1,5 @@
+# makefile for tolua hierarchy
+
+all:
+ @echo "Makefile is deprecated ;)"
+ @echo "see INSTALL for details on how to build tolua++"
30 README
@@ -0,0 +1,30 @@
+This is tolua++-1.0
+
+* What is tolua++?
+ tolua++ is an extension of toLua, a tool to integrate C/C++ code with
+ Lua. tolua++ includes new features oriented to c++, such as class
+ templates.
+
+ tolua is a tool that greatly simplifies the integration of C/C++ code
+ with Lua. Based on a "cleaned" header file, tolua automatically generates
+ the binding code to access C/C++ features from Lua. Using Lua-5.0 API and
+ metamethod facilities, the current version automatically maps C/C++
+ constants, external variables, functions, namespace, classes, and methods
+ to Lua. It also provides facilities to create Lua modules.
+
+* Availability
+
+ tolua++ is freely available for both academic and commercial purposes.
+ See COPYRIGHT for details.
+
+ tolua++ can be downloaded from the sites below:
+ http://www.codenix.com/~tolua/
+
+* Installation
+ See INSTALL.
+
+* Contacting the author
+ tolua has been designed and implemented by Waldemar Celes.
+ tolua++ is maintained by Ariel Manzur.
+ Send your comments, bug reports and anything else to
+ tolua@codenix.com
50 README-5.1
@@ -0,0 +1,50 @@
+Compiling for lua 5.1
+---------------------
+
+Starting from version 1.0.8pre1, tolua++ can be compiled with both lua 5.0 and
+5.1. Both versions will output the same code, and the C API (tolua++.h) is the
+same.
+
+The build system is not yet ready to detect/decide when to compile for 5.1,
+the easiest way right now is to add a file called 'custom.py' on the root of
+the package, with the following:
+
+## BEGIN custom.py
+
+CCFLAGS = ['-I/usr/local/include/lua5.1', '-O2', '-ansi']
+LIBPATH = ['/usr/local/lib']
+LIBS = ['lua5.1', 'dl', 'm']
+tolua_bin = 'tolua++5.1'
+tolua_lib = 'tolua++5.1'
+TOLUAPP = 'tolua++5.1'
+
+## END custom.py
+
+This will build the binary as 'tolua++5.1' and the library as 'libtolua++5.1.a'
+(taken from tolua_bin and tolua_lib), and take the lua headers and libraries
+from /usr/local/include/lua5.1 and /usr/local/lib. It will also link with
+'-llua5.1'. Modify the parameters acording to your system.
+
+Compatibility
+-------------
+
+There are a couple of things to keep in mind when running code inside tolua
+using the -L option:
+
+* `...' and arg: you can still use 'arg' on 5.1, this is done automatically by
+adding the 'arg' declaration to functions on files loaded with dofile.
+
+For example, the line:
+
+function foo( ... )
+
+becomes
+
+function foo( ... ) local arg = {n=select('#', ...), ...};
+
+This lets you use the same code on both versions without having to make any
+modifications.
+
+* keep in mind that there are slight differences on the way string.gsub works,
+and the original version of the function is always kept, so it will behave
+diffently depending on which version of lua you're using.
180 SConstruct
@@ -0,0 +1,180 @@
+import sys;
+import os
+
+tools = ['default']
+if os.name == 'nt':
+ tools = ['mingw']
+
+env = Environment(tools = tools)
+
+options_file = None
+if sys.platform == 'linux2':
+ options_file = "linux"
+
+elif 'msvc' in env['TOOLS']:
+ options_file = "msvc"
+else:
+ options_file = "posix"
+
+opts = Options(["config_"+options_file+".py", "custom.py", "custom_"+options_file+".py"], ARGUMENTS)
+opts.Add('CC', 'The C compiler.')
+opts.Add('CXX', 'The C++ compiler (for the tests)')
+opts.Add('CCFLAGS', 'Flags for the compiler.', ['-O2', '-Wall'])
+opts.Add('LINK', 'The linker.')
+opts.Add('LINKFLAGS', 'Linker flags.', [])
+opts.Add('no_cygwin', 'Use -mno-cygwin to build using the mingw compiler on cygwin', 0)
+opts.Add('LIBS', 'libraries', [])
+opts.Add('LIBPATH', 'library path', [])
+
+opts.Add('tolua_bin', 'the resulting binary', 'tolua++')
+opts.Add('tolua_lib', 'the resulting library', 'tolua++')
+opts.Add('TOLUAPP', 'the name of the tolua++ binary (to use with built_dev=1)', 'tolua++')
+
+opts.Add('prefix', 'The installation prefix')
+opts.Add('build_dev', 'Build for development (uses tolua to rebuild toluabind.c with the embeded scripts', 0)
+opts.Add('build_failsafe', "Build using 'factory default' toluabind file (in case build_dev fails)", 0)
+opts.Add('ENV', 'The environment variables')
+opts.Add('shared', 'Build a shared object', False)
+opts.Update(env)
+Help(opts.GenerateHelpText(env))
+
+def save_config(target, source, env):
+ opts.Save('custom.py', env)
+
+cust = env.Command('custom.py', [], save_config)
+env.Alias('configure', [cust])
+
+env['TOLUAPP_BOOTSTRAP'] = env['tolua_bin']+"_bootstrap"+env['PROGSUFFIX']
+
+env['build_dev'] = int(env['build_dev'])
+
+## detecting the install directory on win32
+if 'msvc' in env['TOOLS'] and not (env.has_key('prefix') or env['prefix']):
+
+ if env['MSVS'].has_key('PLATFORMSDKDIR'):
+ env['prefix'] = env['MSVS']['PLATFORMSDKDIR']
+
+
+SConscriptChdir(0)
+
+############ helper builders
+def pkg_scan_dep(self, target, source):
+
+ import re
+
+ ## TODO: detectar si el archivo existe antes de abrirlo asi nomas
+ pkg = open(source, "rt")
+
+ for linea in pkg.xreadlines():
+ dep = re.search("^[\t\w]*\$[cphl]file\s*\"([^\"]+)\"", linea)
+ if dep:
+ self.Depends(target, '#' + dep.groups()[0]);
+
+ if dep.groups()[0][-4:] == '.pkg':
+ # recursividad
+ self.pkg_scan_dep(target, dep.groups()[0])
+
+
+def make_tolua_code(self, target, source, pkgname = None, bootstrap = False, use_own = False, use_typeid=None):
+
+ ptarget = Dir('.').path + '/' + target
+ psource = Dir('.').path + '/' + source
+ header = target[:-2] + '.h'
+ pheader = Dir('.').path + '/' + header
+
+ tolua = ""
+ if bootstrap:
+ if os.name == 'nt':
+ tolua = 'bin\\'+self['TOLUAPP_BOOTSTRAP']
+ else:
+ tolua = 'bin/'+self['TOLUAPP_BOOTSTRAP']
+ print("********* tolua is ", tolua)
+ else:
+ if use_own:
+ if 'msvc' in self['TOOLS']:
+ tolua = 'bin\\$tolua_bin'
+ else:
+ tolua = 'bin/$tolua_bin'
+ else:
+ tolua = "$TOLUAPP"
+
+ if pkgname:
+ pkgname = ' -n '+pkgname
+ else:
+ pkgname = ''
+
+ if use_typeid:
+ tolua = tolua+' -t'
+
+ comando = tolua + ' -C -H ' + pheader + ' -o ' + ptarget + pkgname + ' ' + psource
+ command = self.Command(target, source, comando)
+
+ self.SideEffect(header, target)
+ self.Depends(target, source)
+
+ self.pkg_scan_dep(target, psource)
+
+ if bootstrap:
+ self.Depends(target, "#/bin/$TOLUAPP_BOOTSTRAP")
+ if use_own:
+ self.Depends(target, "#/bin/$tolua_bin")
+
+ return command
+
+
+env.__class__.LuaBinding = make_tolua_code;
+env.__class__.pkg_scan_dep = pkg_scan_dep;
+
+def print_install_error(target, source, env):
+
+ msg = """Error: no install prefix was specified, or detected.
+
+you can use the 'prefix' option on command line to specify one. Examples:
+
+ scons prefix=/usr/local install
+
+or on Windows:
+
+ scons "prefix=c:\\program files\\visual basic" install
+
+Files will be installed on <prefix>/bin, <prefix>/lib and <prefix>/include
+"""
+ import SCons.Errors
+ raise SCons.Errors.UserError(msg)
+
+########### end of helper builders
+
+env['CPPPATH'] = '#/include'
+env['LIBPATH'] = ['#/lib'] + env['LIBPATH']
+
+if env['no_cygwin']:
+
+ env['CCFLAGS'] += ['-mno-cygwin']
+ env['LINKFLAGS'] += ['-mno-cygwin']
+
+import string
+
+Export('env')
+
+SConscript('src/lib/SCsub')
+SConscript('src/bin/SCsub')
+#SConscript('src/lib/SCsub')
+SConscript('src/tests/SCsub')
+
+env.Alias('all', [env.bin_target, env.lib_target])
+env.Alias('test', env.test_targets)
+
+Default('all')
+
+if env['prefix']:
+ env.Install(env['prefix']+'/bin', env.bin_target)
+ env.Install(env['prefix']+'/lib', env.lib_target)
+ env.Install(env['prefix']+'/include', '#include/tolua++.h')
+
+ env.Alias('install', [env['prefix']+'/bin', env['prefix']+'/include', env['prefix']+'/lib'])
+else:
+ env.Command('install', [], print_install_error)
+ env.Depends('install', 'all')
+
+env.Command('deb', [], 'dpkg-buildpackage -I.svn -Icustom.py -Itoluabind_dev.c -Itoluabind_dev.h -Itoluabind_default.o -Icustom.lua -I.sconsign', ENV=os.environ)
+
22 config_linux.py
@@ -0,0 +1,22 @@
+
+## This is the linux configuration file
+# use 'scons -h' to see the list of command line options available
+
+# Compiler flags (based on Debian's installation of lua)
+#LINKFLAGS = ['-g']
+CCFLAGS = ['-I/usr/include/lua50', '-O2', '-ansi', '-Wall']
+#CCFLAGS = ['-I/usr/include/lua50', '-g']
+
+# this is the default directory for installation. Files will be installed on
+# <prefix>/bin, <prefix>/lib and <prefix>/include when you run 'scons install'
+#
+# You can also specify this directory on the command line with the 'prefix'
+# option
+#
+# You can see more 'generic' options for POSIX systems on config_posix.py
+
+prefix = '/usr/local'
+
+# libraries (based on Debian's installation of lua)
+LIBS = ['lua50', 'lualib50', 'dl', 'm']
+
28 config_msvc.py
@@ -0,0 +1,28 @@
+
+## This is the MSVC configuration file
+# use 'scons -h' to see the list of command line options available
+
+# flags for the compiler
+CCFLAGS = ['/nologo']
+
+# this is the default directory for installation. Files will be installed on
+# <prefix>/bin, <prefix>/lib and <prefix>/include when you run 'scons install'
+#
+# You can also specify this directory on the command line with the 'prefix'
+# option
+#
+# If you leave it as 'None', we'll try to auto-detect it (as 'PLATFORMSDKDIR'
+# detected by SCons).
+
+prefix = None # (it's a string)
+
+# the libraries
+LIBS = ['lua', 'lualib']
+
+# linkflags
+LINKFLAGS = ['/nologo']
+
+## We need to specifiy the environment for the PATH and LIB and all those
+# parameters cl tales from it
+import os
+ENV = os.environ
23 config_posix.py
@@ -0,0 +1,23 @@
+
+## This is the POSIX configuration file (will be included for cygwin, mingw
+# and possibly mac OSX and BSDs)
+# use 'scons -h' to see the list of command line options available
+
+# flags for the compiler
+#CCFLAGS = []
+CCFLAGS = ['-O2', '-ansi', '-Wall']
+
+# this is the default directory for installation. Files will be installed on
+# <prefix>/bin, <prefix>/lib and <prefix>/include when you run 'scons install'
+#
+# You can also specify this directory on the command line with the 'prefix'
+# option
+
+prefix = '/usr/local'
+
+# libraries
+LIBS = ['lua', 'lualib', 'm']
+
+
+
+import os
9 custom-5.1.py
@@ -0,0 +1,9 @@
+CCFLAGS = ['-I/usr/include/lua5.1', '-O2', '-ansi']
+#LIBPATH = ['/usr/local/lib']
+LIBS = ['lua5.1', 'dl', 'm']
+prefix = '/mingw'
+#build_dev=1
+tolua_bin = 'tolua++5.1'
+tolua_lib = 'tolua++5.1'
+TOLUAPP = 'tolua++5.1'
+
6 debian/README
@@ -0,0 +1,6 @@
+The Debian Package tolua++
+----------------------------
+
+Comments regarding the Package
+
+Ariel Manzur <puntob@gmail.com>, Thu, 30 Dec 2004 11:59:14 -0300
6 debian/README.Debian
@@ -0,0 +1,6 @@
+tolua++ for Debian
+------------------
+
+<possible notes regarding this package - if none, delete this file>
+
+ -- Ariel Manzur <puntob@gmail.com>, Thu, 30 Dec 2004 11:59:14 -0300
121 debian/changelog
@@ -0,0 +1,121 @@
+tolua++ (1.0.92pre1-1) unstable; urgency=low
+
+ * fixed array bound check bug
+ * moved parsing of 'extern' keyword to the parser
+ * fixed bug in module name generation from package filename
+ * added -E command line option
+
+ -- Ariel Manzur <puntob@gmail.com> Mon, 13 Mar 2006 19:28:14 -0300
+
+tolua++ (1.0.8pre3-1) unstable; urgency=low
+
+ * changed tolua_touserdata
+ * fixed bugs
+
+ -- Ariel Manzur <puntob@gmail.com> Tue, 13 Dec 2005 01:46:33 +0100
+
+tolua++ (1.0.7-1) unstable; urgency=low
+
+ * added -C flag
+ * added object access
+ * added parser_hook
+ * merged Mildred's patch (sorry, no last name): code on open function is
+ nested, embedded lua chunks have better names
+
+ -- Ariel Manzur <puntob@gmail.com> Tue, 18 Oct 2005 22:51:04 -0300
+
+tolua++ (1.0.6-1) unstable; urgency=low
+
+ * fixed parser bugs
+ * added tolua_property
+ * added TOLUA_PROTECTED_DESTRUCTOR
+ * added inheritance from C objects by lua objects
+ * fixed class constructor bug (calling the class name directly works)
+
+ -- Ariel Manzur <puntob@gmail.com> Sat, 6 Aug 2005 09:24:10 -0300
+
+tolua++ (1.0.6pre3-1) unstable; urgency=low
+
+ * fixed tolua_tocppstring
+
+ -- Ariel Manzur <puntob@gmail.com> Sun, 26 Jun 2005 21:01:50 -0300
+
+tolua++ (1.0.6pre2-1) unstable; urgency=low
+
+ * fixed c compilation bug
+ * added -D flag
+ * fixed tolua.releaseownership?
+
+ -- Ariel Manzur <puntob@gmail.com> Mon, 2 May 2005 20:56:04 -0300
+
+tolua++ (1.0.6pre1-1) unstable; urgency=low
+
+ * something
+
+ -- Ariel Manzur <puntob@gmail.com> Wed, 27 Apr 2005 00:09:41 -0300
+
+tolua++ (1.0.5-1) unstable; urgency=low
+
+ * fixed missed inheritance bug.
+ * ready for 1.0.5
+
+ -- Ariel Manzur <puntob@gmail.com> Fri, 8 Apr 2005 23:15:19 -0300
+
+tolua++ (1.0.5~pre6-1) unstable; urgency=low
+
+ * fixed bug in tolua.cast (introduced on previous version)
+
+ -- Ariel Manzur <puntob@gmail.com> Sat, 2 Apr 2005 00:36:45 -0300
+
+tolua++ (1.0.5~pre5-1) unstable; urgency=low
+
+ * fixed bug in tolua.cast
+
+ -- Ariel Manzur <puntob@gmail.com> Fri, 18 Mar 2005 01:13:55 -0300
+
+tolua++ (1.0.5~pre4-1) unstable; urgency=low
+
+ * fixed support for overloading methods across multiple class definitions
+
+ -- Ariel Manzur <puntob@gmail.com> Thu, 3 Mar 2005 19:03:04 -0300
+
+tolua++ (1.0.5~pre3-1) unstable; urgency=low
+
+ * fixed bugs in parser
+
+ -- Ariel Manzur <puntob@gmail.com> Sun, 20 Feb 2005 19:56:32 -0300
+
+tolua++ (1.0.5~pre2-1) unstable; urgency=low
+
+ * added tolua_outside
+
+ -- Ariel Manzur <puntob@gmail.com> Fri, 11 Feb 2005 02:50:45 -0300
+
+tolua++ (1.0.5~pre1-1) unstable; urgency=low
+
+ * fixed bug in type detection
+ * fixed bug in code output for static variables
+
+ -- Ariel Manzur <puntob@gmail.com> Thu, 3 Feb 2005 02:05:43 -0300
+
+tolua++ (1.0.4-3) unstable; urgency=low
+
+ * jumped the gun on the previous release
+
+ -- Ariel Manzur <puntob@gmail.com> Thu, 20 Jan 2005 23:20:17 -0300
+
+tolua++ (1.0.4-2) unstable; urgency=low
+
+ * added optimize flags for binary package
+
+ -- Ariel Manzur <puntob@gmail.com> Fri, 14 Jan 2005 00:43:09 -0300
+
+tolua++ (1.0.4-1) unstable; urgency=low
+
+ * Initial Release.
+
+ -- Ariel Manzur <puntob@gmail.com> Thu, 30 Dec 2004 11:59:14 -0300
+
+Local variables:
+mode: debian-changelog
+End:
1 debian/compat
@@ -0,0 +1 @@
+4
7 debian/conffiles.ex
@@ -0,0 +1,7 @@
+#
+# If you want to use this conffile, remove all comments and put files that
+# you want dpkg to process here using their absolute pathnames.
+# See the policy manual
+#
+# for example:
+# /etc/tolua++/tolua++.conf
13 debian/control
@@ -0,0 +1,13 @@
+Source: tolua++
+Section: unknown
+Priority: optional
+Maintainer: Ariel Manzur <puntob@gmail.com>
+Build-Depends: debhelper (>= 4.0.0), scons, liblua50-dev, liblualib50-dev
+Standards-Version: 3.6.1
+
+Package: tolua++
+Architecture: any
+Depends: ${shlibs:Depends}, ${misc:Depends}, liblua50-dev, liblualib50-dev
+Description: tolua++
+ tolua++ is an extended version of tolua, a tool to integrate C/C++ code with
+ Lua. tolua++ includes new features oriented to c++.
16 debian/copyright
@@ -0,0 +1,16 @@
+This package is maintained by Ariel Manzur <puntob@gmail.com> on
+Sat, 08 Jan 2005 06:11:22 -0300
+
+Latest version can be found on http://www.codenix.com/~tolua/
+
+Upstream Author(s): Waldemar Celes <celes@tecgraf.puc-rio.br>,
+ Ariel Manzur <puntob@gmail.com>
+
+Copyright:
+
+Quoted from the README file accompanying tolua:
+
+ 'tolua is freely available; you can redistribute it and/or modify it.
+ The software provided hereunder is on an "as is" basis, and
+ the author has no obligation to provide maintenance, support,
+ updates, enhancements, or modifications.'
4 debian/cron.d.ex
@@ -0,0 +1,4 @@
+#
+# Regular cron jobs for the tolua++ package
+#
+0 4 * * * root tolua++_maintenance
4 debian/dirs
@@ -0,0 +1,4 @@
+usr/bin
+usr/lib
+usr/include
+
1 debian/docs
@@ -0,0 +1 @@
+README
45 debian/emacsen-install.ex
@@ -0,0 +1,45 @@
+#! /bin/sh -e
+# /usr/lib/emacsen-common/packages/install/tolua++
+
+# Written by Jim Van Zandt <jrv@vanzandt.mv.com>, borrowing heavily
+# from the install scripts for gettext by Santiago Vila
+# <sanvila@ctv.es> and octave by Dirk Eddelbuettel <edd@debian.org>.
+
+FLAVOR=$1
+PACKAGE=tolua++
+
+if [ ${FLAVOR} = emacs ]; then exit 0; fi
+
+echo install/${PACKAGE}: Handling install for emacsen flavor ${FLAVOR}
+
+#FLAVORTEST=`echo $FLAVOR | cut -c-6`
+#if [ ${FLAVORTEST} = xemacs ] ; then
+# SITEFLAG="-no-site-file"
+#else
+# SITEFLAG="--no-site-file"
+#fi
+FLAGS="${SITEFLAG} -q -batch -l path.el -f batch-byte-compile"
+
+ELDIR=/usr/share/emacs/site-lisp/${PACKAGE}
+ELCDIR=/usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+
+# Install-info-altdir does not actually exist.
+# Maybe somebody will write it.
+if test -x /usr/sbin/install-info-altdir; then
+ echo install/${PACKAGE}: install Info links for ${FLAVOR}
+ install-info-altdir --quiet --section "" "" --dirname=${FLAVOR} /usr/info/${PACKAGE}.info.gz
+fi
+
+install -m 755 -d ${ELCDIR}
+cd ${ELDIR}
+FILES=`echo *.el`
+cp ${FILES} ${ELCDIR}
+cd ${ELCDIR}
+
+cat << EOF > path.el
+(setq load-path (cons "." load-path) byte-compile-warnings nil)
+EOF
+${FLAVOR} ${FLAGS} ${FILES}
+rm -f *.el path.el
+
+exit 0
15 debian/emacsen-remove.ex
@@ -0,0 +1,15 @@
+#!/bin/sh -e
+# /usr/lib/emacsen-common/packages/remove/tolua++
+
+FLAVOR=$1
+PACKAGE=tolua++
+
+if [ ${FLAVOR} != emacs ]; then
+ if test -x /usr/sbin/install-info-altdir; then
+ echo remove/${PACKAGE}: removing Info links for ${FLAVOR}
+ install-info-altdir --quiet --remove --dirname=${FLAVOR} /usr/info/tolua++.info.gz
+ fi
+
+ echo remove/${PACKAGE}: purging byte-compiled files for ${FLAVOR}
+ rm -rf /usr/share/${FLAVOR}/site-lisp/${PACKAGE}
+fi
19 debian/emacsen-startup.ex
@@ -0,0 +1,19 @@
+;; -*-emacs-lisp-*-
+;;
+;; Emacs startup file for the Debian tolua++ package
+;;
+;; Originally contributed by Nils Naumann <naumann@unileoben.ac.at>
+;; Modified by Dirk Eddelbuettel <edd@debian.org>
+;; Adapted for dh-make by Jim Van Zandt <jrv@vanzandt.mv.com>
+
+;; The tolua++ package follows the Debian/GNU Linux 'emacsen' policy and
+;; byte-compiles its elisp files for each 'emacs flavor' (emacs19,
+;; xemacs19, emacs20, xemacs20...). The compiled code is then
+;; installed in a subdirectory of the respective site-lisp directory.
+;; We have to add this to the load-path:
+(let ((package-dir (concat "/usr/share/"
+ (symbol-name flavor)
+ "/site-lisp/tolua++")))
+ (when (file-directory-p package-dir)
+ (setq load-path (cons package-dir load-path))))
+
74 debian/init.d.ex
@@ -0,0 +1,74 @@
+#! /bin/sh
+#
+# skeleton example file to build /etc/init.d/ scripts.
+# This file should be used to construct scripts for /etc/init.d.
+#
+# Written by Miquel van Smoorenburg <miquels@cistron.nl>.
+# Modified for Debian
+# by Ian Murdock <imurdock@gnu.ai.mit.edu>.
+#
+# Version: @(#)skeleton 1.9 26-Feb-2001 miquels@cistron.nl
+#
+
+PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
+DAEMON=/usr/sbin/tolua++
+NAME=tolua++
+DESC=tolua++
+
+test -x $DAEMON || exit 0
+
+# Include tolua++ defaults if available
+if [ -f /etc/default/tolua++ ] ; then
+ . /etc/default/tolua++
+fi
+
+set -e
+
+case "$1" in
+ start)
+ echo -n "Starting $DESC: "
+ start-stop-daemon --start --quiet --pidfile /var/run/$NAME.pid \
+ --exec $DAEMON -- $DAEMON_OPTS
+ echo "$NAME."
+ ;;
+ stop)
+ echo -n "Stopping $DESC: "
+ start-stop-daemon --stop --quiet --pidfile /var/run/$NAME.pid \
+ --exec $DAEMON
+ echo "$NAME."
+ ;;
+ #reload)
+ #
+ # If the daemon can reload its config files on the fly
+ # for example by sending it SIGHUP, do it here.
+ #
+ # If the daemon responds to changes in its config file
+ # directly anyway, make this a do-nothing entry.
+ #
+ # echo "Reloading $DESC configuration files."
+ # start-stop-daemon --stop --signal 1 --quiet --pidfile \
+ # /var/run/$NAME.pid --exec $DAEMON
+ #;;
+ restart|force-reload)
+ #
+ # If the "reload" option is implemented, move the "force-reload"
+ # option to the "reload" entry above. If not, "force-reload" is
+ # just the same as "restart".
+ #
+ echo -n "Restarting $DESC: "
+ start-stop-daemon --stop --quiet --pidfile \
+ /var/run/$NAME.pid --exec $DAEMON
+ sleep 1
+ start-stop-daemon --start --quiet --pidfile \
+ /var/run/$NAME.pid --exec $DAEMON -- $DAEMON_OPTS
+ echo "$NAME."
+ ;;
+ *)
+ N=/etc/init.d/$NAME
+ # echo "Usage: $N {start|stop|restart|reload|force-reload}" >&2
+ echo "Usage: $N {start|stop|restart|force-reload}" >&2
+ exit 1
+ ;;
+esac
+
+exit 0
59 debian/manpage.1.ex
@@ -0,0 +1,59 @@
+.\" Hey, EMACS: -*- nroff -*-
+.\" First parameter, NAME, should be all caps
+.\" Second parameter, SECTION, should be 1-8, maybe w/ subsection
+.\" other parameters are allowed: see man(7), man(1)
+.TH TOLUA++ SECTION "December 30, 2004"
+.\" Please adjust this date whenever revising the manpage.
+.\"
+.\" Some roff macros, for reference:
+.\" .nh disable hyphenation
+.\" .hy enable hyphenation
+.\" .ad l left justify
+.\" .ad b justify to both left and right margins
+.\" .nf disable filling
+.\" .fi enable filling
+.\" .br insert line break
+.\" .sp <n> insert n+1 empty lines
+.\" for manpage-specific macros, see man(7)
+.SH NAME
+tolua++ \- program to do something
+.SH SYNOPSIS
+.B tolua++
+.RI [ options ] " files" ...
+.br
+.B bar
+.RI [ options ] " files" ...
+.SH DESCRIPTION
+This manual page documents briefly the
+.B tolua++
+and
+.B bar
+commands.
+.PP
+.\" TeX users may be more comfortable with the \fB<whatever>\fP and
+.\" \fI<whatever>\fP escape sequences to invode bold face and italics,
+.\" respectively.
+\fBtolua++\fP is a program that...
+.SH OPTIONS
+These programs follow the usual GNU command line syntax, with long
+options starting with two dashes (`-').
+A summary of options is included below.
+For a complete description, see the Info files.
+.TP
+.B \-h, \-\-help
+Show summary of options.
+.TP
+.B \-v, \-\-version
+Show version of program.
+.SH SEE ALSO
+.BR bar (1),
+.BR baz (1).
+.br
+The programs are documented fully by
+.IR "The Rise and Fall of a Fooish Bar" ,
+available via the Info system.
+.SH AUTHOR
+tolua++ was written by <upstream author>.
+.PP
+This manual page was written by Ariel Manzur <puntob@gmail.com>,
+for the Debian project (but may be used by others).
156 debian/manpage.sgml.ex
@@ -0,0 +1,156 @@
+<!doctype refentry PUBLIC "-//OASIS//DTD DocBook V4.1//EN" [
+
+<!-- Process this file with docbook-to-man to generate an nroff manual
+ page: `docbook-to-man manpage.sgml > manpage.1'. You may view
+ the manual page with: `docbook-to-man manpage.sgml | nroff -man |
+ less'. A typical entry in a Makefile or Makefile.am is:
+
+manpage.1: manpage.sgml
+ docbook-to-man $< > $@
+
+
+ The docbook-to-man binary is found in the docbook-to-man package.
+ Please remember that if you create the nroff version in one of the
+ debian/rules file targets (such as build), you will need to include
+ docbook-to-man in your Build-Depends control field.
+
+ -->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+ <!ENTITY dhsurname "<surname>SURNAME</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>December 30, 2004</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
+ <!ENTITY dhemail "<email>puntob@gmail.com</email>">
+ <!ENTITY dhusername "Ariel Manzur">
+ <!ENTITY dhucpackage "<refentrytitle>TOLUA++</refentrytitle>">
+ <!ENTITY dhpackage "tolua++">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2003</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>program to do something</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+ <arg><option>--example <replaceable>that</replaceable></option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below. For a complete description, see the
+ <application>Info</application> files.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-v</option>
+ <option>--version</option>
+ </term>
+ <listitem>
+ <para>Show version of program.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>bar (1), baz (1).</para>
+
+ <para>The programs are documented fully by <citetitle>The Rise and
+ Fall of a Fooish Bar</citetitle> available via the
+ <application>Info</application> system.</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
+<!-- Keep this comment at the end of the file
+Local variables:
+mode: sgml
+sgml-omittag:t
+sgml-shorttag:t
+sgml-minimize-attributes:nil
+sgml-always-quote-attributes:t
+sgml-indent-step:2
+sgml-indent-data:t
+sgml-parent-document:nil
+sgml-default-dtd-file:nil
+sgml-exposed-tags:nil
+sgml-local-catalogs:nil
+sgml-local-ecat-files:nil
+End:
+-->
+
+
148 debian/manpage.xml.ex
@@ -0,0 +1,148 @@
+<?xml version='1.0' encoding='ISO-8859-1'?>
+<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
+"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd" [
+
+<!--
+
+Process this file with an XSLT processor: `xsltproc \
+-''-nonet /usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl manpage.dbk'. A manual page
+<package>.<section> will be generated. You may view the
+manual page with: nroff -man <package>.<section> | less'. A
+typical entry in a Makefile or Makefile.am is:
+
+DB2MAN=/usr/share/sgml/docbook/stylesheet/xsl/nwalsh/\
+manpages/docbook.xsl
+XP=xsltproc -''-nonet
+
+manpage.1: manpage.dbk
+ $(XP) $(DB2MAN) $<
+
+The xsltproc binary is found in the xsltproc package. The
+XSL files are in docbook-xsl. Please remember that if you
+create the nroff version in one of the debian/rules file
+targets (such as build), you will need to include xsltproc
+and docbook-xsl in your Build-Depends control field.
+
+-->
+
+ <!-- Fill in your name for FIRSTNAME and SURNAME. -->
+ <!ENTITY dhfirstname "<firstname>FIRSTNAME</firstname>">
+ <!ENTITY dhsurname "<surname>SURNAME</surname>">
+ <!-- Please adjust the date whenever revising the manpage. -->
+ <!ENTITY dhdate "<date>December 30, 2004</date>">
+ <!-- SECTION should be 1-8, maybe w/ subsection other parameters are
+ allowed: see man(7), man(1). -->
+ <!ENTITY dhsection "<manvolnum>SECTION</manvolnum>">
+ <!ENTITY dhemail "<email>puntob@gmail.com</email>">
+ <!ENTITY dhusername "Ariel Manzur">
+ <!ENTITY dhucpackage "<refentrytitle>TOLUA++</refentrytitle>">
+ <!ENTITY dhpackage "tolua++">
+
+ <!ENTITY debian "<productname>Debian</productname>">
+ <!ENTITY gnu "<acronym>GNU</acronym>">
+ <!ENTITY gpl "&gnu; <acronym>GPL</acronym>">
+]>
+
+<refentry>
+ <refentryinfo>
+ <address>
+ &dhemail;
+ </address>
+ <author>
+ &dhfirstname;
+ &dhsurname;
+ </author>
+ <copyright>
+ <year>2003</year>
+ <holder>&dhusername;</holder>
+ </copyright>
+ &dhdate;
+ </refentryinfo>
+ <refmeta>
+ &dhucpackage;
+
+ &dhsection;
+ </refmeta>
+ <refnamediv>
+ <refname>&dhpackage;</refname>
+
+ <refpurpose>program to do something</refpurpose>
+ </refnamediv>
+ <refsynopsisdiv>
+ <cmdsynopsis>
+ <command>&dhpackage;</command>
+
+ <arg><option>-e <replaceable>this</replaceable></option></arg>
+
+ <arg><option>--example <replaceable>that</replaceable></option></arg>
+ </cmdsynopsis>
+ </refsynopsisdiv>
+ <refsect1>
+ <title>DESCRIPTION</title>
+
+ <para>This manual page documents briefly the
+ <command>&dhpackage;</command> and <command>bar</command>
+ commands.</para>
+
+ <para>This manual page was written for the &debian; distribution
+ because the original program does not have a manual page.
+ Instead, it has documentation in the &gnu;
+ <application>Info</application> format; see below.</para>
+
+ <para><command>&dhpackage;</command> is a program that...</para>
+
+ </refsect1>
+ <refsect1>
+ <title>OPTIONS</title>
+
+ <para>These programs follow the usual &gnu; command line syntax,
+ with long options starting with two dashes (`-'). A summary of
+ options is included below. For a complete description, see the
+ <application>Info</application> files.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term><option>-h</option>
+ <option>--help</option>
+ </term>
+ <listitem>
+ <para>Show summary of options.</para>
+ </listitem>
+ </varlistentry>
+ <varlistentry>
+ <term><option>-v</option>
+ <option>--version</option>
+ </term>
+ <listitem>
+ <para>Show version of program.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+ </refsect1>
+ <refsect1>
+ <title>SEE ALSO</title>
+
+ <para>bar (1), baz (1).</para>
+
+ <para>The programs are documented fully by <citetitle>The Rise and
+ Fall of a Fooish Bar</citetitle> available via the
+ <application>Info</application> system.</para>
+ </refsect1>
+ <refsect1>
+ <title>AUTHOR</title>
+
+ <para>This manual page was written by &dhusername; &dhemail; for
+ the &debian; system (but may be used by others). Permission is
+ granted to copy, distribute and/or modify this document under
+ the terms of the &gnu; General Public License, Version 2 any
+ later version published by the Free Software Foundation.
+ </para>
+ <para>
+ On Debian systems, the complete text of the GNU General Public
+ License can be found in /usr/share/common-licenses/GPL.
+ </para>
+
+ </refsect1>
+</refentry>
+
2 debian/menu.ex
@@ -0,0 +1,2 @@
+?package(tolua++):needs="X11|text|vc|wm" section="Apps/see-menu-manual"\
+ title="tolua++" command="/usr/bin/tolua++"
42 debian/postinst.ex
@@ -0,0 +1,42 @@
+#! /bin/sh
+# postinst script for tolua++
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postinst> `configure' <most-recently-configured-version>
+# * <old-postinst> `abort-upgrade' <new version>
+# * <conflictor's-postinst> `abort-remove' `in-favour' <package>
+# <new-version>
+# * <deconfigured's-postinst> `abort-deconfigure' `in-favour'
+# <failed-install-package> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+#
+
+case "$1" in
+ configure)
+
+ ;;
+
+ abort-upgrade|abort-remove|abort-deconfigure)
+
+ ;;
+
+ *)
+ echo "postinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
38 debian/postrm.ex
@@ -0,0 +1,38 @@
+#! /bin/sh
+# postrm script for tolua++
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <postrm> `remove'
+# * <postrm> `purge'
+# * <old-postrm> `upgrade' <new-version>
+# * <new-postrm> `failed-upgrade' <old-version>
+# * <new-postrm> `abort-install'
+# * <new-postrm> `abort-install' <old-version>
+# * <new-postrm> `abort-upgrade' <old-version>
+# * <disappearer's-postrm> `disappear' <r>overwrit>r> <new-version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ purge|remove|upgrade|failed-upgrade|abort-install|abort-upgrade|disappear)
+
+
+ ;;
+
+ *)
+ echo "postrm called with unknown argument \`$1'" >&2
+ exit 1
+
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
44 debian/preinst.ex
@@ -0,0 +1,44 @@
+#! /bin/sh
+# preinst script for tolua++
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <new-preinst> `install'
+# * <new-preinst> `install' <old-version>
+# * <new-preinst> `upgrade' <old-version>
+# * <old-preinst> `abort-upgrade' <new-version>
+#
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ install|upgrade)
+# if [ "$1" = "upgrade" ]
+# then
+# start-stop-daemon --stop --quiet --oknodo \
+# --pidfile /var/run/tolua++.pid \
+# --exec /usr/sbin/tolua++ 2>/dev/null || true
+# fi
+ ;;
+
+ abort-upgrade)
+ ;;
+
+ *)
+ echo "preinst called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
39 debian/prerm.ex
@@ -0,0 +1,39 @@
+#! /bin/sh
+# prerm script for tolua++
+#
+# see: dh_installdeb(1)
+
+set -e
+
+# summary of how this script can be called:
+# * <prerm> `remove'
+# * <old-prerm> `upgrade' <new-version>
+# * <new-prerm> `failed-upgrade' <old-version>
+# * <conflictor's-prerm> `remove' `in-favour' <package> <new-version>
+# * <deconfigured's-prerm> `deconfigure' `in-favour'
+# <package-being-installed> <version> `removing'
+# <conflicting-package> <version>
+# for details, see http://www.debian.org/doc/debian-policy/ or
+# the debian-policy package
+
+
+case "$1" in
+ remove|upgrade|deconfigure)
+# install-info --quiet --remove /usr/info/tolua++.info.gz
+ ;;
+ failed-upgrade)
+ ;;
+ *)
+ echo "prerm called with unknown argument \`$1'" >&2
+ exit 1
+ ;;
+esac
+
+# dh_installdeb will replace this with shell code automatically
+# generated by other debhelper scripts.
+
+#DEBHELPER#
+
+exit 0
+
+
102 debian/rules
@@ -0,0 +1,102 @@
+#!/usr/bin/make -f
+# -*- makefile -*-
+# Sample debian/rules that uses debhelper.
+# This file was originally written by Joey Hess and Craig Small.
+# As a special exception, when this file is copied by dh-make into a
+# dh-make output file, you may use that output file without restriction.
+# This special exception was added by Craig Small in version 0.37 of dh-make.
+
+# Uncomment this to turn on verbose mode.
+#export DH_VERBOSE=1
+
+
+
+
+CFLAGS = -Wall -g
+
+ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
+ CFLAGS += -O0
+else
+ CFLAGS += -O2
+endif
+
+configure: configure-stamp
+configure-stamp:
+ dh_testdir
+ # Add here commands to configure the package.
+ scons build_dev=0 prefix=$(CURDIR)/debian/tolua++/usr configure
+
+ touch configure-stamp
+
+
+build: build-stamp
+
+build-stamp: configure-stamp
+ dh_testdir
+
+ # Add here commands to compile the package.
+ #$(MAKE)
+ scons all
+ #docbook-to-man debian/tolua++.sgml > tolua++.1
+
+ touch build-stamp
+
+clean:
+ dh_testdir
+ dh_testroot
+ rm -f build-stamp configure-stamp
+
+ # Add here commands to clean up after the build process.
+ #-$(MAKE) clean
+ scons -c build_dev=0 all configure
+
+ dh_clean
+
+install: build
+ dh_testdir
+ dh_testroot
+ dh_clean -k
+ dh_installdirs
+
+ # Add here commands to install the package into debian/tolua++.
+ #$(MAKE) install DESTDIR=$(CURDIR)/debian/tolua++
+ scons install
+
+
+# Build architecture-independent files here.
+binary-indep: build install
+# We have nothing to do by default.
+
+# Build architecture-dependent files here.
+binary-arch: build install
+ dh_testdir
+ dh_testroot
+ dh_installchangelogs
+ dh_installdocs
+ dh_installexamples
+# dh_install
+# dh_installmenu
+# dh_installdebconf
+# dh_installlogrotate
+# dh_installemacsen
+# dh_installpam
+# dh_installmime
+# dh_installinit
+# dh_installcron
+# dh_installinfo
+ dh_installman
+ dh_link
+ dh_strip
+ dh_compress
+ dh_fixperms
+# dh_perl
+# dh_python
+# dh_makeshlibs
+ dh_installdeb
+ dh_shlibdeps
+ dh_gencontrol
+ dh_md5sums
+ dh_builddeb
+
+binary: binary-indep binary-arch
+.PHONY: build clean binary-indep binary-arch binary install configure
10 debian/tolua++-default.ex
@@ -0,0 +1,10 @@
+# Defaults for tolua++ initscript
+# sourced by /etc/init.d/tolua++
+# installed at /etc/default/tolua++ by the maintainer scripts
+
+#
+# This is a POSIX shell fragment
+#
+
+# Additional options that are passed to the Daemon.
+DAEMON_OPTS=""
22 debian/tolua++.doc-base.EX
@@ -0,0 +1,22 @@
+Document: tolua++
+Title: Debian tolua++ Manual
+Author: <insert document author here>
+Abstract: This manual describes what tolua++ is
+ and how it can be used to
+ manage online manuals on Debian systems.
+Section: unknown
+
+Format: debiandoc-sgml
+Files: /usr/share/doc/tolua++/tolua++.sgml.gz
+
+Format: postscript
+Files: /usr/share/doc/tolua++/tolua++.ps.gz
+
+Format: text
+Files: /usr/share/doc/tolua++/tolua++.text.gz
+
+Format: HTML
+Index: /usr/share/doc/tolua++/html/index.html
+Files: /usr/share/doc/tolua++/html/*.html
+
+
6 debian/watch.ex
@@ -0,0 +1,6 @@
+# Example watch control file for uscan
+# Rename this file to "watch" and then you can run the "uscan" command
+# to check for upstream updates and more.
+# Site Directory Pattern Version Script
+version=2
+sunsite.unc.edu /pub/Linux/Incoming tolua++-(.*)\.tar\.gz debian uupdate
130 dist.cmake
@@ -0,0 +1,130 @@
+# LuaDist CMake utility library.
+# Provides variables and utility functions common to LuaDist CMake builds.
+#
+# Copyright (C) 2007-2010 LuaDist.
+# by David Manura, Peter Drahos
+# Redistribution and use of this file is allowed according to the terms of the MIT license.
+# For details see the COPYRIGHT file distributed with LuaDist.
+# Please note that the package source code is licensed under its own license.
+
+# Few convinence settings
+SET (CMAKE_ALLOW_LOOSE_LOOP_CONSTRUCTS true)
+SET (CMAKE_MODULE_PATH ${CMAKE_CURRENT_SOURCE_DIR} ${CMAKE_MODULE_PATH})
+
+# Where to install module parts:
+set(INSTALL_BIN bin CACHE PATH "Where to install binaries to.")
+set(INSTALL_LIB lib CACHE PATH "Where to install libraries to.")
+set(INSTALL_INC include CACHE PATH "Where to install headers to.")
+set(INSTALL_ETC etc CACHE PATH "Where to store configuration files")
+set(INSTALL_LMOD share/lua/lmod CACHE PATH "Directory to install Lua modules.")
+set(INSTALL_CMOD share/lua/cmod CACHE PATH "Directory to install Lua binary modules.")
+set(INSTALL_DATA share/${PROJECT_NAME} CACHE PATH "Directory the package can store documentation, tests or other data in.")
+set(INSTALL_DOC ${INSTALL_DATA}/doc CACHE PATH "Recommended directory to install documentation into.")
+set(INSTALL_EXAMPLE ${INSTALL_DATA}/example CACHE PATH "Recommended directory to install examples into.")
+set(INSTALL_TEST ${INSTALL_DATA}/test CACHE PATH "Recommended directory to install tests into.")
+set(INSTALL_FOO ${INSTALL_DATA}/etc CACHE PATH "Where to install additional files")
+
+
+# In MSVC, prevent warnings that can occur when using standard libraries.
+if(MSVC)
+ add_definitions(-D_CRT_SECURE_NO_WARNINGS)
+endif(MSVC)
+
+# Adds Lua shared library module target `_target`.
+# Additional sources to build the module are listed after `_target`.
+macro(add_lua_module _target)
+ find_package(Lua51 REQUIRED)
+ include_directories(${LUA_INCLUDE_DIR}) #2DO: somehow apply only to _target?
+
+ add_library(${_target} MODULE ${ARGN})
+ set_target_properties(${_target} PROPERTIES PREFIX "")
+ target_link_libraries(${_target} ${LUA_LIBRARY})
+
+ IF(WIN32)
+ set_target_properties(${_target} PROPERTIES LINK_FLAGS "-Wl,--enable-auto-import")
+ ENDIF()
+
+endmacro(add_lua_module)
+
+# Runs Lua script `_testfile` under CTest tester.
+# Optional argument `_testcurrentdir` is current working directory to run test under
+# (defaults to ${CMAKE_CURRENT_BINARY_DIR}).
+# Both paths, if relative, are relative to ${CMAKE_CURRENT_SOURCE_DIR}.
+# Under LuaDist, set test=true in config.lua to enable testing.
+macro(add_lua_test _testfile)
+ include(CTest)
+ if(BUILD_TESTING)
+ find_program(LUA NAMES lua lua.bat)
+ get_filename_component(TESTFILEABS ${_testfile} ABSOLUTE)
+ get_filename_component(TESTFILENAME ${_testfile} NAME)
+ get_filename_component(TESTFILEBASE ${_testfile} NAME_WE)
+
+ # Write wrapper script.
+ set(TESTWRAPPER ${CMAKE_CURRENT_BINARY_DIR}/${TESTFILENAME})
+ set(TESTWRAPPERSOURCE
+"package.path = '${CMAKE_CURRENT_BINARY_DIR}/?.lua\;${CMAKE_CURRENT_SOURCE_DIR}/?.lua\;' .. package.path
+package.cpath = '${CMAKE_CURRENT_BINARY_DIR}/?.so\;${CMAKE_CURRENT_BINARY_DIR}/?.dll\;' .. package.cpath
+return dofile '${TESTFILEABS}'
+" )
+ if(${ARGC} GREATER 1)
+ set(_testcurrentdir ${ARGV1})
+ get_filename_component(TESTCURRENTDIRABS ${_testcurrentdir} ABSOLUTE)
+ set(TESTWRAPPERSOURCE
+"require 'lfs'
+lfs.chdir('${TESTCURRENTDIRABS}')
+${TESTWRAPPERSOURCE}")
+ endif()
+ FILE(WRITE ${TESTWRAPPER} ${TESTWRAPPERSOURCE})
+
+ add_test(${TESTFILEBASE} ${LUA} ${TESTWRAPPER})
+ endif(BUILD_TESTING)
+
+ # see also http://gdcm.svn.sourceforge.net/viewvc/gdcm/Sandbox/CMakeModules/UsePythonTest.cmake
+endmacro(add_lua_test)
+
+# Converts Lua source file `_source` to binary string embedded in C source
+# file `_target`. Optionally compiles Lua source to byte code (not available
+# under LuaJIT2, which doesn't have a bytecode loader). Additionally, Lua
+# versions of bin2c [1] and luac [2] may be passed respectively as additional
+# arguments.
+#
+# [1] http://lua-users.org/wiki/BinToCee
+# [2] http://lua-users.org/wiki/LuaCompilerInLua
+function(add_lua_bin2c _target _source)
+ find_program(LUA NAMES lua lua.bat)
+ execute_process(COMMAND ${LUA} -e "string.dump(function()end)" RESULT_VARIABLE _LUA_DUMP_RESULT ERROR_QUIET)
+ if (NOT ${_LUA_DUMP_RESULT})
+ SET(HAVE_LUA_DUMP true)
+ endif()
+ message("-- string.dump=${HAVE_LUA_DUMP}")
+
+ if (ARGV2)
+ get_filename_component(BIN2C ${ARGV2} ABSOLUTE)
+ set(BIN2C ${LUA} ${BIN2C})
+ else()
+ find_program(BIN2C NAMES bin2c bin2c.bat)
+ endif()
+ if (HAVE_LUA_DUMP)
+ if (ARGV3)
+ get_filename_component(LUAC ${ARGV3} ABSOLUTE)
+ set(LUAC ${LUA} ${LUAC})
+ else()
+ find_program(LUAC NAMES luac luac.bat)
+ endif()
+ endif (HAVE_LUA_DUMP)
+ message("-- bin2c=${BIN2C}")
+ message("-- luac=${LUAC}")
+
+ get_filename_component(SOURCEABS ${_source} ABSOLUTE)
+ if (HAVE_LUA_DUMP)
+ get_filename_component(SOURCEBASE ${_source} NAME_WE)
+ add_custom_command(
+ OUTPUT ${_target} DEPENDS ${_source}
+ COMMAND ${LUAC} -o ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo ${SOURCEABS}
+ COMMAND ${BIN2C} ${CMAKE_CURRENT_BINARY_DIR}/${SOURCEBASE}.lo ">${_target}" )
+ else()
+ add_custom_command(
+ OUTPUT ${_target} DEPENDS ${SOURCEABS}
+ COMMAND ${BIN2C} ${_source} ">${_target}" )
+ endif()
+endfunction(add_lua_bin2c)
14 dist.info
@@ -0,0 +1,14 @@
+--- This file is part of LuaDist project
+
+name = "toluapp"
+version = "1.0.93"
+
+desc = "tolua++ is an extension of toLua, a tool to integrate C/Cpp code with Lua."
+author = "Waldemar Celes, Ariel Manzur"
+license = "as-is"
+url = "http://www.codenix.com/~tolua/"
+maintainer = "Peter Kapec"
+
+depends = {
+ "lua ~> 5.1"
+}
226 doc/index.html
@@ -0,0 +1,226 @@
+<head>
+<title>toLua++ - binding c/c++ code to lua</title>
+</head>
+
+<body bgcolor="white">
+
+<h1>
+<img src="toluapp.gif">tolua++ - Home</h1>
+<p>
+
+<a href="#news">news</a> -
+<a href="#download">download</a> - <a href="#documentation">documentation</a> - <a href="#installing">installing</a> -
+<a href="mailto:tolua@codenix.com">contact</a> - <a href="lua_qt/">lua_qt</a> - <a href="http://www.codenix.com">Codenix</a>
+<br>
+
+<hr>
+
+<b>tolua++</b> is an extended version of <a href="http://www.tecgraf.puc-rio.br/~celes/tolua/">tolua</a>, a tool to integrate
+C/C++ code with <A HREF="http://www.tecgraf.puc-rio.br/lua">Lua</A>. <b>tolua++</b>
+includes new features oriented to c++ such as:
+<p>
+
+<ul>
+<li> Support for <b>std::string</b> as a <a href="#basics">basic type</a> (this can be turned off by a command line option).</li>
+<li> Support for <a href="#templates">class templates</a></li>
+</ul>
+<p>
+
+As well as other features and bugfixes.
+
+<hr>
+<a name="news"></a>
+<h3>News:</h3>
+<p>
+
+<b>15/02/09</b>: Version <b><a href="tolua++-1.0.93.tar.bz2">1.0.93</a></b> released. Some bugfixes and new features:
+<p>
+<ul>
+<li> Build process bootstraps.
+<li> Added hooks to handle custom types.
+<li> Added hooks to handle exceptions.
+<li> Fixed issues with newer GCC compilers.
+<li> Changed to MIT license. See <a href="COPYRIGHT">COPYRIGHT</a> file for details.
+</ul>
+
+<b>27/04/06</b>: Version <b><a href="tolua++-1.0.92.tar.bz2">1.0.92</a></b> released. Some bugfixes and new features:
+<p>
+<ul>
+<li> Fixed garbage collector bug for C objects.
+<li> Fixed problems with C compilers (including microsoft's)
+<li> Added a .proj file to build with Visual Studio 7 (contributed by Makoto Hamanaka).
+<li> New command line option: <tt>-E</tt> to define extra values
+<li> New command line option: <tt>-t</tt> to associate C++ types with their lua names (see the <a href="tolua++.html">manual</a> for details)
+</ul>
+
+<b>25/02/06</b>: Version <b><a href="tolua++-1.0.91.tar.bz2">1.0.91</a></b> released. This version contains a small garbage collection bugfix for 1.0.90 (thanks to Rolf E. Thorup for the report), everyone should upgrade.
+<p>
+
+<b>18/02/06</b>: Version <b><a href="tolua++-1.0.90.tar.bz2">1.0.90</a></b> released. Some bugfixes and new features:
+<p>
+<ul>
+<li> <b>lua 5.1</b> support (see <tt>README-5.1</tt>)
+<li> Support for casting operators (for example <tt>operator const char();</tt>)
+<li> New utility functions, <tt>tolua.setpeer</tt> and <tt>tolua.getpeer</tt>, for easier (and faster) inheritance from C/C++ objects (only for lua 5.1)
+<li> Some small API changes (see the <a href="tolua++.html#compatibility">compatibility section</a> of the manual)
+</ul>
+<p>
+
+<b>18/10/05</b>: Version <b><a href="tolua++_1.0.7-1.tar.gz">1.0.7</a></b> released. Some bugfixes and new features:
+<p>
+<ul>
+<li> New command line option: -C, to disable the cleanup of included lua code (for easier debugging).
+<li> Merged <a href="http://lua-users.org/lists/lua-l/2005-09/msg00227.html">Mildred's</a> patch: embedded lua chunks have better names, code on package initializer function is nested.
+<li> New hook: <tt>parser_hook</tt>, allows modifications to the behavior of the main parser.
+<li> Objects can be private (or protected). This doesn't affect the normal usage (everything is public by default), but it's useful to declare types that don't export any code, but serve
+as 'support' for other declarations.
+<li> Misc bugfixes.
+</ul>
+<p>
+
+<b>01/9/05</b>: Version <b><a href="tolua++_1.0.6-1.tar.gz">1.0.6</a></b> released. Several bugfixes and new features:
+<p>
+<ul>
+<li> Classes can have properties, using the 'tolua_property' keyboard. Property types are customizable.
+<li> Added a command line flag -D, to disable automatic generation of destructors for all classes with constructors (for compatibility with tolua5)
+<li> Classes with protected or private destructors can be tagged individually using the "TOLUA_PROTECTED_DESTRUCTOR" macro.
+<li> Added utility function "tolua.inherit", to allow a lua table to "inherit" from an instance of a C/C++ class
+<li> Fixed class constructor bug (it is now possible to use 'ClassName()' to create a lua-owned instance of the class without problems)
+<li> Misc bugfixes.
+</ul>
+<p>
+
+<b>10/4/05</b>: Version <b><a href="tolua++_1.0.5-1.tar.gz">1.0.5</a></b> released. This version contains some minor bugfixes and a new feature,
+the <b>tolua_outside</b> keyword, used to specify regular functions as methods of classes or structs. This release is also paired with <a href="lua_qt/">lua_qt</a>
+version 0.0.1a.
+<p>
+
+<b>1/2/05</b>: version <b><a href="tolua++-1.0.4.tar.bz2">1.0.4</a></b> released. This version contains some bugfixes and new features:
+<p>
+<ul>
+<li> Ability to customize tolua++'s behaviour to add functionality.
+<li> Basic support for multiple inheritance.
+<li> Several bugfixes on the parser.
+<li> <a href="tolua++_1.0.4-3_i386.deb">Debian package</a> available for download.
+</ul>
+<p>
+
+Most of the changes on this version were added for <a href="lua_qt/">lua_qt</a>, a package
+to bind the <a href="http://www.trolltech.com/products/qt/index.html">Qt</a> toolkit to lua.
+<p>
+
+<b>20/9/04</b>: version <b><a href="tolua++-1.0.3.tar.bz2">1.0.3</a></b> released. This version contains major bugfixes:
+<p>
+<ul>
+<li> Fixed bugs in object tracking (the 'memory address' bug; there's still some work left, but people should be able to use <tt>union</tt>s with no problems)</li>
+<li> Fixed parser bugs, functions with template parameters should work, also functions with default parameters that call constructos and with commas on them should work.</li>
+<li> Added a <tt>__call</tt> method for class names, to replace <tt>new_local</tt> to create instances owned by lua.
+<li> Fixed other minor bugs.</li>
+<li> Removed the link to win32 binaries, since I aparently don't know what the hell I'm doing with a microsoft compiler ;-)</li>
+</ul>
+<p>
+
+Everyone should upgrade.
+<p>
+
+<b>23/10/03</b>: version <b><a href="tolua++-1.0.2.tar.bz2">1.0.2</a></b> released. This version contains major bugfixes:
+<p>
+<ul>
+<li> Fixed bugs in gargabe collection (thanks to <b>Christian Vogler</b> for doing all the work :-)</li>
+<li> <tt>namespace</tt>s and nested types are now fully supported.</li>
+<li> Fixed other minor bugs.</li>
+</ul>
+<p>
+
+Everyone should upgrade.
+
+<hr>
+
+<a name="download"></a>
+<h3>Downloading</B></H3>
+
+The latest development version of the code is available through SVN from tolua++'s BerliOS project page. You can checkout using:
+
+svn checkout svn://svn.berlios.de/toluapp/trunk
+
+The <B>tolua++</B> source is freely available by http.
+The software provided under the terms of the MIT license. See the <a href="COPYRIGHT">COPYRIGHT</a> file distributed
+with the source.
+<p>
+
+Current version is <b><a href="tolua++-1.0.93.tar.bz2">1.0.93</a></b>, older versions:
+<p>
+<li> <a href="tolua++-1.0.93.tar.bz2">tolua++-1.0.93.tar.bz2</a>
+<li> <a href="tolua++-1.0.92.tar.bz2">tolua++-1.0.92.tar.bz2</a>
+<li> <a href="tolua++-1.0.91.tar.bz2">tolua++-1.0.91.tar.bz2</a>
+<li> <a href="tolua++_1.0.7-1.tar.gz">tolua++_1.0.7-1.tar.gz</a> [<a href="tolua++_1.0.7-1_i386.deb">deb</a>]
+<li> <a href="tolua++_1.0.6-1.tar.gz">tolua++_1.0.6-1.tar.gz</a> [<a href="tolua++_1.0.6-1_i386.deb">deb</a>]
+<li> <a href="tolua++_1.0.5-1.tar.gz">tolua++_1.0.5-1.tar.gz</a> [<a href="tolua++_1.0.5-1_i386.deb">deb</a>]
+<li> <a href="tolua++-1.0.4.tar.bz2">tolua++-1.0.4.tar.bz2</a> [<a href="tolua++_1.0.4-3_i386.deb">deb</a>]
+<li> <a href="tolua++-1.0.3.tar.bz2">tolua++-1.0.3.tar.bz2</a>
+<li> <a href="tolua++-1.0.2.tar.bz2">tolua++-1.0.2.tar.bz2</a>
+<li> <a href="tolua++-1.0.tar.bz2">tolua++-1.0.tar.bz2</a>
+
+<hr>
+
+<a name="documentation"></a>
+<h3>Documentation</h3>
+<p>
+You can find the manual <a href="tolua++.html">here</a> or under the doc/ directory
+on the distribution.
+<p>
+
+I'll also be adding interesting addons/examples to <a href="http://lua-users.org/wiki/ArielManzur">my page</a>
+on the <a href="http://lua-users.org/">lua-users wiki</a>.
+
+<hr>
+
+<a name="installing"></a>
+<h3>Instalation</h3>
+<p>
+
+tolua++ uses <a href="http://www.scons.org">SCons</a> to build. SCons is based on
+python, you can get a stand-alone version on <a href="http://www.scons.org">
+their website</a>. After you have SCons, follow this simple instructions:
+<p>
+
+<li> Type '<b>scons all</b>' to compile.</li>
+<li> Type '<b>scons install</b>'. The default install prefix is /usr/local, so if you are
+on a POSIX system, it should work. On other systems, you can change it with the
+'<b>prefix</b>' option on command line.
+<p>
+
+<b>scons prefix=/usr install</b>
+<p>
+<i>or on windows</i>
+<p>
+<b>scons "prefix=c:\Program Files\Visual C" install</b>
+<p>
+
+Use <b>scons -h</b> to see a list of available command line options.
+
+<p>
+The files you need (in case you want to do a <b>manual install</b>) are:
+<ul>
+ <li> bin/tolua++[.exe] - the main binary
+ <li> include/tolua++.h - the header file
+ <li> lib/libtolua++.a <i>or</i> lib/tolua++.lib - the library
+</ul>
+
+<li> See INSTALL for instructions on how to install without SCons. There are also instructions on how
+to build without scons at the <a href="http://lua-users.org/wiki/CompilingToluappWithoutScons">lua-users wiki</a>
+(if you know the author of this, <a href="mailto:tolua@codenix.com">contact me</a>)</li>
+
+<li> For <b>lua 5.1</b>, see <tt>README-5.1</tt>
+
+<hr>
+
+<b>tolua++</b> and this website are maintained by Ariel Manzur.<br>
+<a href="http://www.codenix.com/index.php?section=contact">Contact us</a> with any
+bugs, fixes, suggestions, or questions about this package.
+
+<hr>
+
+
+</body>
+
1,956 doc/tolua++.html
@@ -0,0 +1,1956 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<HTML>
+<HEAD>
+ <META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
+ <META NAME="GENERATOR" CONTENT="Textpad">
+ <META NAME="Author" CONTENT="Waldemar Celes, Ariel Manzur">
+ <TITLE>tolua++ reference manual</TITLE>
+</HEAD>
+<BODY TEXT="#000000" BGCOLOR="#FFFFFF" LINK="#0000EE" VLINK="#551A8B" ALINK="#FF0000">
+
+<H1>
+<IMG SRC="toluapp.gif">tolua++ - Reference Manual</I></H1>
+by Waldemar Celes, Ariel Manzur.
+
+<H1>
+
+</h1>
+
+<HR ALIGN=LEFT SIZE=5 WIDTH="100%">
+
+<b>tolua++</b> is an extended version of <a href="http://www.tecgraf.puc-rio.br/~celes/tolua/">tolua</a>, a tool to integrate
+C/C++ code with <A HREF="http://www.tecgraf.puc-rio.br/lua">Lua</A>. <b>tolua++</b>
+includes new features oriented to c++ such as:
+<p>
+
+<ul>
+<li> Support for <b>std::string</b> as a <a href="#basics">basic type</a> (this can be turned off by a command line option).</li>
+<li> Support for <a href="#templates">class templates</a></li>
+</ul>
+<p>
+
+As well as other features and bugfixes.
+<p>
+
+
+<B>tolua</B> is a tool that greatly simplifies the integration of C/C++
+code with <A HREF="http://www.tecgraf.puc-rio.br/lua">Lua</A>. Based on
+a <I>cleaned</I> <I>header file</I> (or extracts from real header files),
+<B>tolua</B> automatically generates
+the binding code to access C/C++ features from Lua. Using Lua API and tag
+method facilities, <B>tolua </B>maps C/C++ constants, external variables,
+functions, classes, and methods to Lua.
+<P>This manual is for <B>tolua++</B> version 1.0 and is implemented upon Lua
+5.0 and based on <b>tolua 5.0</b>. See <A HREF="#changes-v30">Compatibility</A>
+for details on switching from older versions.
+<P>The sections below describe how to use <B>tolua</B>. Please <A HREF="mailto:tolua@codenix.com">contact us</A>
+with bug reports, suggestions, and comments.
+<UL>
+<LI>
+Shortcuts:</LI>
+
+<UL>
+<LI>
+<A HREF="#introduction">How <B>tolua</B> works</A></LI>
+
+<LI>
+<A HREF="#using">How to use <B>tolua</B></A></LI>
+
+<LI>
+<A HREF="#basics">Basic Concepts</A></LI>
+
+<LI>
+<A HREF="#constants">Binding constants</A></LI>
+
+<LI>
+<A HREF="#variables">Binding external variables</A></LI>
+
+<LI>
+<A HREF="#functions">Binding functions</A></LI>
+
+<LI>
+<A HREF="#structs">Binding struct fields</A></LI>
+
+<LI>
+<A HREF="#classes">Binding classes and methods</A></LI>
+
+<li>
+<a href="#propeties">Binding properties</a></li>
+
+<li>
+<a href="#templates">Class Templates</a></li>
+
+<LI>
+<A HREF="#modules">Module definition</A></LI>
+
+<LI>
+<A HREF="#renaming">Renaming constants, variables and functions</A></LI>
+
+<LI>
+<A HREF="#additional">Storing additional fields</A></LI>
+
+<li>
+<a href="#additional_features">Additional features</a></li>
+
+<LI>
+<A HREF="#utilities">Exported utility functions</A></LI>
+
+<LI>
+<A HREF="#embedded">Embedded Lua code</A></LI>
+
+<LI>
+<a HREF="#customizing">Customizing tolua++</a></li>
+
+<li>
+<a href="#compatibility">Compatibility with older versions</a></li>
+
+<li>
+<A HREF="#changes-v30">Changes since v3 *</A></li>
+
+<LI>
+<A HREF="#changes-v2">Changes since v2.*</A></LI>
+
+<LI>
+<A HREF="#changes-v1">Changes since v1.*</A></LI>
+
+<LI>
+<A HREF="#credits">Credits</A></LI>
+
+<LI>
+<A HREF="#availability">Availability</A></LI>
+</UL>
+</UL>
+
+<HR WIDTH="100%">
+<H3>
+<A NAME="introduction"></A>How tolua works</H3>
+To use <B>tolua</B>, we create a <I>package file</I>, a C/C++ cleaned header
+file<I>,</I> listing the constants, variables, functions, classes, and
+methods we want to export to the Lua environment. Then <B>tolua</B> parses
+this file and creates a C/C++ file that automatically binds the C/C++ code
+to Lua. If we link the created file with our application, the specified
+C/C++ code can be accessed from Lua.<br>
+A package file can also include regular header files, other package files,
+or lua files.<br>
+<P>Let's start with some examples. If we specify as input the following
+C-like header file to <B>tolua</B>:
+<PRE>#define FALSE 0
+#define TRUE 1
+
+enum {&nbsp;
+&nbsp;POINT = 100,&nbsp;
+&nbsp;LINE,&nbsp;
+&nbsp;POLYGON
+}</PRE>
+
+<PRE>Object* createObejct (int type);
+void drawObject (Object* obj, double red, double green, double blue);
+int isSelected (Object* obj);</PRE>
+A C file that binds such a code to Lua is automatically generated. Therefore,
+in Lua code, we can access the C code, writing, for instance:
+<PRE>...
+myLine = createObject(LINE)
+...
+if isSelected(myLine) == TRUE then
+&nbsp; drawObject(myLine, 1.0, 0.0, 0.0);
+else
+&nbsp; drawObject(myLine, 1.0, 1.0, 1.0);
+end
+...</PRE>
+Also, consider a C++-like header file:
+<PRE>#define FALSE 0
+#define TRUE 1</PRE>
+
+<PRE>class Shape
+{
+&nbsp; void draw (void);
+&nbsp; void draw (double red, double green, double blue);
+&nbsp; int isSelected (void);
+};</PRE>
+
+<PRE>class Line : public Shape
+{
+&nbsp;Line (double x1, double y1, double x2, double y2);
+&nbsp;~Line (void);
+};</PRE>
+If this file is used as input to <B>tolua</B>, a C++ file is automatically
+generated proving access to such a code from Lua. Therefore, it would be
+valid to write Lua statements like:
+<PRE>...
+myLine = Line:new (0,0,1,1)
+...
+if myLine:isSelected() == TRUE then
+&nbsp;myLine:draw(1.0,0.0,0.0)
+else
+&nbsp;myLine:draw()
+end
+...
+myLine:delete()
+...</PRE>
+The package file (usually with extension <TT>.pkg</TT>) passed to <B>tolua</B>
+is not the real C/C++ header file, but a <I>cleaned </I>version of it.
+<B>tolua</B>
+does not implement a complete parse to interpret C/C++ code, but it understands
+a few declarations that are used to describe the features that are to be
+exported to Lua. Regular header files can be included into packages files; <b>tolua</b>
+will extract the code specified by the user to parse from the header (see <a href="#basics">Basic Concepts</a>).
+<H3>
+<A NAME="using"></A>How to use toLua</H3>
+<B>tolua </B>is composed by two pieces of code: an executable and a library.
+The executable represents the parser that reads a package file and output
+a C/C++ code that implements the binding to access the C/C++ features from
+Lua. If the package file is a C++ like code (i.e., includes class definitions),
+a C++ code is generated. If the cleaned header file is a C like code (i.e.,
+without classes), a C code is generated. <B>tolua</B> accepts a set of
+options. Running <TT>"tolua -h"</TT> displays the current accepted options.
+For instance, to parse a file called <TT>myfile.pkg
+</TT>generating the
+binding code in <TT>myfile.c</TT>, we do:
+<P><TT>tolua -o myfile.c myfile.pkg</TT>
+<P>The generated code must be compiled and linked with the application
+to provide the desired access from Lua. Each parsed file represents a package
+being exported to Lua. By default, the package name is the input file root
+name (<TT>myfile </TT>in the example). The user can specify a different
+name for the package:
+<P><TT>tolua -n pkgname -o myfile.c myfile.pkg</TT>
+<P>The package should also be explicitly initialized. To initialize the
+package from our C/C++ code, we must declare and call the initialization
+function. The initialization function is defined as
+<P><TT>int tolua_<I>pkgname</I>_open (lua_State*);</TT>
+<P>where <I><TT>pkgname </TT></I>represents the name of the package being
+bound. If we are using C++, we can opt for automatic initialization:
+<P><TT>tolua -a -n pkgname -o myfile.c myfile.pkg</TT>
+<P>In that case, the initialization function is automatically called. However,
+if we are planning to use multiple Lua states, automatic initialization
+does not work, because the order static variables are initialized in C++
+is not defined.
+<!--
+<P>The current <B>tolua</B> version also exports a closing function, which
+can be called to unbind the package.
+<P><TT>void tolua_<I>pkgname</I>_close (void);</TT>
+-->
+<P>Optionally, the prototype of the <TT>open</TT> function
+can be outputted to a header file, which name is given by the <TT>-H</TT>
+option.
+<P>The binding code generated by <B>tolua </B>uses a set of functions defined
+in the <B>tolua </B>library. Thus, this library also has to be linked with
+the application. The file <TT>tolua.h</TT> is also necessary to compile
+the generated code.
+<P>An application can use tolua object oriented framework (see <A HREF="#utilities">exported
+utility functions</A>) without binding any package. In that case, the application
+must call <B>tolua </B>initialization function (this function is called
+by any package file initialization function):
+<P><TT>int tolua_open (void);</TT>
+<!--
+<P>If multiple Lua states are to be used, after setting a Lua state, we
+need to call a function to restore <B>tolua </B>internal state:
+<P><TT>void tolua_restorestate (void);</TT>
+-->
+<H3>
+<A NAME="basics"></A>Basic Concepts</H3>
+The first step in using <B>tolua</B> is to create the package file. Starting
+with the real header files, we clean them by declaring the features we
+want to access from Lua in a format that <B>tolua</B> can understand. The
+format <B>tolua</B> understands is simple C/C++ declarations as described
+below.