Skip to content

Instantly share code, notes, and snippets.

View starwing's full-sized avatar

Xavier Wang starwing

  • Chengdu
View GitHub Profile
@starwing
starwing / strip.lua
Created January 6, 2012 19:25
a module using lpeg to strip comments and spaces in Lua code.
--[[
= ABOUT
This module uses Roberto Ierusalimschy's powerful new pattern matching library
LPeg[1] to tokenize Lua source-code in to a table of tokens. I think it handles
all of Lua's syntax, but if you find anything missing I would appreciate a mail
at peter@peterodding.com. This lexer is based on the BNF[2] from the Lua manual.
= USAGE
I've saved my copy of this module under [$LUA_PATH/lexers/lua.lua] which means
@starwing
starwing / slnuinco_5.2_compat.patch
Created May 16, 2012 09:07
Patch to makes slnunico compatible with Lua 5.2
diff --git a/slnunico.c b/slnunico.c
index bc1124b..22efb00 100644
--- a/slnunico.c
+++ b/slnunico.c
@@ -94,6 +94,9 @@ http://www.unicode.org/Public/UNIDATA/PropList.txt
# define SLN_UNICODENAME "unicode"
#endif
+#if LUA_VERSION_NUM < 502
+# define luaL_setfuncs(L,l,nup) luaI_openlib(L,NULL,l,nup)
@starwing
starwing / .gitignore
Created May 20, 2012 19:34
a path maintain module for lua
test
tags*
*.exe
*.dll
*.obj
*.so
*.o
@starwing
starwing / normpath.c
Last active July 7, 2024 13:05
a path normalize algorithm
#include <stdio.h>
#include <string.h>
#define COMP_MAX 50
#define ispathsep(ch) ((ch) == '/' || (ch) == '\\')
#define iseos(ch) ((ch) == '\0')
#define ispathend(ch) (ispathsep(ch) || iseos(ch))
char *normpath(char *out, const char *in) {
@starwing
starwing / .gitignore
Created June 1, 2012 02:54
tokentools temporary repository
*.exe
*.dll
tags*
objs
@starwing
starwing / install-lua.cmd
Created July 13, 2012 03:32
script to install Lua on Windows.
@set LUAVER=lua52
@if "%1x" == "x" (
set LUADIR=D:\%LUAVER%\
) else set LUADIR=%1\%LUAVER%\
@echo install Lua to %LUADIR% ...
@echo create directories ...
@mkdir %LUADIR% 2>nul
@mkdir %LUADIR%include 2>nul
@mkdir %LUADIR%clibs 2>nul
@mkdir %LUADIR%lua 2>nul
@starwing
starwing / .gitignore
Last active December 12, 2015 10:09
A script from Lua 5.1 to compile Lua with MSVC, modified to fit Lua 5.2.
Lua52/
*.a
@starwing
starwing / build_freeglut.bat
Last active December 13, 2015 17:39
Build freeglut with MinGW
@rd /s /q obj 2>nul
@md obj
@cd obj
gcc -O2 -c -DFREEGLUT_EXPORTS ../src/*.c -I../include
gcc -mdll -o ../freeglut32.dll *.o^
-Wl,--enable-stdcall-fixup,--out-implib,libfreeglut32.a^
-lopengl32 -lgdi32 -lwinmm
gcc -O2 -c -DFREEGLUT_STATIC ../src/*.c -I../include
#ifndef lua_bufflib_h
#define lua_bufflib_h
#define LUA_LIB
#include <lua.h>
#include <lauxlib.h>
#define BUFFER_LIBNAME "buffer"
@starwing
starwing / vararg.c
Last active May 4, 2021 07:45
A vararg module compatible with Lua 5.3
#define LUA_LIB
#include <lua.h>
#include <lauxlib.h>
static lua_Integer posrelat(lua_Integer pos, size_t len) {
if (pos >= 0) return pos;
else if (0u - (size_t)pos > len) return 0;
else return (lua_Integer)len + pos + 1;
}