trunk/3rdparty/lsqlite3/lsqlite3.c
| r242886 | r242887 | |
| 476 | 476 | static int dbvm_bind_index(lua_State *L, sqlite3_stmt *vm, int index, int lindex) { |
| 477 | 477 | switch (lua_type(L, lindex)) { |
| 478 | 478 | case LUA_TSTRING: |
| 479 | | return sqlite3_bind_text(vm, index, lua_tostring(L, lindex), lua_strlen(L, lindex), SQLITE_TRANSIENT); |
| 479 | return sqlite3_bind_text(vm, index, lua_tostring(L, lindex), lua_rawlen(L, lindex), SQLITE_TRANSIENT); |
| 480 | 480 | case LUA_TNUMBER: |
| 481 | 481 | return sqlite3_bind_double(vm, index, lua_tonumber(L, lindex)); |
| 482 | 482 | case LUA_TBOOLEAN: |
| r242886 | r242887 | |
| 522 | 522 | sdb_vm *svm = lsqlite_checkvm(L, 1); |
| 523 | 523 | int index = luaL_checkint(L, 2); |
| 524 | 524 | const char *value = luaL_checkstring(L, 3); |
| 525 | | int len = lua_strlen(L, 3); |
| 525 | int len = lua_rawlen(L, 3); |
| 526 | 526 | |
| 527 | 527 | lua_pushnumber(L, sqlite3_bind_blob(svm->vm, index, value, len, SQLITE_TRANSIENT)); |
| 528 | 528 | return 1; |
| r242886 | r242887 | |
| 797 | 797 | sqlite3_result_double(ctx->ctx, luaL_checknumber(L, 2)); |
| 798 | 798 | break; |
| 799 | 799 | case LUA_TSTRING: |
| 800 | | sqlite3_result_text(ctx->ctx, luaL_checkstring(L, 2), lua_strlen(L, 2), SQLITE_TRANSIENT); |
| 800 | sqlite3_result_text(ctx->ctx, luaL_checkstring(L, 2), lua_rawlen(L, 2), SQLITE_TRANSIENT); |
| 801 | 801 | break; |
| 802 | 802 | case LUA_TNIL: |
| 803 | 803 | case LUA_TNONE: |
| r242886 | r242887 | |
| 814 | 814 | static int lcontext_result_blob(lua_State *L) { |
| 815 | 815 | lcontext *ctx = lsqlite_checkcontext(L, 1); |
| 816 | 816 | const char *blob = luaL_checkstring(L, 2); |
| 817 | | int size = lua_strlen(L, 2); |
| 817 | int size = lua_rawlen(L, 2); |
| 818 | 818 | sqlite3_result_blob(ctx->ctx, (const void*)blob, size, SQLITE_TRANSIENT); |
| 819 | 819 | return 0; |
| 820 | 820 | } |
| r242886 | r242887 | |
| 829 | 829 | static int lcontext_result_error(lua_State *L) { |
| 830 | 830 | lcontext *ctx = lsqlite_checkcontext(L, 1); |
| 831 | 831 | const char *err = luaL_checkstring(L, 2); |
| 832 | | int size = lua_strlen(L, 2); |
| 832 | int size = lua_rawlen(L, 2); |
| 833 | 833 | sqlite3_result_error(ctx->ctx, err, size); |
| 834 | 834 | return 0; |
| 835 | 835 | } |
| r242886 | r242887 | |
| 850 | 850 | static int lcontext_result_text(lua_State *L) { |
| 851 | 851 | lcontext *ctx = lsqlite_checkcontext(L, 1); |
| 852 | 852 | const char *text = luaL_checkstring(L, 2); |
| 853 | | int size = lua_strlen(L, 2); |
| 853 | int size = lua_rawlen(L, 2); |
| 854 | 854 | sqlite3_result_text(ctx->ctx, text, size, SQLITE_TRANSIENT); |
| 855 | 855 | return 0; |
| 856 | 856 | } |
| r242886 | r242887 | |
| 1001 | 1001 | |
| 1002 | 1002 | if (lua_pcall(L, argc + 1, 0, 0)) { |
| 1003 | 1003 | const char *errmsg = lua_tostring(L, -1); |
| 1004 | | int size = lua_strlen(L, -1); |
| 1004 | int size = lua_rawlen(L, -1); |
| 1005 | 1005 | sqlite3_result_error(context, errmsg, size); |
| 1006 | 1006 | } |
| 1007 | 1007 | |
| r242886 | r242887 | |
| 1658 | 1658 | static int db_prepare(lua_State *L) { |
| 1659 | 1659 | sdb *db = lsqlite_checkdb(L, 1); |
| 1660 | 1660 | const char *sql = luaL_checkstring(L, 2); |
| 1661 | | int sql_len = lua_strlen(L, 2); |
| 1661 | int sql_len = lua_rawlen(L, 2); |
| 1662 | 1662 | const char *sqltail; |
| 1663 | 1663 | sdb_vm *svm; |
| 1664 | 1664 | lua_settop(L,2); /* sql is on top of stack for call to newvm */ |
trunk/src/emu/luaengine.c
| r242886 | r242887 | |
| 68 | 68 | { |
| 69 | 69 | const char *msg = lua_tostring(m_lua_state, -1); |
| 70 | 70 | if (msg == NULL) msg = "(error object is not a string)"; |
| 71 | | luai_writestringerror("%s\n", msg); |
| 71 | lua_writestringerror("%s\n", msg); |
| 72 | 72 | lua_pop(m_lua_state, 1); |
| 73 | 73 | /* force a complete garbage collection in case of errors */ |
| 74 | 74 | lua_gc(m_lua_state, LUA_GCCOLLECT, 0); |
| r242886 | r242887 | |
| 360 | 360 | } else if (strcmp(hookname, "frame") == 0) { |
| 361 | 361 | hook_frame_cb.set(L, 1); |
| 362 | 362 | } else { |
| 363 | | luai_writestringerror("%s", "Unknown hook name, aborting.\n"); |
| 363 | lua_writestringerror("%s", "Unknown hook name, aborting.\n"); |
| 364 | 364 | } |
| 365 | 365 | } |
| 366 | 366 | |
| r242886 | r242887 | |
| 948 | 948 | lua_getglobal(m_lua_state, "print"); |
| 949 | 949 | lua_insert(m_lua_state, 1); |
| 950 | 950 | if (lua_pcall(m_lua_state, lua_gettop(m_lua_state) - 1, 0, 0) != LUA_OK) |
| 951 | | luai_writestringerror("%s\n", lua_pushfstring(m_lua_state, |
| 951 | lua_writestringerror("%s\n", lua_pushfstring(m_lua_state, |
| 952 | 952 | "error calling " LUA_QL("print") " (%s)", |
| 953 | 953 | lua_tostring(m_lua_state, -1))); |
| 954 | 954 | } |