| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When a notmuch query result was shown and any message changes (e.g.: was
marked as read, deleted, flagged, etc) the entire result set was
reloaded from disk. This included querying the notmuch for paths for
each file individually and then reading headers from each file one by
one.
If the current view was a query-map with 4000 results, then marking a
single message as read resulted in 4000 files being read from disk.
When a change is detected in the database, instead of sending an
individual MessageInfo event for each message in the result set, send a
single DirectoryContents event. The UI code will remove from view any
messages that no longer exist, add new ones and request from the worker
any data that may be required (this data will be lazy-fetched).
This results in a dramatic performance improvement when reading messages
from a query-map result. Previously reading a single message would
result in about 2 minutes of CPU at 150% (on a i7-13700K). With this
patch, the same operation uses less than 5% CPU for less than 2 seconds.
Signed-off-by: Hugo Osvaldo Barrera <hugo@whynothugo.nl>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Sometimes emails will have a Sender: header, that is different from the
From: header. The only use of this in the wild I have seen to date is
when meeting invitation is forwarded by somebody. The From: header will
be the person organising the meeting, and the Sender: will be the person
forwarding. Naturally, when one replies (e.g. with on accept), it should
go to the meeting oragniser, but sometimes one would want to include the
Sender in such a reply.
When executing :reply determine the To: address in order of Reply-To:,
From:, Sender:. When executing :reply -a, include the Sender: in Cc:.
Implements: https://todo.sr.ht/~rjarry/aerc/259
Link: https://www.rfc-editor.org/rfc/rfc4021#section-2.1.3
Changelog-added: Replying to all will include the Sender in Cc.
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
Reviewed-by: Tim Culverhouse <tim@timculverhouse.com>
Reviewed-by: Tristan Partin <tristan@partin.io>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
| |
Add template variable to access the current account's From address.
Implements: https://todo.sr.ht/~rjarry/aerc/150
Changelog-added: New `{{.AccountFrom}}` template variable.
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
Tested-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add head and tail functions to get beginning or ends of strings.
E.g.:
{{"hello" | head 2}} will return "he"
{{"hello" | tail 2}} will return "lo"
Implements: https://todo.sr.ht/~rjarry/aerc/220
Changelog-added: New `head` and `tail` templates functions for strings.
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
Reviewed-by: Moritz Poldrack <moritz@poldrack.dev>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
| |
Add a :redraw command to force a repaint of the entire screen.
Changelog-added: New `:redraw` command to force a repaint of the
screen.
Requested-by: Remko Tronçon <r@mko.re>
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Tested-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
| |
Fix small typo within docs.
Signed-off-by: Matt Smith <matt@xtaz.co.uk>
Reviewed-by: Tristan Partin <tristan@partin.io>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
| |
Signed-off-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Vaxis v0.10.3 brings with it a few bug fixes, major sixel performance
improvements, and a new VT extension which enables Vaxis to receive
window resize updates in-band via escape sequences on supported
terminals (foot, ghostty, iTerm2, and kitty as of this patch).
- Improved performance all around for sixels (thanks, delthas)
- Fix key decoding for Home and End for the st terminal
- Implement mode 2048 for in-band resizes
- Add quirk for tmux 3.4 to turn on unicode width measurements
- Fix dropping of events during large pastes
Changelog-fixed: Detection of unicode width measurements on tmux 3.4.
Changelog-fixed: Dropping of events during large pastes.
Changelog-fixed: Home and End key decoding for the st terminal.
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some HTML emails contain weird URLs that contain unescaped pipes '|'.
For example:
https://foo.baz.fr/?data=05|02|foo@bar.fr|1|0|Unknown|=|0|||&reserved=0
Sadly, this does not seem standard but there's probably not much we can
do about it. Let's adapt colorize to also consider '|' as a valid URI
character.
Reported-by: Bence Ferdinandy <bence@ferdinandy.com>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Johannes Thyssen Tishman <johannes@thyssentishman.com>
|
|
|
|
|
|
|
| |
Fix small typo within docs.
Signed-off-by: Aiden Fox Ivey <aiden@aidenfoxivey.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Use the POSIX-specified function Awk keyword instead of the non-standard
func to define the prepare function in the text/calendar filter.
The GNU Awk manual[1] mentions that gawk supports abbreviating function
to func, but recommends against using the func abbreviation, as POSIX
only specifies function.
On my system (Debian sid), gawk isn't installed and mawk (Debian
priority "required", i.e. installed by default) provides /usr/bin/awk
instead. mawk appears to not support the abbreviated func keyword. When
viewing a text/calendar part, I only see the following:
awk: /usr/libexec/aerc/filters/calendar: line 211: return outside function body
Using the standardized function keyword allows mawk to parse the prepare
function (including its return) and execute the script as intended.
[1]: https://www.gnu.org/software/gawk/manual/html_node/Definition-Syntax.html
(section 9.2.1 "Function Definition Syntax")
Fixes: 0db924dc14a3 ("filters: fix calendar filter parsing")
Changelog-fixed: Builtin `calendar` filter error with non-GNU Awk.
Signed-off-by: Timon Reinold <tirei+aerc@agon.one>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
Only print the New, Updated and Removed sections if they contain
changes. If there are no dependency changes, only print "none".
Signed-off-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
| |
Signed-off-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
smtp-domain is ignored when using smtps:// transport. It is only
configured for clear text and STARTTLS connections.
Also use it for TLS encrypted connections.
Fixes: c10cb370bb94 ("config: add option for SMTP HELO/EHLO local domain")
Changelog-fixed: `smtp-domain` is now properly taken into account
for TLS connections.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Reviewed-by: Tristan Partin <tristan@partin.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some MTA servers require clients to specify their fully qualified
hostname in the HELO command. By default, go-smtp uses "localhost".
SMTP error 504: <localhost>: Helo command rejected: need fully
qualified hostname
In go-smtp v0.21.0, there is a regression preventing manually issuing
a HELO command after starttls authentication:
Connection failed: Hello: smtp: Hello called after other methods
The regression was fixed in go-smtp v0.21.3. Update our dependency.
Fixes: 7c789624d7da ("mod: update all dependencies")
Changelog-fixed: Error when trying to configure `smtp-domain` with
STARTTLS enabled.
Reported-by: Stefano <foxy@teapot.ovh>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Reviewed-by: Tristan Partin <tristan@partin.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When receiving invalid headers, just log the errors and move on with our
life. When failing to decode addresses, do whatever is possible to at
least make the message readable.
Changelog-fixed: Aerc is now less pedantic about invalid headers for
the maildir and notmuch backends.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Tested-by: Vitaly Ovchinnikov <v@ovch.ru>
Tested-by: inwit <inwit@sindominio.net>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If a log file is configured via `log-file` and the parent directory does
not exist then aerc exits with an error message on startup.
Check if the directory for the log file exists and create it if
necessary using sensible permissions (0700). Errors occurring while
creating the directory structure are returned and printed out.
Changelog-fixed: Startup error if `log-file` directory does not exist.
Signed-off-by: Jens Grassel <jens@wegtam.com>
Reviewed-by: Moritz Poldrack <moritz@poldrack.dev>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
| |
Signed-off-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The textinput widget operated on a slice of runes, and naively assumed
a rune was a "character". When deleting or navigating the cursor through
text which contains multi-codepoint characters (such as emoji), the
cursor index could desync and cause panics.
Use a slice of vaxis.Characters instead of runes to more accurately
reflect the index state of the cursor with respect to characters.
Fixes: https://todo.sr.ht/~rjarry/aerc/263
Reported-by: Bence Ferdinandy <bence@ferdinandy.com>
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Reviewed-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If scdoc fails for any reason, for example because a user hasn't
installed it yet, the `> $$@` redirection will still create an empty
destination file. On re-runs gmake will see the empty file and assume
the target has already completed. This led to installing a blank
man page.
Use the GNU Make '.DELETE_ON_ERROR' special target which automatically
deletes the target if a recipe fails.
Link: https://www.gnu.org/software/make/manual/html_node/Special-Targets.html#index-removing-targets-on-failure
Signed-off-by: Brandon Maier <brandon.maier@collins.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Some email clients format email addresses with quotes around B encoded
names. E.g.:
"=?utf-8?B?U21pZXRhbnNraSwgV29qY2llY2ggVGFkZXVzeiBpbiBUZWFtcw==?="
This seems non standard. I tried reading the multiple RFCs that describe
the MIME headers encoding but could not find any precise answer to
determine if adding quotes around encoded words is valid or not.
In any case, ParseAddressList completely ignores any encoding when it
encounters a double quote.
When that happens, try to detect it and force decoding a second time
after the quotes have been removed.
Link: https://datatracker.ietf.org/doc/html/rfc2045#section-3
Link: https://datatracker.ietf.org/doc/html/rfc2047#section-2
Link: https://datatracker.ietf.org/doc/html/rfc822#section-3.3
Reported-by: Bence Ferdinandy <bence@ferdinandy.com>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Unflipping tables instantly is not very considerate and certainly does
not have the same emotional impact compared to waiting for a moment to
digest the table flipping.
Wait for a random period of time using a log normal distribution:
| #
| # #
| # #
| # #
| # #
| # # #
| # # # #
| # # # #
| # # # # #
| # # # # # #
| # # # # # # #
| # # # # # # # #
| # # # # # # # # # # # #
| # # # # # # # # # # # # # # # # . . .
+-----------------------------------------------------
0 1 2 3 4 5 6 7 8 delay(seconds)
Signed-off-by: Robin Jarry <robin@jarry.cc>
Reviewed-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
|
|
|
| |
If a session is found in the cache, check that it works by issuing
a GetIdentities request. If that request fails, invalidate the cache and
go through the authentication.
Ensure that the session is valid and explicitly fail if it is not.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Reviewed-by: Tim Culverhouse <tim@timculverhouse.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Avoid eternal spinner on the message list when the imap server
advertises some message UIDs but fails to provide their headers when
aerc asks from them.
When an error occurs, or if some UIDs are not returned, make sure to
report the errors to the message list UI.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Reviewed-by: Tristan Partin <tristan@partin.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
h.Text() parses blobs of encoded text without taking into account
specific handling for email addresses. h.AddressList(key) uses
mail.ParseAddressList(h.Get(key)) already deals with charsets and
quoted-printable stuff. Pass it the raw header value.
In some cases, mail.ParseAddressList will return a list of addresses
*and* an UnknownCharset error. In this specific case, ignore the error.
Fixes: https://todo.sr.ht/~rjarry/aerc/257
Reported-by: Inwit <inwit@sindominio.net>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Inwit <inwit@sindominio.net>
Reviewed-by: Tristan Partin <tristan@partin.io>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commits:
9e93d9efdb88 ("jmap: fix go static check failure")
0465509eedad ("jmap: skip Email/get call if no emails to get")
9f97c698e3dd ("jmap: fetch entire threads")
Issues have been reported about disappearing sent messages.
Reported-by: Tristan Partin <tristan@partin.io>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Acked-by: Tristan Partin <tristan@partin.io>
|
|
|
|
|
|
|
|
| |
Some IRC users have a tendency to flip tables when they are upset.
Improve our bot to put furniture back where it belongs.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
| |
Handle NICK++ and NICK-- in the middle of sentences.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
|
| |
Just a copy of the upstream code verbatim. I'll patch the plugin in the
next commits.
Link: https://github.com/progval/Limnoria/tree/a6aa553/plugins/Karma
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
| |
Who indents nginx config files with 8 spaces?
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
| |
Since January 2024, Sourcehut infra has moved to the EU. Their IP block
was changed. Update our nginx config accordingly.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
|
|
|
| |
Register another webhook for all received emails and track the
X-Sourcehut-Patchset-Update header value. If it is APPLIED, then send
an IRC announce accordingly.
Use green for "applied" and light gr{e,a}y for "received".
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
|
|
| |
Add --help and --version as aliases of -h and -v, respectively.
Also add short flags for other options.
Reported-by: Peter Sanchez <pjs@petersanchez.com>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, when running aerc --help or aerc --version, we get an obscure
error when aerc is already running.
$ aerc --help
response: command not understood
When it is not running, it starts but prints the same error message in
the status line with weird colors.
Avoid sending garbage into the control socket. Try to detect invalid
arguments early.
$ aerc --foobaz
error: unknown argument: --foobaz
Reported-by: Peter Sanchez <pjs@petersanchez.com>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Depending on the locale and the libc implementation, iswalpha() may
return true or false for CJK symbols.
Reuse the same logic as in the split point detection introduced in
commit 99bc69918ea7 ("wrap: fix wide CJK characters support").
Include all missing Korean and Japanese specific Unicode blocks. Handle
syllabic symbols with a parameter to avoid wrapping in the middle of
syllables.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Gregory Anders <greg@gpanders.com>
|
|
|
|
|
|
|
|
|
|
|
|
| |
If no match were found in the References and In-Reply-To headers,
allow threading by looking at subjects.
This behaviour is disabled by default. Add a setting to enable it.
Changelog-added: Allow fallback to threading by subject with
`[ui].threading-by-subject`.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Matěj Cepl <mcepl@cepl.eu>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Show all threading associations even when not all nodes are present.
Indicate if a thread is incomplete, i.e. misses a direct parent node.
Use the `msglist_thread_orphan.fg=red` styleobject in your stylesheet to
indicate whether a messsage has a missing parent.
Also use a different thread prefix ("┬─" instead of "├─") not to confuse
them with regular threads that have a visible parent.
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Matěj Cepl <mcepl@cepl.eu>
|
|
|
|
|
|
|
|
|
|
|
|
| |
Allow using the address book for completion in the :cc, :bcc and
:forward commands.
Changelog-added: The address book is now used for `:cc`, `:bcc` and
`:forward`.
Requested-by: Maximilian Bosch <maximilian@mbosch.me>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
Tested-by: Maximilian Bosch <maximilian@mbosch.me>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When running :filter -u and iterating over all messages with maildir,
the list will eventually become empty (e.g. all messages have been
read, no unread messages can be displayed).
At this point, :next or :prev will fail to select anything and the
maildir backend will return an error. Since the error is not caught, the
message viewer is reloaded with a broken message. At this point, any key
press causes a panic.
This only happens with maildir because message list filters are updated
dynamically in the background everytime a filsystem event is triggered.
Avoid reloading the message viewer if an error is returned by the
backend. Just display the error and abort.
Link: https://lists.sr.ht/~rjarry/aerc-devel/%3CD1761AO8LJUL.12698V9VQDR9B@gmail.com%3E
Reported-by: Matthew Bystrin <dev.mbstr@gmail.com>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Koni Marti <koni.marti@gmail.com>
|
|
|
|
|
|
|
|
| |
No need for convoluted reverse parsing of the wire format. Simply use
the AddressForHumans function we already have.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Bence Ferdinandy <bence@ferdinandy.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes several behind the scenes issues, but notably addresses scrolling
of CJK characters in the terminal widget as well as wrapping of wide
characters
Reported-by: Tianhao Wang <shrik3@mailbox.org>
Reported-by: ~runxiyu
Signed-off-by: Tim Culverhouse <tim@timculverhouse.com>
Tested-by: Tianhao Wang <shrik3@mailbox.org>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
| |
Store the previous folder in the dirlist and retire the global 'history'
map in the commands package. This ensures that the previous folder is
always available when using ':cf -'.
Signed-off-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
| |
It's useful to delete folders other than the current one. If a folder is
specified, delete that one; otherwise, delete the current one.
Changelog-added: Allow specifying the folder to delete with `:rmdir`.
Signed-off-by: Jason Cox <me@jasoncarloscox.com>
Tested-by: Koni Marti <koni.marti@gmail.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Currently, when using :query the user is forced to create a new folder
for every query, since aerc doesn't allow overwriting an existing
folder. Actually, "overwriting" an existing folder with a query is
a non-destructive operation in the sense, that the underlying maildir is
not touched, the only thing lost is the state in aerc. The current
behaviour doesn't allow for a simple `:query -n query ` type of binding.
Allow overwriting an existing folder with the -f flag.
Changelog-added: Allow using existing directory name with `:query -f`.
Signed-off-by: Bence Ferdinandy <bence@ferdinandy.com>
Acked-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
| |
Allow creating [view:folder=FooBar] in binds.conf.
Changelog-added: Per folder key bindings can now be defined for the
message viewer.
Requested-by: Matěj Cepl <mcepl@cepl.eu>
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Matěj Cepl <mcepl@cepl.eu>
|
|
|
|
|
|
|
|
|
| |
Instead of a dumb diff, add a script to render a pretty list of changed
dependency versions.
Separate the new and removed dependencies from the version updates.
Signed-off-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
| |
This breaks mardown conversion to html.
Fixes: 70f46757449c ("logging: homogenize levels")
Signed-off-by: Robin Jarry <robin@jarry.cc>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When the selector dialog body text contains multiple lines, its height
is adjusted automatically. Since commit 3d529aa09330 ("config: make
popover dialogs configurable"), all text after the first line is
truncated.
This happens because SelectorDialog no longer satisfies the Dialog
interface which got an extra ContextWidth() method.
Implement that method using the full width. The [ui].dialog-* settings
are ignored as they were before for that dialog.
Fixes: 3d529aa09330 ("config: make popover dialogs configurable")
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Johannes Thyssen Tishman <johannes@thyssentishman.com>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Neither Chinese, Japanese nor Korean use spaces as words separators. It
is OK to hard wrap before any symbol (except CJK punctuation which
should probably stay attached to its previous symbol and not be left
alone at the start of a line).
I did not include Japanese Hiragana and Katakana symbols as word breaks
on purpose since these are phonetic alphabets. It didn't make sense to
wrap a line in the middle of a "word" made of these phonetic symbols.
Update the code to allow considering either a space or a CJK known
symbol as a split point for hard wrapping.
Add test case with Chinese, Japanese and Korean generated lorem ipsum
style text.
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Runxi Yu <me@runxiyu.org>
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Since the update to go-jmap 0.5.0, the IsAscending property is now taken
into account even if it is false.
The initial JMAP implementation wrongfully assumed the behaviour and
inverted the sort -r logic. Fix that so that messages are ordered as
expected.
Link: https://git.sr.ht/~rockorager/go-jmap/commit/1db959676c10398a8
Signed-off-by: Robin Jarry <robin@jarry.cc>
Tested-by: Tim Culverhouse <tim@timculverhouse.com>
|