From b48458da700a172d105f043e6f552566691d20e1 Mon Sep 17 00:00:00 2001 From: intr <15019654+intr-cx@users.noreply.github.com> Date: Mon, 31 Jul 2023 10:42:44 +0200 Subject: [PATCH 1/5] ignore fake Protonmail message ids --- mthread.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/mthread.c b/mthread.c index d2008790..42f044f4 100644 --- a/mthread.c +++ b/mthread.c @@ -159,6 +159,12 @@ thread(char *file) mid = strndup(m+1, v-m-1); // XXX free? + //protonmail.internalid + if (mid && strlen(mid) >= 22) { + const char *pi = "@protonmail.internalid"; + if (strcmp(mid + strlen(mid) - 22, pi)) + continue; + } me = midcont(mid); if (me == c) From 659ca8bf9fc84b21e5734be3e9e514a9f57faf5f Mon Sep 17 00:00:00 2001 From: interloper <15019654+intr-cx@users.noreply.github.com> Date: Mon, 31 Jul 2023 18:31:36 +0200 Subject: [PATCH 2/5] fixup --- mthread.c | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/mthread.c b/mthread.c index 42f044f4..16affac1 100644 --- a/mthread.c +++ b/mthread.c @@ -159,17 +159,18 @@ thread(char *file) mid = strndup(m+1, v-m-1); // XXX free? - //protonmail.internalid - if (mid && strlen(mid) >= 22) { - const char *pi = "@protonmail.internalid"; - if (strcmp(mid + strlen(mid) - 22, pi)) - continue; - } me = midcont(mid); if (me == c) continue; + // ugly, skip fake Protonmail mids + if (strlen(mid) >= 22) { + const char *pi = "@protonmail.internalid"; + if (strcmp(mid + strlen(mid) - 22, pi)) + continue; + } + if (parent && !me->parent && !reachable(me, parent) && !reachable(parent, me)) { me->parent = parent; From 2cbed193bf9db9c814f95553990256ee6b8ce61c Mon Sep 17 00:00:00 2001 From: interloper <15019654+intr-cx@users.noreply.github.com> Date: Thu, 9 Nov 2023 16:22:12 +0100 Subject: [PATCH 3/5] add url viewer --- mless | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/mless b/mless index ddead987..cd307676 100755 --- a/mless +++ b/mless @@ -89,7 +89,8 @@ while :; do LESSOPEN="|$0 --filter %s" \ less -Ps"mless %f?m (message %i of %m).." -R \ "+:e $(mscan -n .)$nl" //scan $(mscan -n :) - case "$?" in + _c="$?" + case "$_c" in 0|1) exit $?;; 36) # $ goto end mseq -C '$' 2>/dev/null @@ -105,6 +106,10 @@ while :; do mseq -f : | mseq -S mseq -C + ;; + 117) # u extract URLs + _url="$(mshow -N -h ''| extract_url -l -c "$XDG_CONFIG_HOME"/urlview/config 2>&- | fzf)" + [ "$_url" != "" ] && handle-url "$_url" + ;; 82) # R toggle raw mode MLESS_RAW=$((1-$MLESS_RAW)) ;; From 6ad2128ca5bdaa10b25962cfd9647cc6babd76e2 Mon Sep 17 00:00:00 2001 From: Silvan Jegen Date: Sat, 18 May 2024 11:30:24 +0200 Subject: [PATCH 4/5] Fix calloc argument order These were found through gcc warnings. --- mflag.c | 2 +- msort.c | 2 +- mthread.c | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mflag.c b/mflag.c index ddf633cd..9ee87471 100644 --- a/mflag.c +++ b/mflag.c @@ -145,7 +145,7 @@ main(int argc, char *argv[]) return 0; } - args = calloc(sizeof (char *), argsalloc); + args = calloc(argsalloc, sizeof (char *)); if (!args) exit(-1); diff --git a/msort.c b/msort.c index 5d2d88d4..02d1e42c 100644 --- a/msort.c +++ b/msort.c @@ -319,7 +319,7 @@ main(int argc, char *argv[]) xpledge("stdio rpath", ""); - mails = calloc(sizeof (struct mail), mailalloc); + mails = calloc(mailalloc, sizeof (struct mail)); if (!mails) exit(-1); diff --git a/mthread.c b/mthread.c index 16affac1..b0a741a1 100644 --- a/mthread.c +++ b/mthread.c @@ -372,7 +372,7 @@ sort_tree(struct container *c, int depth) if (i == 1) // no sort needed return; - struct container **a = calloc(sizeof (struct container *), i); + struct container **a = calloc(i, sizeof (struct container *)); if (!a) return; From bda938824d2a001e34ac0c2c1f8169833284d4e0 Mon Sep 17 00:00:00 2001 From: interloper <15019654+intr-cx@users.noreply.github.com> Date: Wed, 30 Oct 2024 12:50:06 +0100 Subject: [PATCH 5/5] Redo logic & add protonmail.conversationid --- mthread.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/mthread.c b/mthread.c index b0a741a1..5ee9245d 100644 --- a/mthread.c +++ b/mthread.c @@ -165,9 +165,11 @@ thread(char *file) continue; // ugly, skip fake Protonmail mids - if (strlen(mid) >= 22) { + char *at = strchr(mid, '@'); + if (at != NULL) { const char *pi = "@protonmail.internalid"; - if (strcmp(mid + strlen(mid) - 22, pi)) + const char *pc = "@protonmail.conversationid"; + if (strcmp(at, pi) == 0 || strcmp(at, pc) == 0) continue; }