commit 84c8fcef4fd1c96cc6c20696d7bbcc8bc0066ea3
parent b81244dfda9a44291d31199c983b86008d08cdd8
Author: Martin Kloeckner <mjkloeckner@gmail.com>
Date: Fri, 4 Sep 2026 21:09:02 -0300
If file is binary do not show line numbers checkbox
Diffstat:
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/stagit.c b/stagit.c
@@ -1080,7 +1080,7 @@ writeblob(git_object *obj, const char *fpath, const char *rpath, const char *fil
{
char tmp[PATH_MAX] = "", *file_parent;
const char *p, *oldrelpath;
- int lc = 0;
+ int lc = 0, isbin;
FILE *fp;
mkdirfile(fpath);
@@ -1088,6 +1088,8 @@ writeblob(git_object *obj, const char *fpath, const char *rpath, const char *fil
if (strlcpy(tmp, fpath, sizeof(tmp)) >= sizeof(tmp))
errx(1, "path truncated: '%s'", fpath);
+ isbin = git_blob_is_binary((git_blob *)obj);
+
file_parent = strrchr(tmp, '/');
for (p = fpath, tmp[0] = '\0'; *p; p++) {
if (*p == '/' && strlcat(tmp, "../", sizeof(tmp)) >= sizeof(tmp))
@@ -1116,6 +1118,7 @@ writeblob(git_object *obj, const char *fpath, const char *rpath, const char *fil
"function toggleLineNumbers() {"
" var lines = document.querySelectorAll('.line');"
" var lineCheckbox = document.getElementById('line-checkbox');"
+ " if (!lineCheckbox) return;"
" lines.forEach(function(element) {"
" if (lineCheckbox.checked) {"
@@ -1128,6 +1131,7 @@ writeblob(git_object *obj, const char *fpath, const char *rpath, const char *fil
"}"
"function setCheckboxState() {"
" var lineCheckbox = document.getElementById('line-checkbox');"
+ " if (!lineCheckbox) return;"
" var savedState = localStorage.getItem('line-checkbox');"
" if (savedState !== null) {"
" lineCheckbox.checked = savedState === 'true';"
@@ -1149,9 +1153,11 @@ writeblob(git_object *obj, const char *fpath, const char *rpath, const char *fil
xmlencode(fp, filename, strlen(filename));
fprintf(fp, " (%zuB)</div>\n\n", filesize);
- fputs("<div id=\"line-checkbox-div\"><input type=\"checkbox\""
- "id=\"line-checkbox\" onchange=\"toggleLineNumbers()\" checked>", fp);
- fputs("<label for=\"line-checkbox\">Line numbers</label></div>", fp);
+ if (!isbin) {
+ fputs("<div id=\"line-checkbox-div\"><input type=\"checkbox\""
+ "id=\"line-checkbox\" onchange=\"toggleLineNumbers()\" checked>", fp);
+ fputs("<label for=\"line-checkbox\">Line numbers</label></div>", fp);
+ }
if (ismarkdownfile(filename)) {
fputs("<div id=\"md-checkbox-div\"><input type=\"checkbox\""