Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package chafa for openSUSE:Factory checked 
in at 2021-06-07 22:45:01
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/chafa (Old)
 and      /work/SRC/openSUSE:Factory/.chafa.new.32437 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "chafa"

Mon Jun  7 22:45:01 2021 rev:8 rq:898181 version:1.6.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/chafa/chafa.changes      2021-01-15 
19:47:27.954132375 +0100
+++ /work/SRC/openSUSE:Factory/.chafa.new.32437/chafa.changes   2021-06-07 
22:45:29.700687218 +0200
@@ -1,0 +2,14 @@
+Mon Jun  7 18:30:46 UTC 2021 - Michael Vetter <[email protected]>
+
+- Update to 1.6.1:
+  * Add NOCONFIGURE variable to autogen.sh to skip configure
+  Bug fixes:
+  * #50 SIGBUS while loading huge GIFs
+  * #52 Produces small glitches in output with some images
+  * #54 Haiku port fails on 32bit
+  * [unfiled] Exclude RTL code points that could break the output.
+  * [unfiled] Apple Terminal lacks truecolor support, so make it
+    default to 256 colors
+  * [unfiled] Fix typo affecting middle dot symbol.
+
+-------------------------------------------------------------------

Old:
----
  chafa-1.6.0.tar.xz

New:
----
  chafa-1.6.1.tar.xz

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ chafa.spec ++++++
--- /var/tmp/diff_new_pack.xpT21q/_old  2021-06-07 22:45:30.112687914 +0200
+++ /var/tmp/diff_new_pack.xpT21q/_new  2021-06-07 22:45:30.116687921 +0200
@@ -17,7 +17,7 @@
 
 
 Name:           chafa
-Version:        1.6.0
+Version:        1.6.1
 Release:        0
 Summary:        Image-to-text converter for terminal
 License:        LGPL-3.0-or-later
@@ -91,8 +91,7 @@
 
 %files -n libchafa0
 %license COPYING.LESSER
-%{_libdir}/lib%{name}.so.0
-%{_libdir}/lib%{name}.so.0.5.0
+%{_libdir}/lib%{name}.so.0*
 
 %files devel
 %license COPYING.LESSER

++++++ chafa-1.6.0.tar.xz -> chafa-1.6.1.tar.xz ++++++
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/Makefile.in new/chafa-1.6.1/Makefile.in
--- old/chafa-1.6.0/Makefile.in 2021-01-15 02:07:54.000000000 +0100
+++ new/chafa-1.6.1/Makefile.in 2021-06-03 22:43:33.000000000 +0200
@@ -193,7 +193,7 @@
 am__DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/chafa.pc.in \
        $(srcdir)/config.h.in AUTHORS COPYING COPYING.LESSER INSTALL \
        NEWS README TODO ar-lib compile config.guess config.sub \
-       install-sh ltmain.sh missing
+       depcomp install-sh ltmain.sh missing
 DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
 distdir = $(PACKAGE)-$(VERSION)
 top_distdir = $(distdir)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/NEWS new/chafa-1.6.1/NEWS
--- old/chafa-1.6.0/NEWS        2021-01-15 02:02:49.000000000 +0100
+++ new/chafa-1.6.1/NEWS        2021-06-03 22:41:13.000000000 +0200
@@ -1,6 +1,23 @@
 Chafa releases
 ==============
 
+1.6.1 (2021-06-03)
+------------------
+
+This is a bugfix release.
+
+* Add NOCONFIGURE variable to autogen.sh to skip configure (Biswapriyo Nath).
+
+* Bug fixes:
+  github#50  SIGBUS while loading huge GIFs (reported by Grzegorz Koperwas).
+  github#52  Produces small glitches in output with some images (reported by
+             Sami Farin).
+  github#54  Haiku port fails on 32bit (Luc Schrijvers).
+  [unfiled]  Exclude RTL code points that could break the output.
+  [unfiled]  Apple Terminal lacks truecolor support, so make it default to 256
+             colors (reported by Behdad Esfahbod).
+  [unfiled]  Fix typo affecting middle dot symbol.
+
 1.6.0 (2021-01-15)
 ------------------
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/README.md new/chafa-1.6.1/README.md
--- old/chafa-1.6.0/README.md   2020-12-09 22:22:03.000000000 +0100
+++ new/chafa-1.6.1/README.md   2021-01-15 02:53:58.000000000 +0100
@@ -11,7 +11,7 @@
 <a href="https://travis-ci.com/hpjansson/chafa/branches"; rel="nofollow">
 <img 
src="https://img.shields.io/travis/com/hpjansson/chafa/master.svg?label=master&style=for-the-badge";
 alt="Master Build Status" />
 &emsp;
-<img 
src="https://img.shields.io/travis/com/hpjansson/chafa/1.4.svg?label=1.4&style=for-the-badge";
 alt="1.4 Build Status" />
+<img 
src="https://img.shields.io/travis/com/hpjansson/chafa/1.6.svg?label=1.6&style=for-the-badge";
 alt="1.6 Build Status" />
 </a>
 &emsp;
 <a href="https://hpjansson.org/chafa/download/";>
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/autogen.sh new/chafa-1.6.1/autogen.sh
--- old/chafa-1.6.0/autogen.sh  2020-07-18 03:02:36.000000000 +0200
+++ new/chafa-1.6.1/autogen.sh  2021-06-03 22:36:31.000000000 +0200
@@ -77,7 +77,7 @@
         exit 1
 }
 
-if test -z "$*"; then
+if test x$NOCONFIGURE = x && test -z "$*"; then
         ${MY_ECHO}
         ${MY_ECHO} "I am going to run ./configure with no arguments - if you 
wish "
         ${MY_ECHO} "to pass any to it, please specify them on the $0 command 
line."
@@ -102,4 +102,13 @@
 autoconf
 
 cd $ORIGDIR
-$srcdir/configure --enable-maintainer-mode "$@"
+
+conf_flags="--enable-maintainer-mode"
+
+if test x$NOCONFIGURE = x; then
+  ${MY_ECHO} Running $srcdir/configure $conf_flags "$@" ...
+  $srcdir/configure $conf_flags "$@" \
+  && ${MY_ECHO} Now type \`make\' to compile $PROJECT || exit 1
+else
+  ${MY_ECHO} Skipping configure process.
+fi
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/chafa/Makefile.am 
new/chafa-1.6.1/chafa/Makefile.am
--- old/chafa-1.6.0/chafa/Makefile.am   2021-01-15 02:02:49.000000000 +0100
+++ new/chafa-1.6.1/chafa/Makefile.am   2021-06-03 22:38:20.000000000 +0200
@@ -9,7 +9,7 @@
 noinst_HEADERS =
 
 libchafa_la_CFLAGS = $(LIBCHAFA_CFLAGS) $(GLIB_CFLAGS) -DCHAFA_COMPILATION
-libchafa_la_LDFLAGS = $(LIBCHAFA_LDFLAGS) -version-info 5:0:5
+libchafa_la_LDFLAGS = $(LIBCHAFA_LDFLAGS) -version-info 5:1:5
 libchafa_la_LIBADD = $(GLIB_LIBS) internal/libchafa-internal.la -lm
 
 libchafa_la_SOURCES = \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/chafa/Makefile.in 
new/chafa-1.6.1/chafa/Makefile.in
--- old/chafa-1.6.0/chafa/Makefile.in   2021-01-15 02:07:54.000000000 +0100
+++ new/chafa-1.6.1/chafa/Makefile.in   2021-06-03 22:43:33.000000000 +0200
@@ -425,7 +425,7 @@
 # produce documentation.
 noinst_HEADERS = chafa-term-seq-doc.h chafa-term-seq-doc-in.h
 libchafa_la_CFLAGS = $(LIBCHAFA_CFLAGS) $(GLIB_CFLAGS) -DCHAFA_COMPILATION
-libchafa_la_LDFLAGS = $(LIBCHAFA_LDFLAGS) -version-info 5:0:5
+libchafa_la_LDFLAGS = $(LIBCHAFA_LDFLAGS) -version-info 5:1:5
 libchafa_la_LIBADD = $(GLIB_LIBS) internal/libchafa-internal.la -lm
 libchafa_la_SOURCES = \
        chafa-canvas.c \
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/chafa/chafa-canvas.c 
new/chafa-1.6.1/chafa/chafa-canvas.c
--- old/chafa-1.6.0/chafa/chafa-canvas.c        2021-01-11 03:01:11.000000000 
+0100
+++ new/chafa-1.6.1/chafa/chafa-canvas.c        2021-06-03 22:37:43.000000000 
+0200
@@ -131,7 +131,7 @@
 
 /* colors must point to an array of two elements */
 static guint64
-block_to_bitmap (const ChafaPixel *block, ChafaColor *colors)
+block_to_bitmap (const ChafaPixel *block, ChafaColorPair *color_pair)
 {
     guint64 bitmap = 0;
     gint i;
@@ -143,8 +143,8 @@
         bitmap <<= 1;
 
         /* FIXME: What to do about alpha? */
-        error [0] = chafa_color_diff_fast (&block [i].col, &colors [0]);
-        error [1] = chafa_color_diff_fast (&block [i].col, &colors [1]);
+        error [0] = chafa_color_diff_fast (&block [i].col, &color_pair->colors 
[0]);
+        error [1] = chafa_color_diff_fast (&block [i].col, &color_pair->colors 
[1]);
 
         if (error [0] < error [1])
             bitmap |= 1;
@@ -311,7 +311,7 @@
 
 /* colors_out must point to an array of two elements */
 static void
-work_cell_get_contrasting_color_pair (WorkCell *wcell, ChafaColor *colors_out)
+work_cell_get_contrasting_color_pair (WorkCell *wcell, ChafaColorPair 
*color_pair_out)
 {
     const guint8 *sorted_pixels;
 
@@ -319,8 +319,8 @@
 
     /* Choose two colors by median cut */
 
-    colors_out [0] = wcell->pixels [sorted_pixels [CHAFA_SYMBOL_N_PIXELS / 
4]].col;
-    colors_out [1] = wcell->pixels [sorted_pixels [(CHAFA_SYMBOL_N_PIXELS * 3) 
/ 4]].col;
+    color_pair_out->colors [0] = wcell->pixels [sorted_pixels 
[CHAFA_SYMBOL_N_PIXELS / 4]].col;
+    color_pair_out->colors [1] = wcell->pixels [sorted_pixels 
[(CHAFA_SYMBOL_N_PIXELS * 3) / 4]].col;
 }
 
 static const ChafaPixel *
@@ -670,7 +670,7 @@
                              ChafaColor *bg_col_out,
                              gint *error_out)
 {
-    ChafaColor color_pair [2];
+    ChafaColorPair color_pair;
     guint64 bitmap;
     ChafaCandidate candidates [N_CANDIDATES_MAX];
     gint n_candidates = 0;
@@ -683,15 +683,15 @@
     if (canvas->config.canvas_mode == CHAFA_CANVAS_MODE_FGBG
         || canvas->config.canvas_mode == CHAFA_CANVAS_MODE_FGBG_BGFG)
     {
-        color_pair [0] = canvas->fg_color;
-        color_pair [1] = canvas->bg_color;
+        color_pair.colors [0] = canvas->fg_color;
+        color_pair.colors [1] = canvas->bg_color;
     }
     else
     {
-        work_cell_get_contrasting_color_pair (wcell, color_pair);
+        work_cell_get_contrasting_color_pair (wcell, &color_pair);
     }
 
-    bitmap = block_to_bitmap (wcell->pixels, color_pair);
+    bitmap = block_to_bitmap (wcell->pixels, &color_pair);
     n_candidates = CLAMP (canvas->work_factor_int, 1, N_CANDIDATES_MAX);
 
     chafa_symbol_map_find_candidates (&canvas->config.symbol_map,
@@ -738,7 +738,7 @@
                                   gint *error_a_out,
                                   gint *error_b_out)
 {
-    ChafaColor color_pair [2];
+    ChafaColorPair color_pair;
     guint64 bitmaps [2];
     ChafaCandidate candidates [N_CANDIDATES_MAX];
     gint n_candidates = 0;
@@ -751,22 +751,22 @@
     if (canvas->config.canvas_mode == CHAFA_CANVAS_MODE_FGBG
         || canvas->config.canvas_mode == CHAFA_CANVAS_MODE_FGBG_BGFG)
     {
-        color_pair [0] = canvas->fg_color;
-        color_pair [1] = canvas->bg_color;
+        color_pair.colors [0] = canvas->fg_color;
+        color_pair.colors [1] = canvas->bg_color;
     }
     else
     {
-        ChafaColor color_pair_part [2] [2];
+        ChafaColorPair color_pair_part [2];
 
-        work_cell_get_contrasting_color_pair (wcell_a, color_pair_part [0]);
-        work_cell_get_contrasting_color_pair (wcell_b, color_pair_part [1]);
+        work_cell_get_contrasting_color_pair (wcell_a, &color_pair_part [0]);
+        work_cell_get_contrasting_color_pair (wcell_b, &color_pair_part [1]);
 
-        color_pair [0] = chafa_color_average_2 (color_pair_part [0] [0], 
color_pair_part [1] [0]);
-        color_pair [1] = chafa_color_average_2 (color_pair_part [0] [1], 
color_pair_part [1] [1]);
+        color_pair.colors [0] = chafa_color_average_2 (color_pair_part 
[0].colors [0], color_pair_part [1].colors [0]);
+        color_pair.colors [1] = chafa_color_average_2 (color_pair_part 
[0].colors [1], color_pair_part [1].colors [1]);
     }
 
-    bitmaps [0] = block_to_bitmap (wcell_a->pixels, color_pair);
-    bitmaps [1] = block_to_bitmap (wcell_b->pixels, color_pair);
+    bitmaps [0] = block_to_bitmap (wcell_a->pixels, &color_pair);
+    bitmaps [1] = block_to_bitmap (wcell_b->pixels, &color_pair);
     n_candidates = CLAMP (canvas->work_factor_int, 1, N_CANDIDATES_MAX);
 
     chafa_symbol_map_find_wide_candidates (&canvas->config.symbol_map,
@@ -1542,7 +1542,7 @@
  * @canvas: The canvas to generate a printable representation of
  * @term_info: Terminal to format for, or %NULL for fallback
  *
- * Builds a UTF-8 string of terminal contorl sequences and symbols
+ * Builds a UTF-8 string of terminal control sequences and symbols
  * representing the canvas' current contents. This can e.g. be printed
  * to a terminal. The exact choice of escape sequences and symbols,
  * dimensions, etc. is determined by the configuration assigned to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/chafa/chafa-symbol-map.c 
new/chafa-1.6.1/chafa/chafa-symbol-map.c
--- old/chafa-1.6.0/chafa/chafa-symbol-map.c    2021-01-11 03:01:11.000000000 
+0100
+++ new/chafa-1.6.1/chafa/chafa-symbol-map.c    2021-06-03 22:37:43.000000000 
+0200
@@ -450,6 +450,7 @@
 char_is_selected (GArray *selectors, ChafaSymbolTags tags, gunichar c)
 {
     ChafaSymbolTags auto_exclude_tags = CHAFA_SYMBOL_TAG_BAD;
+    GUnicodeScript script;
     gboolean is_selected = FALSE;
     gint i;
 
@@ -458,6 +459,23 @@
         || c == '\t')
         return FALSE;
 
+    /* We don't support RTL, so RTL characters will break the output.
+     *
+     * Ideally we'd exclude the R and AL bidi classes, but unfortunately we 
don't
+     * have a convenient API available to us to determine the bidi class of a
+     * character. So we just exclude a few scripts and hope for the best.
+     *
+     * A better implementation could extract directionality from the Unicode 
DB:
+     *
+     * https://www.unicode.org/reports/tr9/#Bidirectional_Character_Types
+     * 
https://www.unicode.org/Public/UCD/latest/ucd/extracted/DerivedBidiClass.txt */
+    script = g_unichar_get_script (c);
+    if (script == G_UNICODE_SCRIPT_ARABIC
+        || script == G_UNICODE_SCRIPT_HEBREW
+        || script == G_UNICODE_SCRIPT_THAANA
+        || script == G_UNICODE_SCRIPT_SYRIAC)
+        return FALSE;
+
     for (i = 0; i < (gint) selectors->len; i++)
     {
         const Selector *selector = &g_array_index (selectors, Selector, i);
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/chafa/chafa-term-db.c 
new/chafa-1.6.1/chafa/chafa-term-db.c
--- old/chafa-1.6.0/chafa/chafa-term-db.c       2021-01-11 03:01:11.000000000 
+0100
+++ new/chafa-1.6.1/chafa/chafa-term-db.c       2021-06-03 22:36:31.000000000 
+0200
@@ -208,6 +208,7 @@
     const gchar *term;
     const gchar *colorterm;
     const gchar *vte_version;
+    const gchar *term_program;
     const gchar *tmux;
     const SeqStr **color_seq_list = color_256_list;
     const SeqStr *gfx_seqs = NULL;
@@ -224,6 +225,9 @@
     vte_version = g_environ_getenv (envp, "VTE_VERSION");
     if (!vte_version) vte_version = "";
 
+    term_program = g_environ_getenv (envp, "TERM_PROGRAM");
+    if (!term_program) term_program = "";
+
     tmux = g_environ_getenv (envp, "TMUX");
     if (!tmux) tmux = "";
 
@@ -254,6 +258,10 @@
         || !strcmp (term, "xterm-kitty"))
         color_seq_list = color_direct_list;
 
+    /* Apple Terminal sets TERM=xterm-256color, and does not support truecolor 
*/
+    if (!g_ascii_strcasecmp (term_program, "Apple_Terminal"))
+        color_seq_list = color_256_list;
+
     /* mlterm's truecolor support seems to be broken; it looks like a color
      * allocation issue. This affects character cells, but not sixels.
      *
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/chafa/internal/chafa-popcnt.c 
new/chafa-1.6.1/chafa/internal/chafa-popcnt.c
--- old/chafa-1.6.0/chafa/internal/chafa-popcnt.c       2021-01-11 
03:01:11.000000000 +0100
+++ new/chafa-1.6.1/chafa/internal/chafa-popcnt.c       2021-06-03 
22:36:31.000000000 +0200
@@ -29,7 +29,7 @@
 #if defined(HAVE_POPCNT64_INTRINSICS)
     return (gint) _mm_popcnt_u64 (v);
 #else /* HAVE_POPCNT32_INTRINSICS */
-    __int32_t* w = (__int32_t*)&v;
+    const guint32 *w = (const guint32 *) &v;
     return (gint) _mm_popcnt_u32(w[0]) + _mm_popcnt_u32(w[1]);
 #endif
 }
@@ -42,7 +42,7 @@
 #if defined(HAVE_POPCNT64_INTRINSICS)
         *(vc++) = _mm_popcnt_u64 (*(vv++));
 #else /* HAVE_POPCNT32_INTRINSICS */
-         __int32_t* w = (__int32_t*)vv;
+        const guint32 *w = (const guint32 *)vv;
         *(vc++) = _mm_popcnt_u32(w[0]) + _mm_popcnt_u32(w[1]);
         vv++;
 #endif
@@ -62,13 +62,16 @@
         *(vc++) = _mm_popcnt_u64 (a ^ *(vb++));
     }
 
-    while (n--) {
+    while (n--)
+    {
         *(vc++) = _mm_popcnt_u64 (a ^ *(vb++));
     }
 #else /* HAVE_POPCNT32_INTRINSICS */
-    __int32_t* aa = (__int32_t*)&a;
-    __int32_t* wb = (__int32_t*)vb;
-    while (n--) {
+    const guint32 *aa = (const guint32 *) &a;
+    const guint32 *wb = (const guint32 *) vb;
+
+    while (n--)
+    {
         *(vc++) = _mm_popcnt_u32 (aa [0] ^ wb [0]) + _mm_popcnt_u32 (aa [1] ^ 
wb [1]);
         wb += 2;
     }
@@ -93,14 +96,17 @@
         *(vc++) += _mm_popcnt_u64 (a [1] ^ *(vb++));
     }
 
-    while (n--) {
+    while (n--)
+    {
         *vc = _mm_popcnt_u64 (a [0] ^ *(vb++));
         *(vc++) += _mm_popcnt_u64 (a [1] ^ *(vb++));
     }
 #else /* HAVE_POPCNT32_INTRINSICS */
-    guint32 *aa = (const guint32 *) a;
-    guint32 *wb = (guint32 *) vb;
-    while (n--) {
+    const guint32 *aa = (const guint32 *) a;
+    const guint32 *wb = (const guint32 *) vb;
+
+    while (n--)
+    {
         *(vc++) = _mm_popcnt_u32 (aa [0] ^ wb [0]) + _mm_popcnt_u32 (aa [1] ^ 
wb [1])
             + _mm_popcnt_u32 (aa [2] ^ wb [2]) + _mm_popcnt_u32 (aa [3] ^ wb 
[3]);
         wb += 4;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/chafa/internal/chafa-symbols.c 
new/chafa-1.6.1/chafa/internal/chafa-symbols.c
--- old/chafa-1.6.0/chafa/internal/chafa-symbols.c      2021-01-11 
03:01:11.000000000 +0100
+++ new/chafa-1.6.1/chafa/internal/chafa-symbols.c      2021-06-03 
22:37:43.000000000 +0200
@@ -87,6 +87,11 @@
 
 static const UnicharRange meta_ranges [] =
 {
+    /* Arabic tatweel -- RTL but it's a modifier and not formally part
+     * of a script, so can't simply be excluded on that basis in
+     * ChafaSymbolMap::char_is_selected() */
+    {  0x0640, 0x0640 },
+
     /* Ideographic description characters. These convert poorly to our
      * internal format. */
     {  0x2ff0, 0x2fff },
@@ -1690,7 +1695,8 @@
         "        "
     },
     {
-        CHAFA_SYMBOL_TAG_DOT,
+        /* Has an emoji variant that may show up unbidden */
+        CHAFA_SYMBOL_TAG_DOT | CHAFA_SYMBOL_TAG_AMBIGUOUS,
         0x25aa, /* Black small square */
         "        "
         "        "
@@ -1716,7 +1722,8 @@
     },
     {
         /* Black right-pointing triangle */
-        CHAFA_SYMBOL_TAG_GEOMETRIC,
+        /* Has an emoji variant that may show up unbidden */
+        CHAFA_SYMBOL_TAG_GEOMETRIC | CHAFA_SYMBOL_TAG_AMBIGUOUS,
         0x25b6,
         " X      "
         " XXX    "
@@ -1742,7 +1749,8 @@
     },
     {
         /* Black left-pointing triangle */
-        CHAFA_SYMBOL_TAG_GEOMETRIC,
+        /* Has an emoji variant that may show up unbidden */
+        CHAFA_SYMBOL_TAG_GEOMETRIC | CHAFA_SYMBOL_TAG_AMBIGUOUS,
         0x25c0,
         "      X "
         "    XXX "
@@ -1755,7 +1763,8 @@
     },
     {
         /* Black diamond */
-        CHAFA_SYMBOL_TAG_GEOMETRIC,
+        /* Depending on font, may exceed cell boundaries on VTE */
+        CHAFA_SYMBOL_TAG_GEOMETRIC | CHAFA_SYMBOL_TAG_AMBIGUOUS,
         0x25c6,
         "        "
         "   XX   "
@@ -1833,7 +1842,9 @@
     },
     {
         /* Black Medium Square */
-        CHAFA_SYMBOL_TAG_GEOMETRIC,
+        /* Has en emoji variant that may show up unbidden. See:
+         * https://github.com/hpjansson/chafa/issues/52 */
+        CHAFA_SYMBOL_TAG_GEOMETRIC | CHAFA_SYMBOL_TAG_AMBIGUOUS,
         0x25fc,
         "        "
         "        "
@@ -1876,7 +1887,7 @@
         "        "
         "        "
         "        "
-        "    XX   "
+        "    XX  "
         "    XX  "
         "        "
         "        "
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/configure new/chafa-1.6.1/configure
--- old/chafa-1.6.0/configure   2021-01-15 02:07:55.000000000 +0100
+++ new/chafa-1.6.1/configure   2021-06-03 22:43:33.000000000 +0200
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.69 for chafa 1.6.0.
+# Generated by GNU Autoconf 2.69 for chafa 1.6.1.
 #
 # Report bugs to <[email protected]>.
 #
@@ -590,8 +590,8 @@
 # Identity of this package.
 PACKAGE_NAME='chafa'
 PACKAGE_TARNAME='chafa'
-PACKAGE_VERSION='1.6.0'
-PACKAGE_STRING='chafa 1.6.0'
+PACKAGE_VERSION='1.6.1'
+PACKAGE_STRING='chafa 1.6.1'
 PACKAGE_BUGREPORT='[email protected]'
 PACKAGE_URL=''
 
@@ -1391,7 +1391,7 @@
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures chafa 1.6.0 to adapt to many kinds of systems.
+\`configure' configures chafa 1.6.1 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1461,7 +1461,7 @@
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of chafa 1.6.0:";;
+     short | recursive ) echo "Configuration of chafa 1.6.1:";;
    esac
   cat <<\_ACEOF
 
@@ -1603,7 +1603,7 @@
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-chafa configure 1.6.0
+chafa configure 1.6.1
 generated by GNU Autoconf 2.69
 
 Copyright (C) 2012 Free Software Foundation, Inc.
@@ -1972,7 +1972,7 @@
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by chafa $as_me 1.6.0, which was
+It was created by chafa $as_me 1.6.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   $ $0 $@
@@ -2835,7 +2835,7 @@
 
 # Define the identity of the package.
  PACKAGE='chafa'
- VERSION='1.6.0'
+ VERSION='1.6.1'
 
 
 cat >>confdefs.h <<_ACEOF
@@ -2937,8 +2937,8 @@
 
 CHAFA_MAJOR_VERSION=1
 CHAFA_MINOR_VERSION=6
-CHAFA_MICRO_VERSION=0
-CHAFA_VERSION=1.6.0
+CHAFA_MICRO_VERSION=1
+CHAFA_VERSION=1.6.1
 
 
 
@@ -2952,7 +2952,7 @@
 $as_echo "#define CHAFA_MINOR_VERSION 6" >>confdefs.h
 
 
-$as_echo "#define CHAFA_MICRO_VERSION 0" >>confdefs.h
+$as_echo "#define CHAFA_MICRO_VERSION 1" >>confdefs.h
 
 
 cat >>confdefs.h <<_ACEOF
@@ -15459,7 +15459,7 @@
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by chafa $as_me 1.6.0, which was
+This file was extended by chafa $as_me 1.6.1, which was
 generated by GNU Autoconf 2.69.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -15525,7 +15525,7 @@
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config="`$as_echo "$ac_configure_args" | sed 's/^ //; 
s/[\\""\`\$]/\\\\&/g'`"
 ac_cs_version="\\
-chafa config.status 1.6.0
+chafa config.status 1.6.1
 configured by $0, generated by GNU Autoconf 2.69,
   with options \\"\$ac_cs_config\\"
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/configure.ac new/chafa-1.6.1/configure.ac
--- old/chafa-1.6.0/configure.ac        2021-01-15 02:02:49.000000000 +0100
+++ new/chafa-1.6.1/configure.ac        2021-06-03 22:43:21.000000000 +0200
@@ -6,7 +6,7 @@
 
 m4_define([chafa_major_version], [1])
 m4_define([chafa_minor_version], [6])
-m4_define([chafa_micro_version], [0])
+m4_define([chafa_micro_version], [1])
 
 m4_define([chafa_version], 
[chafa_major_version.chafa_minor_version.chafa_micro_version])
 
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/docs/chafa.1 new/chafa-1.6.1/docs/chafa.1
--- old/chafa-1.6.0/docs/chafa.1        2021-01-15 02:08:18.000000000 +0100
+++ new/chafa-1.6.1/docs/chafa.1        2021-06-03 22:41:47.000000000 +0200
@@ -2,7 +2,7 @@
 .\"     Title: chafa
 .\"    Author: Hans Petter Jansson
 .\" Generator: DocBook XSL Stylesheets vsnapshot <http://docbook.sf.net/>
-.\"      Date: 01/15/2021
+.\"      Date: 06/03/2021
 .\"    Manual: User Commands
 .\"    Source: chafa
 .\"  Language: English
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/docs/html/chafa-ChafaCanvas.html 
new/chafa-1.6.1/docs/html/chafa-ChafaCanvas.html
--- old/chafa-1.6.0/docs/html/chafa-ChafaCanvas.html    2021-01-15 
02:08:28.000000000 +0100
+++ new/chafa-1.6.1/docs/html/chafa-ChafaCanvas.html    2021-06-03 
22:45:46.000000000 +0200
@@ -333,7 +333,7 @@
 <pre class="programlisting"><a 
href="/usr/share/gtk-doc/html/glib/glib-Strings.html#GString"><span 
class="returnvalue">GString</span></a>??*
 chafa_canvas_print (<em class="parameter"><code><a class="link" 
href="chafa-ChafaCanvas.html#ChafaCanvas" title="ChafaCanvas"><span 
class="type">ChafaCanvas</span></a> *canvas</code></em>,
                     <em class="parameter"><code><a class="link" 
href="chafa-ChafaTermInfo.html#ChafaTermInfo" title="ChafaTermInfo"><span 
class="type">ChafaTermInfo</span></a> *term_info</code></em>);</pre>
-<p>Builds a UTF-8 string of terminal contorl sequences and symbols
+<p>Builds a UTF-8 string of terminal control sequences and symbols
 representing the canvas' current contents. This can e.g. be printed
 to a terminal. The exact choice of escape sequences and symbols,
 dimensions, etc. is determined by the configuration assigned to
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/libnsgif/libnsgif.c 
new/chafa-1.6.1/libnsgif/libnsgif.c
--- old/chafa-1.6.0/libnsgif/libnsgif.c 2020-07-18 03:02:36.000000000 +0200
+++ new/chafa-1.6.1/libnsgif/libnsgif.c 2021-02-19 18:13:24.000000000 +0100
@@ -123,8 +123,8 @@
 gif_initialise_frame_extensions(gif_animation *gif, const int frame)
 {
         const unsigned char *gif_data, *gif_end;
-        int gif_bytes;
-        unsigned int block_size;
+        ssize_t gif_bytes;
+        ssize_t block_size;
 
         /* Get our buffer position etc.        */
         gif_data = (const unsigned char *)(gif->gif_data + 
gif->buffer_position);
@@ -255,10 +255,10 @@
         gif_frame *temp_buf;
 
         const unsigned char *gif_data, *gif_end;
-        int gif_bytes;
+        ssize_t gif_bytes;
         unsigned int flags = 0;
         unsigned int width, height, offset_x, offset_y;
-        unsigned int block_size, colour_table_size;
+        ssize_t block_size, colour_table_size;
         bool first_image = true;
         gif_result return_value;
         bool premature_eof = false;
@@ -287,9 +287,8 @@
         /* We could theoretically get some junk data that gives us millions of
          * frames, so we ensure that we don't have a silly number
          */
-        if (frame > 4096) {
+        if (frame > 262143)
                 return GIF_FRAME_DATA_ERROR;
-        }
 
         /* Get some memory to store our pointers in etc. */
         if ((int)gif->frame_holders <= frame) {
@@ -435,7 +434,7 @@
                 if (gif_bytes < 1) return GIF_INSUFFICIENT_FRAME_DATA;
                 block_size = gif_data[0] + 1;
                 /* Check if the frame data runs off the end of the file        
*/
-                if ((int)(gif_bytes - block_size) < 0) {
+                if ((ssize_t)(gif_bytes - block_size) < 0) {
                         /* Try to recover by signaling the end of the gif.
                          * Once we get garbage data, there is no logical way to
                          * determine where the next frame is.  It's probably
@@ -484,8 +483,8 @@
 static gif_result gif_skip_frame_extensions(gif_animation *gif)
 {
         const unsigned char *gif_data, *gif_end;
-        int gif_bytes;
-        unsigned int block_size;
+        ssize_t gif_bytes;
+        ssize_t block_size;
 
         /* Get our buffer position etc.        */
         gif_data = (const unsigned char *)(gif->gif_data + 
gif->buffer_position);
@@ -585,13 +584,13 @@
 {
         unsigned int index = 0;
         const unsigned char *gif_data, *gif_end;
-        int gif_bytes;
+        ssize_t gif_bytes;
         unsigned int width, height, offset_x, offset_y;
         unsigned int flags, colour_table_size, interlace;
         unsigned int *colour_table;
         unsigned int *frame_data = 0;  // Set to 0 for no warnings
         unsigned int *frame_scanline;
-        unsigned int save_buffer_position;
+        ssize_t save_buffer_position;
         unsigned int return_value = 0;
         unsigned int x, y, decode_y, burst_bytes;
         register unsigned char colour;
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/libnsgif/libnsgif.h 
new/chafa-1.6.1/libnsgif/libnsgif.h
--- old/chafa-1.6.0/libnsgif/libnsgif.h 2020-07-18 03:02:36.000000000 +0200
+++ new/chafa-1.6.1/libnsgif/libnsgif.h 2021-02-19 18:13:24.000000000 +0100
@@ -119,9 +119,9 @@
         /* Internal members are listed below */
 
         /** current index into GIF data */
-        unsigned int buffer_position;
+        ssize_t buffer_position;
         /** total number of bytes of GIF data available */
-        unsigned int buffer_size;
+        ssize_t buffer_size;
         /** current number of frame holders */
         unsigned int frame_holders;
         /** index in the colour table for the background colour */
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/libnsgif/lzw.c 
new/chafa-1.6.1/libnsgif/lzw.c
--- old/chafa-1.6.0/libnsgif/lzw.c      2020-07-18 03:02:36.000000000 +0200
+++ new/chafa-1.6.1/libnsgif/lzw.c      2021-02-19 18:13:24.000000000 +0100
@@ -34,12 +34,12 @@
  */
 struct lzw_read_ctx {
        const uint8_t *data;    /**< Pointer to start of input data */
-       uint32_t data_len;      /**< Input data length */
-       uint32_t data_sb_next;  /**< Offset to sub-block size */
+       uint64_t data_len;      /**< Input data length */
+       uint64_t data_sb_next;  /**< Offset to sub-block size */
 
        const uint8_t *sb_data; /**< Pointer to current sub-block in data */
-       uint32_t sb_bit;        /**< Current bit offset in sub-block */
-       uint32_t sb_bit_count;  /**< Bit count in sub-block */
+       uint64_t sb_bit;        /**< Current bit offset in sub-block */
+       uint64_t sb_bit_count;  /**< Bit count in sub-block */
 };
 
 /**
@@ -113,8 +113,8 @@
  */
 static lzw_result lzw__block_advance(struct lzw_read_ctx *ctx)
 {
-       uint32_t block_size;
-       uint32_t next_block_pos = ctx->data_sb_next;
+       uint64_t block_size;
+       uint64_t next_block_pos = ctx->data_sb_next;
        const uint8_t *data_next = ctx->data + next_block_pos;
 
        if (next_block_pos >= ctx->data_len) {
@@ -264,8 +264,8 @@
 lzw_result lzw_decode_init(
                struct lzw_ctx *ctx,
                const uint8_t *compressed_data,
-               uint32_t compressed_data_len,
-               uint32_t compressed_data_pos,
+               uint64_t compressed_data_len,
+               uint64_t compressed_data_pos,
                uint8_t code_size,
                const uint8_t ** const stack_base_out,
                const uint8_t ** const stack_pos_out)
diff -urN '--exclude=CVS' '--exclude=.cvsignore' '--exclude=.svn' 
'--exclude=.svnignore' old/chafa-1.6.0/libnsgif/lzw.h 
new/chafa-1.6.1/libnsgif/lzw.h
--- old/chafa-1.6.0/libnsgif/lzw.h      2020-07-18 03:02:36.000000000 +0200
+++ new/chafa-1.6.1/libnsgif/lzw.h      2021-02-19 18:13:24.000000000 +0100
@@ -75,8 +75,8 @@
 lzw_result lzw_decode_init(
                struct lzw_ctx *ctx,
                const uint8_t *compressed_data,
-               uint32_t compressed_data_len,
-               uint32_t compressed_data_pos,
+               uint64_t compressed_data_len,
+               uint64_t compressed_data_pos,
                uint8_t code_size,
                const uint8_t ** const stack_base_out,
                const uint8_t ** const stack_pos_out);

Reply via email to