-- Copyright (c) 2010-2012 by Robert G. Jakabosky -- Copyright (c) 2012 by Daniel Silverstone -- -- 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. object "Diff" { c_source [[ typedef git_diff_list Diff; static int print_cb_fn(void *cb_data, git_diff_delta *delta, git_diff_range *range, char line_origin, /**< GIT_DIFF_LINE_... value from above */ const char *content, size_t content_len) { lua_State *L = (lua_State *)cb_data; lua_pushlstring(L, content, content_len); return 0; } ]], constructor "tree_to_tree" { c_call { "GitError", "err" } "git_diff_tree_to_tree" { "Repository *", "repo", "void *", "opts", "Tree *", "old_tree", "Tree *", "new_tree", "Diff *", "&this" }, }, method "entrycount" { c_method_call "int" "git_diff_entrycount" { "int", "delta_t" } }, method "print_patch" { c_source [[ { int cur_top = lua_gettop(L); git_diff_print_patch(${this}, L, print_cb_fn); if (lua_gettop(L) != cur_top) { lua_concat(L, lua_gettop(L) - cur_top); return 1; } } ]] }, }