aboutsummaryrefslogtreecommitdiffstats
path: root/pop2.c
Commit message (Expand)AuthorAgeFilesLines
* Fix typo.Matthias Andree2006-11-271-1/+1
* Complain if strong authentication is requested.Matthias Andree2006-11-271-0/+8
* Trash shroud store.Matthias Andree2006-11-271-0/+1
* Fix TLS issue: fail if sslfingerprint, sslproto tls1 or sslcertck are configu...Matthias Andree2006-11-121-1/+1
* Snapshot 6.3.6-rc1.Matthias Andree2006-11-011-0/+6
* Fix more compiler warnings.Matthias Andree2006-03-141-2/+10
* Fix broken default port in POP2. Patch by Stanislav Brabec, SUSE [CZ].Matthias Andree2005-12-051-2/+2
* Change method->trail prototype to allow passing a tag to expect.Matthias Andree2005-11-091-1/+1
* Remove port/service dualism and make everything a service.Matthias Andree2005-08-021-5/+0
* strcpy -> strlcpy, strcat -> strlcatMatthias Andree2005-07-301-1/+1
* Fix various warnings.Matthias Andree2004-06-191-1/+5
* Sunil's transaction patches.Eric S. Raymond2003-10-151-0/+1
* Routine updates, including the latest Shetye patch.Eric S. Raymond2002-12-261-0/+1
* Bug fixes.Eric S. Raymond2001-03-221-1/+1
* Shrouding is now done over a narrower scope.Eric S. Raymond2001-03-141-3/+6
* Nake methods invisible except through the driver's table.Eric S. Raymond2001-03-131-2/+2
* Ready to send this to Mike.Eric S. Raymond1999-11-061-3/+3
* This preliminary SSL patch goes to Mike.Eric S. Raymond1999-10-271-1/+3
* Incorporated Henrik Storner's mimedecode patch.Eric S. Raymond1998-03-241-2/+3
* Fix IMAP password shrouding.Eric S. Raymond1998-03-181-0/+1
* IPV6.Eric S. Raymond1998-02-161-0/+4
* Smart re-polling support.Eric S. Raymond1997-09-301-0/+1
* Added --expunge option for Richard Kooidjman.Eric S. Raymond1997-09-281-1/+7
* Make X-IMAP test universal.Eric S. Raymond1997-09-231-1/+0
* Simplify the length handling.Eric S. Raymond1997-09-141-1/+0
* Deal with X-IMAP header properly.Eric S. Raymond1997-08-071-0/+1
* Some configuration cleanup.Eric S. Raymond1997-07-011-1/+2
* Don't rely on the size being in POP3's fetch response any more.Eric S. Raymond1997-06-141-0/+1
* Copyright cleanup.Eric S. Raymond1997-06-131-2/+1
* More bool conversions.Eric S. Raymond1997-06-131-2/+2
* Normal build is now with POP2 disabled and optimization on.Eric S. Raymond1997-06-111-1/+3
* IMAP now splits its request in half.Eric S. Raymond1997-05-171-0/+1
* Add multiple-folder support.Eric S. Raymond1997-05-151-10/+16
* Change type of socket descriptors from FILE * to int. Change SockGetsEric S. Raymond1997-05-131-11/+11
* Introduce gen_recv.Eric S. Raymond1997-01-241-9/+2
* Expunge fix.Eric S. Raymond1997-01-141-1/+0
* Dynamic allocation for the query structure string entries.Eric S. Raymond1997-01-141-1/+1
* Have IMAP set seen flag if keep is on.Eric S. Raymond1996-12-271-1/+1
* Drop back to using SockGets/SockWrite.Eric S. Raymond1996-12-241-1/+2
* Remove some inclusions no longer needed.Eric S. Raymond1996-12-171-1/+0
* Clean up some extra trailing LFs.Eric S. Raymond1996-12-171-0/+4
* SockGets is gone.Eric S. Raymond1996-12-171-1/+1
* Protocol labels for in-out messages.Eric S. Raymond1996-12-171-1/+1
* Yet morer error message cleanup.Eric S. Raymond1996-12-171-1/+1
* More through error conversion.Eric S. Raymond1996-12-171-1/+1
* Add full IMAP4 capability.Eric S. Raymond1996-12-091-0/+1
* Prototypes everywhere.Eric S. Raymond1996-11-081-21/+6
* Back out the attempt to use stdio.Eric S. Raymond1996-11-061-2/+3
* Eliminated socket.h.Eric S. Raymond1996-11-041-1/+0
* Special socket I/O almost gone!Eric S. Raymond1996-11-041-2/+2
and that is primarily a curiousity since no clients do that with ASCII names. == Unicode, UCS-2, UTF-16, and UTF-7 .Incomplete specification: WARNING: This section and its subsections are not normative references, and are insufficient to implement UCS-2, UTF-16 or UTF-7 based software. === UCS-2 and UTF-16 _by Mark Crispin_ RFC-3501 uses http://tools.ietf.org/html/rfc2152[RFC-2152] by reference. Some of the confusion on the getmail list arose from the fact that RFC-2152 talks about UCS-2 representation, which is limited to the Basic Multilingual Plane (BMP) range U+0000 to U+FFFF. However, RFC-2152 also (page 5) refers to the handling of surrogate pairs, which are defined in UTF-16 but not UCS-2. The correct interpretation is that the wording in RFC-2152 was written at a time when "UCS-2" was interpreted as a synonym for "16-bit value" as opposed to "BMP-only codepoints". This happens frequently in older standards. Since UTF-7 is deprecated, nobody has done the work to update RFC-2152 to clarify this point. Using surrogate pairs extends the capability of 16-bit words beyond the BMP range. The 0x0000 to 0xFFFF range comprises so-called surrogates, two character ranges (0xD800 to 0xDBFF and 0xDC00 to 0xDFFF) of 1024 characters (2^10^) each. These ranges are technically removed from the BMP (thus there is no such thing as U+D800); and hence the BMP only contains 64,512 possible codepoints. Both UTF-7 and UTF-16 transformation leverages these ranges to map Unicode code points in the range from U+010000 to U+10FFFF (which is the highest Unicode code point) to a pair of UCS-2 characters in the surrogates ranges. This happens by first subtracting 0x10000, which maps the input into the range 0x0 to 0xFFFFF, representable in 20 bits. The most significant 10-bit portion is mapped into the range 0xD800…0xDBFF, the least significant 10-bit portion into the range 0xDC00…0xDFFF, and these two 16-bit values are used in this order. UTF-7 does a further step of encoding in modified BASE64. Thus, UTF-7 and UTF-16 both deal with ``16-bit values'' and use the same surrogate pair mechanism to access non-BMP codepoints. Although not strictly accurate (the two are technically independent encodings of Unicode), it may be helpful to think of UTF-7 as a further encoding of UTF-16. === UTF-7 UTF-7 is a 7-bit representation of Unicode that makes use of character set shifting. A character that is directly representable represents itself. Other characters are subjected to a modified BASE64-encoding (that omits the padding "=" characters at the end of a group) which is preceded by a "+" character and trailed by a "-" character, which is discarded, or any other character not in the modified BASE64 set, which remains in the stream. As a special case, the sequence "\+-" is a shorthand to represent the "+" character itself. The modified BASE64 character set uses the characters A-Z, a-z, digits 0-9, and the characters "+" and "/", omitting "=" to avoid collisions with RFC-2047 encoding. === Modified UTF-7 This works similar to UTF-7, but mandates that printable ASCII characters 0x20...0x7E except 0x26 (the ampersand "&") represent themselves, and uses yet another BASE64 alphabet consisting of the upper- and lowercase letters, the digits, and the characters "+" and ",", with some further rules specified in RFC-3501. The leading shift character is replaced by the ampersand "&", the trailing remains "-", and the "&" can be encoded as "&-". == Conclusions IMAP Clients that want to support international mailbox names should send UTF-7, and be prepared to handle UTF-7 (if no 8-bit data is found) and UTF-8 (if 8-bit data is found). Modified UTF-7 as per the IMAP RFC #3501 is not limited to the Unicode Basic Multilingual Plane, but maps the entire Unicode range.