Files
emacs/lisp
Kai Tetzlaff ae963e80a7 Fix (mostly multibyte) issues in sieve-manage.el (Bug#54154)
The managesieve protocol (s. RFC5804) requires support for (a sightly
restricted variant of) UTF-8 in script content and script names. This
commit fixes/improves the handling of multibyte characters.

In addition, `sieve-manage-getscript' now properly handles NO
responses from the server instead of inflooping.

There are also some logging improvements.

* lisp/net/sieve-manage.el
(sieve-manage--append-to-log):
(sieve-manage--message):
(sieve-manage--error):
(sieve-manage-encode):
(sieve-manage-decode):
(sieve-manage-no-p): New functions.
(sieve-manage-make-process-buffer): Switch process buffer to unibyte.
(sieve-manage-open-server): Add `:coding 'raw-text-unix` to
`open-network-stream' call. Use unix EOLs in order to keep matching
CRLF (aka "\r\n") intact.
(sieve-manage-send): Make sure that UTF-8 multibyte characters are
properly encoded before sending data to the server.
(sieve-manage-getscript):
(sieve-manage-putscript): Use the changes above to fix down/uploading
scripts containing UTF-8 multibyte characters.
(sieve-manage-listscripts):
(sieve-manage-havespace)
(sieve-manage-getscript)
(sieve-manage-putscript):
(sieve-manage-deletescript):
(sieve-manage-setactive): Use the changes above to fix handling of
script names which contain UTF-8 multibyte characters.
(sieve-manage-parse-string):
(sieve-manage-getscript): Add handling of server responses with type
NO. Abort `sieve-manage-getscript' and show error message in message
area.
(sieve-manage-erase):
(sieve-manage-drop-next-answer):
(sieve-manage-parse-crlf): Return erased/dropped data (instead of nil).
(sieve-sasl-auth):
(sieve-manage-getscript):
(sieve-manage-erase):
(sieve-manage-open-server):
(sieve-manage-open):
(sieve-manage-send): Improve logging.
2022-09-06 13:33:48 +02:00
..
2022-08-06 16:55:51 +03:00
2022-08-24 06:38:36 +02:00
2022-08-09 22:44:21 +02:00
2022-09-05 06:30:32 +02:00
2022-07-11 11:30:00 +02:00
2022-08-10 11:21:24 +02:00
2022-07-19 14:13:25 +02:00
2022-08-08 14:23:29 +02:00
2022-06-27 15:32:53 +03:00
2022-07-14 12:13:31 +02:00
2022-08-05 11:47:05 +02:00
2022-08-01 01:17:16 -07:00
2022-07-14 12:52:32 +02:00
2022-09-02 23:57:18 +02:00
2022-09-06 12:24:32 +02:00
2022-08-30 19:09:00 +03:00
2022-09-06 12:54:42 +02:00
2022-07-22 22:43:38 +02:00
2022-07-11 11:30:00 +02:00
2022-09-06 12:24:32 +02:00
2022-08-19 06:30:21 +02:00
2022-08-22 19:22:33 +02:00
2022-09-01 06:17:37 +02:00
2022-09-01 06:17:37 +02:00
2022-09-01 05:10:19 +02:00
2022-08-07 14:41:01 +02:00
2022-07-26 14:23:30 +02:00
2022-08-22 19:22:33 +02:00
2022-08-04 11:39:16 +02:00
2022-07-04 17:01:53 +02:00
2022-08-13 06:30:27 +02:00
2022-09-06 06:30:27 +02:00
2022-07-14 11:37:42 +02:00
2022-07-04 14:56:11 +02:00
2022-07-14 11:37:42 +02:00
2022-08-01 01:17:16 -07:00
2022-08-22 19:22:33 +02:00
2022-08-04 11:39:23 +02:00
2022-08-26 06:30:29 +02:00
2022-07-20 22:38:01 +02:00
2022-08-08 14:23:29 +02:00

This directory contains source code for the parts of Emacs that are
written in Emacs Lisp.  *.el files are Emacs Lisp source, and the
corresponding *.elc files are byte-compiled versions.  Byte-compiled
files are architecture-independent.

The term subdirectory contains Lisp files that customize Emacs for
certain terminal types.  When Emacs starts, it checks the TERM
environment variable to get the terminal type and loads
'term/${TERM}.el' if it exists.

The other subdirectories hold Lisp packages grouped by their general
purpose.