Details

- LUAMOD_API defined as 'extern "C"' in C++.
- "ANSI C" is in fact "ISO C" (comments)
- Removed option -std from makefile in testes/libs. (Easier to change
  to C++ for tests).
diff --git a/lapi.c b/lapi.c
index 55e371d..27fa524 100644
--- a/lapi.c
+++ b/lapi.c
@@ -484,7 +484,7 @@
 
 /*
 ** Returns a pointer to the internal representation of an object.
-** Note that ANSI C does not allow the conversion of a pointer to
+** Note that ISO C does not allow the conversion of a pointer to
 ** function to a 'void*', so the conversion here goes through
 ** a 'size_t'. (As the returned pointer is only informative, this
 ** conversion should not be a problem.)
diff --git a/lmathlib.c b/lmathlib.c
index 2f0f3d1..a6b13f9 100644
--- a/lmathlib.c
+++ b/lmathlib.c
@@ -278,7 +278,7 @@
 */
 
 /*
-** This code uses lots of shifts. ANSI C does not allow shifts greater
+** This code uses lots of shifts. ISO C does not allow shifts greater
 ** than or equal to the width of the type being shifted, so some shifts
 ** are written in convoluted ways to match that restriction. For
 ** preprocessor tests, it assumes a width of 32 bits, so the maximum
diff --git a/loslib.c b/loslib.c
index 3f60502..b7a2b0d 100644
--- a/loslib.c
+++ b/loslib.c
@@ -34,7 +34,7 @@
 #if defined(LUA_USE_WINDOWS)
 #define LUA_STRFTIMEOPTIONS  "aAbBcdHIjmMpSUwWxXyYzZ%" \
     "||" "#c#x#d#H#I#j#m#M#S#U#w#W#y#Y"  /* two-char options */
-#elif defined(LUA_USE_C89)  /* ANSI C 89 (only 1-char options) */
+#elif defined(LUA_USE_C89)  /* C89 (only 1-char options) */
 #define LUA_STRFTIMEOPTIONS  "aAbBcdHIjmMpSUwWxXyYZ%"
 #else  /* C99 specification */
 #define LUA_STRFTIMEOPTIONS  "aAbBcCdDeFgGhHIjmMnprRStTuUVwWxXyYzZ%" \
diff --git a/luaconf.h b/luaconf.h
index 1ac6432..96a7780 100644
--- a/luaconf.h
+++ b/luaconf.h
@@ -319,7 +319,13 @@
 ** More often than not the libs go together with the core.
 */
 #define LUALIB_API	LUA_API
+
+#if defined(__cplusplus)
+/* Lua uses the "C name" when calling open functions */
+#define LUAMOD_API	extern "C"
+#else
 #define LUAMOD_API	LUA_API
+#endif
 
 /* }================================================================== */
 
diff --git a/testes/libs/lib11.c b/testes/libs/lib11.c
index 377d0c4..6a85f4d 100644
--- a/testes/libs/lib11.c
+++ b/testes/libs/lib11.c
@@ -1,7 +1,7 @@
 #include "lua.h"
 
 /* function from lib1.c */
-int lib1_export (lua_State *L);
+LUAMOD_API int lib1_export (lua_State *L);
 
 LUAMOD_API int luaopen_lib11 (lua_State *L) {
   return lib1_export(L);
diff --git a/testes/libs/makefile b/testes/libs/makefile
index 4e7f965..cf4c688 100644
--- a/testes/libs/makefile
+++ b/testes/libs/makefile
@@ -5,7 +5,7 @@
 CC = gcc
 
 # compilation should generate Dynamic-Link Libraries
-CFLAGS = -Wall -std=c99 -O2 -I$(LUA_DIR) -fPIC -shared
+CFLAGS = -Wall -O2 -I$(LUA_DIR) -fPIC -shared
 
 # libraries used by the tests
 all: lib1.so lib11.so lib2.so lib21.so lib2-v2.so