diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/llthread.c | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/src/llthread.c b/src/llthread.c index 88d3805..27253e5 100644 --- a/src/llthread.c +++ b/src/llthread.c | |||
| @@ -2,6 +2,11 @@ | |||
| 2 | # define USE_PTHREAD | 2 | # define USE_PTHREAD |
| 3 | #endif | 3 | #endif |
| 4 | 4 | ||
| 5 | #define LLTHREAD_VERSION_MAJOR 0 | ||
| 6 | #define LLTHREAD_VERSION_MINOR 1 | ||
| 7 | #define LLTHREAD_VERSION_PATCH 0 | ||
| 8 | #define LLTHREAD_VERSION_COMMENT "dev" | ||
| 9 | |||
| 5 | #ifndef USE_PTHREAD | 10 | #ifndef USE_PTHREAD |
| 6 | # include <windows.h> | 11 | # include <windows.h> |
| 7 | # include <process.h> | 12 | # include <process.h> |
| @@ -607,6 +612,40 @@ static const struct luaL_Reg l_llthread_meth[] = { | |||
| 607 | 612 | ||
| 608 | //} | 613 | //} |
| 609 | 614 | ||
| 615 | //{ version | ||
| 616 | |||
| 617 | static int l_llthread_version(lua_State *L){ | ||
| 618 | lua_pushnumber(L, LLTHREAD_VERSION_MAJOR); | ||
| 619 | lua_pushnumber(L, LLTHREAD_VERSION_MINOR); | ||
| 620 | lua_pushnumber(L, LLTHREAD_VERSION_PATCH); | ||
| 621 | #ifdef LLTHREAD_VERSION_COMMENT | ||
| 622 | if(LLTHREAD_VERSION_COMMENT[0]){ | ||
| 623 | lua_pushliteral(L, LLTHREAD_VERSION_COMMENT); | ||
| 624 | return 4; | ||
| 625 | } | ||
| 626 | #endif | ||
| 627 | return 3; | ||
| 628 | } | ||
| 629 | |||
| 630 | static int l_llthread_push_version(lua_State *L){ | ||
| 631 | lua_pushnumber(L, LLTHREAD_VERSION_MAJOR); | ||
| 632 | lua_pushliteral(L, "."); | ||
| 633 | lua_pushnumber(L, LLTHREAD_VERSION_MINOR); | ||
| 634 | lua_pushliteral(L, "."); | ||
| 635 | lua_pushnumber(L, LLTHREAD_VERSION_PATCH); | ||
| 636 | #ifdef LLTHREAD_VERSION_COMMENT | ||
| 637 | if(LLTHREAD_VERSION_COMMENT[0]){ | ||
| 638 | lua_pushliteral(L, "-"LLTHREAD_VERSION_COMMENT); | ||
| 639 | lua_concat(L, 6); | ||
| 640 | } | ||
| 641 | else | ||
| 642 | #endif | ||
| 643 | lua_concat(L, 5); | ||
| 644 | return 1; | ||
| 645 | } | ||
| 646 | |||
| 647 | //} | ||
| 648 | |||
| 610 | static int l_llthread_set_logger(lua_State *L){ | 649 | static int l_llthread_set_logger(lua_State *L){ |
| 611 | lua_settop(L, 1); | 650 | lua_settop(L, 1); |
| 612 | luaL_argcheck(L, lua_isfunction(L, 1), 1, "function expected"); | 651 | luaL_argcheck(L, lua_isfunction(L, 1), 1, "function expected"); |
| @@ -617,6 +656,7 @@ static int l_llthread_set_logger(lua_State *L){ | |||
| 617 | static const struct luaL_Reg l_llthreads_lib[] = { | 656 | static const struct luaL_Reg l_llthreads_lib[] = { |
| 618 | {"new", l_llthread_new }, | 657 | {"new", l_llthread_new }, |
| 619 | {"set_logger", l_llthread_set_logger }, | 658 | {"set_logger", l_llthread_set_logger }, |
| 659 | {"version", l_llthread_version }, | ||
| 620 | 660 | ||
| 621 | {NULL, NULL} | 661 | {NULL, NULL} |
| 622 | }; | 662 | }; |
| @@ -628,5 +668,10 @@ LLTHREADS_EXPORT_API int LLTHREAD_OPEN_NAME(lua_State *L) { | |||
| 628 | 668 | ||
| 629 | lua_newtable(L); | 669 | lua_newtable(L); |
| 630 | luaL_setfuncs(L, l_llthreads_lib, 0); | 670 | luaL_setfuncs(L, l_llthreads_lib, 0); |
| 671 | |||
| 672 | lua_pushliteral(L, "_VERSION"); | ||
| 673 | l_llthread_push_version(L); | ||
| 674 | lua_rawset(L, -3); | ||
| 675 | |||
| 631 | return 1; | 676 | return 1; |
| 632 | } | 677 | } |
