Levente Uzonyi uploaded a new version of Network to project The Trunk:
http://source.squeak.org/trunk/Network-ul.225.mcz==================== Summary ====================
Name: Network-ul.225
Author: ul
Time: 18 May 2018, 12:52:04.236589 pm
UUID: 296fc64b-8ae0-44f7-8ff8-e7ab979be83e
Ancestors: Network-eem.224
Fixed MailAddressTokenizer class >> #nonAtomSet.
It returned 0 instead of a CharacterSet on first invocation.
It initialized CSNonAtom to a Set instead of a CharacterSet.
Added more comments too.
=============== Diff against Network-eem.224 ===============
Item was changed:
----- Method: MailAddressTokenizer class>>nonAtomSet (in category 'class initialization') -----
nonAtomSet
+ "Create a ByteCharacterSet to ensure quick parsing of the email address string, which must be a ByteString (UTF-8 encoded)"
- "(from RFC 6531)"
+ ^CSNonAtom ifNil: [
+ CSNonAtom := CharacterSet new
+ "Atom characters as defined in RFC 2822 3.2.4"
- ^CSNonAtom ifNil: [ | notAtoms |
- notAtoms := CharacterSet new
addAll: ($A to: $Z);
addAll: ($a to: $z);
addAll: ($0 to: $9);
addAll: '!!#$%&''*+-/=?^_`{|}~';
+ "RFC 6531 allows characters with value > 127 encoded as UTF-8, which means values between 128 and 255 may appear as part of atoms."
+ addAll: ((Character value: 128) to: (Character value: 255));
+ byteComplement ]!
- complement.
- CSNonAtom := Set new.
- 0 to: 127 do: [:v | | c |
- c := Character value: v.
- (notAtoms includes: c) ifTrue: [CSNonAtom add: c]]]!
Item was changed:
+ (PackageInfo named: 'Network') postscript: '"Rebuild CSNonAtom."
- (PackageInfo named: 'Network') postscript: '"below, add code to be run after the loading of this package"
MailAddressTokenizer cleanUp: false'!