This is an automated email from the git hooks/post-receive script.

git pushed a commit to branch master
in repository terminology.

View the commit online.

commit af440c941e81790a542980b21575d6e0da03c27b
Author: Boris Faure <[email protected]>
AuthorDate: Thu Sep 17 19:53:20 2026 +0000

    termio: render the overline attribute
    
    check that the overline attribute exists in efl and use it if available
---
 meson.build               | 11 +++++++++++
 src/bin/options_themepv.c |  1 +
 src/bin/termiointernals.c |  7 +++++++
 src/bin/termiointernals.h |  9 +++++++++
 src/bin/termptyesc.c      |  1 -
 5 files changed, 28 insertions(+), 1 deletion(-)

diff --git a/meson.build b/meson.build
index 94da1bc5..55d6c157 100644
--- a/meson.build
+++ b/meson.build
@@ -107,6 +107,17 @@ endif
 
 message('Checking for ELM_SEL_FORMAT_URILIST: ' + found)
 
+found = 'Not found'
+
+if cc.has_member('struct _Evas_Textgrid_Cell', 'overline',
+                 prefix: '#include <Evas.h>',
+                 dependencies: terminology_dependencies)
+  config_data.set('HAVE_TEXTGRID_OVERLINE', 1)
+  found = 'Found'
+endif
+
+message('Checking for textgrid overline: ' + found)
+
 eet_bin = get_option('eet')
 if eet_bin == ''
   eet_bin = eet_path
diff --git a/src/bin/options_themepv.c b/src/bin/options_themepv.c
index a48857c7..28d16c32 100644
--- a/src/bin/options_themepv.c
+++ b/src/bin/options_themepv.c
@@ -59,6 +59,7 @@ _row_set(Evas_Object *o, int y, const char *txt)
         tc[x].bg_extended = 0;
         tc[x].underline = 0;
         tc[x].strikethrough = 0;
+        TC_OVERLINE_SET(tc[x], 0);
         tc[x].double_width = 0;
         tc[x].fg_extended = 0;
         tc[x].bg_extended = 0;
diff --git a/src/bin/termiointernals.c b/src/bin/termiointernals.c
index 6972e31d..44ba3bed 100644
--- a/src/bin/termiointernals.c
+++ b/src/bin/termiointernals.c
@@ -2537,6 +2537,7 @@ termio_internal_render(Termio *sd,
                   tc[x].bg_extended = 0;
                   tc[x].underline = 0;
                   tc[x].strikethrough = 0;
+                  TC_OVERLINE_SET(tc[x], 0);
                   tc[x].bold = 0;
                   tc[x].italic = 0;
                   tc[x].double_width = 0;
@@ -2568,6 +2569,7 @@ termio_internal_render(Termio *sd,
                        tc[x].bg_extended = 0;
                        tc[x].underline = 0;
                        tc[x].strikethrough = 0;
+                       TC_OVERLINE_SET(tc[x], 0);
                        tc[x].bold = 0;
                        tc[x].italic = 0;
                        tc[x].double_width = 0;
@@ -2612,6 +2614,7 @@ termio_internal_render(Termio *sd,
                        tc[x].bg_extended = 0;
                        tc[x].underline = 0;
                        tc[x].strikethrough = 0;
+                       TC_OVERLINE_SET(tc[x], 0);
                        tc[x].bold = 0;
                        tc[x].italic = 0;
                        tc[x].double_width = cells[x].att.dblwidth;
@@ -2693,6 +2696,7 @@ termio_internal_render(Termio *sd,
                           (tc[x].bg_extended != bgext) ||
                           (tc[x].underline != cells[x].att.underline) ||
                           (tc[x].strikethrough != cells[x].att.strike) ||
+                          TC_OVERLINE_DIFFERS(tc[x], cells[x].att.overlined) ||
                           (tc[x].double_width != cells[x].att.dblwidth);
 
                        if (cell_changed)
@@ -2705,6 +2709,7 @@ termio_internal_render(Termio *sd,
                             tc[x].bg_extended = bgext;
                             tc[x].underline = cells[x].att.underline;
                             tc[x].strikethrough = cells[x].att.strike;
+                            TC_OVERLINE_SET(tc[x], cells[x].att.overlined);
                             if (sd->config->font.bolditalic)
                               {
                                  tc[x].bold = cells[x].att.bold;
@@ -2805,6 +2810,7 @@ termio_internal_render(Termio *sd,
                   tc[xx].bg_extended = 0;
                   tc[xx].underline = 1;
                   tc[xx].strikethrough = 0;
+                  TC_OVERLINE_SET(tc[xx], 0);
                   tc[xx].double_width = dbl;
                   tc[xx].codepoint = g;
                   if (dbl)
@@ -2817,6 +2823,7 @@ termio_internal_render(Termio *sd,
                        tc[xx].bg_extended = 0;
                        tc[xx].underline = 1;
                        tc[xx].strikethrough = 0;
+                       TC_OVERLINE_SET(tc[xx], 0);
                        tc[xx].double_width = 0;
                        tc[xx].codepoint = 0;
                     }
diff --git a/src/bin/termiointernals.h b/src/bin/termiointernals.h
index 6c8d3c9d..f0781ccf 100644
--- a/src/bin/termiointernals.h
+++ b/src/bin/termiointernals.h
@@ -5,6 +5,15 @@
 typedef void Term;
 #endif
 
+/* textgrid cells only gained an overline field in efl 1.29 */
+#ifdef HAVE_TEXTGRID_OVERLINE
+# define TC_OVERLINE_SET(_tc, _v) ((_tc).overline = (_v))
+# define TC_OVERLINE_DIFFERS(_tc, _v) ((_tc).overline != (_v))
+#else
+# define TC_OVERLINE_SET(_tc, _v) ((void)0)
+# define TC_OVERLINE_DIFFERS(_tc, _v) (0)
+#endif
+
 typedef struct tag_Termio Termio;
 
 struct tag_Termio
diff --git a/src/bin/termptyesc.c b/src/bin/termptyesc.c
index 0457dba3..9810e327 100644
--- a/src/bin/termptyesc.c
+++ b/src/bin/termptyesc.c
@@ -1353,7 +1353,6 @@ _handle_esc_csi_color_set(Termpty *ty, Eina_Unicode **ptr,
               ty->termstate.att.encircled = 1;
               break;
            case 53:
-              WRN("TODO: support SGR 51 - overlined attribute");
               ty->termstate.att.overlined = 1;
               break;
            case 54:

-- 
To stop receiving notification emails like this one, please contact
the administrator of this repository.

Reply via email to