Commit graph

31 commits

Author SHA1 Message Date
1b9889914a Fix numerous bugs with gb18030 2018-08-29 15:58:53 -04:00
467c565e8c Implement gb18030 seeking
Also fix some bugs in EOF handling
2018-08-28 15:31:51 -04:00
40d0054bd1 Implement gb18030 and GBK encoders 2018-08-28 11:48:25 -04:00
d6747532cd Implement gb18030 decoder 2018-08-27 18:03:12 -04:00
3ee653307c Implement all other single-byte encodings 2018-08-11 15:44:16 -04:00
269ecf4a96 Style fixes 2018-08-11 14:44:55 -04:00
7de6d7a6fc Implement ISO-8859-6 single-byte encoding
Other single-byte encodings to follow
2018-08-11 14:39:58 -04:00
540d8a237e Style fixes 2018-08-10 15:00:30 -04:00
e2c4136001 Change iterator to a set of generators
Not only is the faster than a classical iterator (though still not as
fast as a while loop), but it also offers the choice of characters
or code points.
2018-08-10 12:24:10 -04:00
7f2c11dcc2 Make the iterator iterate over code points rather than characters
Also fix performance measurement for the iterator; it was all wrong.
2018-08-10 10:39:09 -04:00
cb1cab9d84 Implement fatal replacement mode 2018-08-10 09:16:37 -04:00
4ca07befe5 Change API symbols for greater consistency and clarity 2018-08-09 13:29:28 -04:00
ccf1fe180a More safely back up state 2018-08-03 13:58:00 -04:00
8f7a7ed49e Add basic iterator implementation 2018-08-03 11:50:57 -04:00
e12fc0d77f Reorganize namespaces anticipating future internationalization tasks 2018-08-02 16:17:34 -04:00
51f7bbc5f7 Test encoder 2018-08-02 16:06:11 -04:00
72291b5f0d Implement string length 2018-08-02 15:53:49 -04:00
5c21a3634c Implement peeking 2018-08-02 15:17:17 -04:00
41a3a7bb5e Clean up 2018-08-02 14:46:23 -04:00
88497ddc41 Remove functional interface
The maintenance burden is not worth the advantages it provides in
limited situations.

Moreover, if other decoders are to be implemented, most multi-byte
schemes would not be able to support a functional interface of similar
simplicity, and single-byte schemes wouldn't benefit much
2018-08-02 14:19:03 -04:00
ca91a86744 Clean up static-method interface and test it 2018-07-28 22:34:32 -04:00
34eee5fcc3 Rename test case file 2018-07-27 22:19:53 -04:00
b32b1ec038 Style fixes 2018-07-27 22:11:53 -04:00
6fd50f0681 Ensure char and byte position never goes beyond the end of the string 2018-07-27 19:11:33 -04:00
9fba89ebda Tested seeking 2018-07-27 18:57:53 -04:00
a99702d4ab More robust self-synchronization 2018-07-24 08:45:42 -04:00
c11da3ac6b Remove now unnecessary data generator 2018-07-22 12:17:44 -04:00
b871c4f2fd Implement seeking backward though a string 2018-07-21 19:59:56 -04:00
1ed3c36a65 Start on alternate object-based interface
This is both simpler, and slightly faster, yielding between 2% and 5% faster performance
2018-05-05 14:32:03 -04:00
434e41cc2c Initial round of decoding tests, with one fix 2018-04-24 16:26:29 -04:00
9062f4e6a6 Add infrstructure required for tests 2018-04-23 14:21:25 -04:00