2022-02-27 12:48:17 (UTC-03:00)
Marcel Rodrigues <marcelgmr@gmail.com>
don't show content of binary files
diff --git a/git.lua b/git.lua index 5b7e399..b16ff24 100644 --- a/git.lua +++ b/git.lua @@ -138,6 +138,7 @@ int git_tree_entry_bypath(git_tree_entry **out, const git_tree *root, const char int git_tree_entry_to_object(git_object **object_out, git_repository *repo, const git_tree_entry *entry); void git_tree_entry_free(git_tree_entry *entry); +int git_blob_is_binary(const git_blob *blob); git_object_size_t git_blob_rawsize(const git_blob *blob); const void * git_blob_rawcontent(const git_blob *blob); @@ -238,7 +239,8 @@ function Commit:node(entry) elseif entry_type == 3 then local blob = ffi.cast("git_blob *", pobj[0]) local data = ffi.string(C.git_blob_rawcontent(blob), C.git_blob_rawsize(blob)) - return {type_="file", name=name, data=data} + local bin = C.git_blob_is_binary(blob) ~= 0 + return {type_="file", name=name, data=data, bin=bin} else return nil end diff --git a/view/file.html b/view/file.html index b04ebf8..3312403 100644 --- a/view/file.html +++ b/view/file.html @@ -22,6 +22,10 @@ <a href="{{$partial}}">{{$part}}</a> % end </p> + % if $node.bin then + <p><em>binary file</em></p> + % else <pre>{{!$node.data}}</pre> + % end </body> </html>