summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--bin/gfxx.c16
1 files changed, 10 insertions, 6 deletions
diff --git a/bin/gfxx.c b/bin/gfxx.c
index 31f97ea1..1477a8c7 100644
--- a/bin/gfxx.c
+++ b/bin/gfxx.c
@@ -142,7 +142,7 @@ struct Pos {
     size_t y;
 };
 
-static void next(struct Pos *pos) {
+static bool next(struct Pos *pos) {
     if (mirror) {
         if (pos->x == pos->left) {
             pos->y++;
@@ -152,6 +152,7 @@ static void next(struct Pos *pos) {
             pos->left += width;
             pos->x = pos->left + width;
             pos->y = 0;
+            if (pos->x > pos->xres) return false;
         }
         pos->x--;
     } else {
@@ -164,8 +165,10 @@ static void next(struct Pos *pos) {
             pos->left += width;
             pos->x = pos->left;
             pos->y = 0;
+            if (pos->x > pos->xres) return false;
         }
     }
+    return true;
 }
 
 static void put(const struct Pos *pos, uint32_t p) {
@@ -191,7 +194,7 @@ static void drawBits(struct Pos *pos) {
             } else {
                 put(pos, GRAY(SCALE(bits, n)));
             }
-            next(pos);
+            if (!next(pos)) return;
         }
     }
 }
@@ -208,7 +211,7 @@ static void draw8(struct Pos *pos) {
             uint32_t b = (endian ? get(i) >> 0 : get(i) >> 6) & MASK(2);
             put(pos, RGB(SCALE(3, r), SCALE(3, g), SCALE(2, b)));
         }
-        next(pos);
+        if (!next(pos)) break;
     }
 }
 
@@ -221,7 +224,7 @@ static void draw16(struct Pos *pos) {
         uint32_t g = n >>  5 & MASK(6);
         uint32_t b = n >>  0 & MASK(5);
         put(pos, RGB(SCALE(5, r), SCALE(6, g), SCALE(5, b)));
-        next(pos);
+        if (!next(pos)) break;
     }
 }
 
@@ -232,7 +235,7 @@ static void draw24(struct Pos *pos) {
         } else {
             put(pos, RGB(get(i + 2), get(i + 1), get(i + 0)));
         }
-        next(pos);
+        if (!next(pos)) break;
     }
 }
 
@@ -243,7 +246,7 @@ static void draw32(struct Pos *pos) {
         } else {
             put(pos, RGB(get(i + 2), get(i + 1), get(i + 0)));
         }
-        next(pos);
+        if (!next(pos)) break;
     }
 }
 
@@ -299,4 +302,5 @@ extern void input(char in) {
         break; case '+': scale++;
         break; case '-': if (scale > 1) scale--;
     }
+    printOpts();
 }
;follow=1'>ui-shared: URL-escape script_nameJohn Keeping 2014-01-12ui-refs: escape HTML chars in author and tagger namesJohn Keeping 2014-01-12filter: pass extra arguments via cgit_open_filterJohn Keeping 2014-01-12ui-snapshot: set unused cgit_filter fields to zeroJohn Keeping 2014-01-12html: remove redundant htmlfd variableJohn Keeping 2014-01-12tests: add Valgrind supportJohn Keeping 2014-01-12cache: don't leave cache_slot fields uninitializedJohn Keeping 2014-01-10filter: split filter functions into their own fileJason A. Donenfeld 2014-01-10filter: make exit status localJason A. Donenfeld 2014-01-10parsing: fix header typoJason A. Donenfeld 2014-01-10cgit.c: Fix comment on bit mask hackLukas Fleischer 2014-01-10cgit.c: Use "else" for mutually exclusive branchesLukas Fleischer 2014-01-10ui-snapshot.c: Do not reinvent suffixcmp()Lukas Fleischer 2014-01-10Refactor cgit_parse_snapshots_mask()Lukas Fleischer 2014-01-10Disallow use of undocumented snapshot delimitersLukas Fleischer 2014-01-10Replace most uses of strncmp() with prefixcmp()Lukas Fleischer 2014-01-09README: Fix dependenciesLukas Fleischer 2014-01-08README: Spelling and formatting fixesLukas Fleischer 2014-01-08Fix UTF-8 with syntax-highlighting.pyPřemysl Janouch 2014-01-08Add a suggestion to the manpagePřemysl Janouch 2014-01-08Fix the example configurationPřemysl Janouch 2014-01-08Fix about-formatting.shPřemysl Janouch 2014-01-08Fix some spelling errorsPřemysl Janouch 2014-01-08filters: highlight.sh: add css comments for highlight 2.6 and 3.8Ferry Huberts