From f5197a2655b21fd3db44dbde047a9d18a7fa8b41 Mon Sep 17 00:00:00 2001 From: Daniel Fichtinger Date: Tue, 25 Mar 2025 14:00:07 -0400 Subject: [PATCH] AutoYADM commit: 2025-03-25 14:00:07 --- .config/mail/format.py | 86 +++++++++++++++-------------------------- .config/mail/format2.py | 49 +++++++++++++++++++++++ 2 files changed, 80 insertions(+), 55 deletions(-) create mode 100755 .config/mail/format2.py diff --git a/.config/mail/format.py b/.config/mail/format.py index 538fd78a..6077fa92 100755 --- a/.config/mail/format.py +++ b/.config/mail/format.py @@ -2,72 +2,48 @@ import textwrap import sys - -# with open(sys.argv[1], 'r') as f: -# lines = f.read().splitlines() - # print(lines) - # first pass: reflow paragraphs -# paragraph = [] -# lines = [] -# for line in sys.stdin: -# line = line.rstrip() -# if line: -# paragraph.append(line) -# else: -# if paragraph: -# lines.append(' '.join(paragraph)) -# lines.append("\n") -# if paragraph: -# lines.append(' '.join(paragraph)) - - +paragraph = [] +lines = [] skipping = False -in_par = False -running = True -while running: - line = sys.stdin.readline() - if line == '': - running = False +for line in sys.stdin: + line = line.rstrip() + if line: + if line.startswith(">") or skipping: + # ignore quoted line + lines.append(line) + elif line.startswith("```"): + # ignore code block + skipping = not skipping + lines.append(line) + elif line.startswith("--"): + skipping = True + lines.append(line) + else: + paragraph.append(line) + else: + if paragraph: + lines.append(' '.join(paragraph)) + paragraph = [] + lines.append("\n") +if paragraph: + lines.append(' '.join(paragraph)) +skipping = False +for line in lines: if line.startswith(">"): # ignore quoted line - print(line, end = "") + print(line) elif line.startswith("```"): # ignore code block skipping = not skipping - print(line, end = "") + print(line) elif line.startswith("--"): skipping = True - print(line, end = "") - elif not line.rstrip(): - # Empty line - in_par = not in_par - print() - print("printing empty line") - # print(line, end="") + print(line) else: - if not skipping and in_par: - par = [] - while True: - next_line = sys.stdin.readline() - # if not line.startswith((">", "```", "--")): - stripped = next_line.rstrip() - # print(next_line) - # print("runs") - if stripped: - # print("runs strip") - par.append(stripped) - else: - in_par = False - print("breaking par") - # par.append("\n") - break - line = " ".join(par) - # print(par) - # empty line, treat next section as paragraph # TODO: fix signature being mangled and newlines erased if not skipping: wrapped = textwrap.wrap(line, width=74, break_long_words=False, replace_whitespace=True) - print("\n".join(wrapped), end="") + print("\n".join(wrapped)) else: - print(line, end = "") + print(line) diff --git a/.config/mail/format2.py b/.config/mail/format2.py new file mode 100755 index 00000000..6077fa92 --- /dev/null +++ b/.config/mail/format2.py @@ -0,0 +1,49 @@ +#!/bin/env python + +import textwrap +import sys +# first pass: reflow paragraphs +paragraph = [] +lines = [] +skipping = False +for line in sys.stdin: + line = line.rstrip() + if line: + if line.startswith(">") or skipping: + # ignore quoted line + lines.append(line) + elif line.startswith("```"): + # ignore code block + skipping = not skipping + lines.append(line) + elif line.startswith("--"): + skipping = True + lines.append(line) + else: + paragraph.append(line) + else: + if paragraph: + lines.append(' '.join(paragraph)) + paragraph = [] + lines.append("\n") +if paragraph: + lines.append(' '.join(paragraph)) +skipping = False +for line in lines: + if line.startswith(">"): + # ignore quoted line + print(line) + elif line.startswith("```"): + # ignore code block + skipping = not skipping + print(line) + elif line.startswith("--"): + skipping = True + print(line) + else: + # TODO: fix signature being mangled and newlines erased + if not skipping: + wrapped = textwrap.wrap(line, width=74, break_long_words=False, replace_whitespace=True) + print("\n".join(wrapped)) + else: + print(line)