]> git.mdlowis.com Git - projs/tide.git/commitdiff
Fixed an issue with drawing non ascii runes causing infinite loop
authorMichael D. Lowis <mike@mdlowis.com>
Fri, 18 Nov 2016 02:23:49 +0000 (21:23 -0500)
committerMichael D. Lowis <mike@mdlowis.com>
Fri, 18 Nov 2016 02:23:49 +0000 (21:23 -0500)
inc/stdc.h
xedit.c

index 29b8947211a8bf1861d5f61576b45b493a7d8555..cbbcd57d8f4060693b76d95f3a38cafc04f3e237 100644 (file)
@@ -147,6 +147,9 @@ static inline char* _getopt_(int* p_argc, char*** p_argv) {
 
 /* Error Handling
  *****************************************************************************/
+#define trace() \
+    fprintf(stderr, "%s:%d\n", __FILE__, __LINE__)
+
 #ifdef NDEBUG
     #define debug(msg, ...) \
         ((void)0)
diff --git a/xedit.c b/xedit.c
index 44ded474c9226afcc11d83af6d4e96c3e3319d35..7473fb1c5f86dcaa1c53097977516e22b9947747 100644 (file)
--- a/xedit.c
+++ b/xedit.c
@@ -291,7 +291,7 @@ static void draw_runes(size_t x, size_t y, int fg, int bg, UGlyph* glyphs, size_
 static void draw_glyphs(size_t x, size_t y, UGlyph* glyphs, size_t rlen, size_t ncols) {
     XGlyphSpec specs[rlen];
     size_t i = 0;
-    while (rlen) {
+    while (rlen && i < ncols) {
         int numspecs = 0;
         uint32_t attr = glyphs[i].attr;
         while (i < ncols && glyphs[i].attr == attr) {