Hello,

aerc (via the libexec colorize) uses the OSC 8 sequence to mark up
URLs for the terminal emulator.  This seems to be currently broken,
I'm investigating with upstream to understand if this is an aerc or
tcell-term bug or something else.  However, for the time being I'd
propose to just disable the OSC 8 sequence outputting.

It's broken on (at least)

 - xterm
 - urxvt
 - alacritty
 - gnome-terminal

I never noticed before because i use cat(1) as filter for emails.
volker@ noticed it.

thoughts/ok?


Index: Makefile
===================================================================
RCS file: /home/cvs/ports/mail/aerc/Makefile,v
retrieving revision 1.10
diff -u -p -r1.10 Makefile
--- Makefile    5 Jun 2023 09:10:52 -0000       1.10
+++ Makefile    15 Aug 2023 15:21:41 -0000
@@ -5,7 +5,7 @@ MODGO_VERSION = v0.0.0-20230511091235-f1
 
 V =            0.15.2
 DISTNAME =     aerc-$V
-REVISION =     0
+REVISION =     1
 
 CATEGORIES =   mail
 
Index: patches/patch-filters_colorize_c
===================================================================
RCS file: patches/patch-filters_colorize_c
diff -N patches/patch-filters_colorize_c
--- /dev/null   1 Jan 1970 00:00:00 -0000
+++ patches/patch-filters_colorize_c    15 Aug 2023 15:30:38 -0000
@@ -0,0 +1,27 @@
+disable OSC 8; tcell-term has issues with it.
+
+Index: filters/colorize.c
+--- filters/colorize.c.orig
++++ filters/colorize.c
+@@ -415,6 +415,7 @@ static inline size_t print_notabs(const char *in, size
+ }
+ 
+ static void print_osc8(const char *url, size_t len, size_t id, bool email) {
++#if 0
+       print("\x1b]8;");
+       if (url != NULL) {
+               printf("id=colorize-%lu;", id);
+@@ -427,6 +428,13 @@ static void print_osc8(const char *url, size_t len, si
+               print(";");
+       }
+       print("\x1b\\");
++#else
++      if (url != NULL) {
++              if (email)
++                      print("mailto://";);
++              print_notabs(url, len);
++      }
++#endif
+ }
+ 
+ static void diff_chunk(const char *in)

Reply via email to