| Commit message (Collapse) | Author | Age | Files | Lines | |
|---|---|---|---|---|---|
| * | Add peek() to Grapheme.Iterator | 2024-11-02 | 2 | -0/+95 | |
| | | | | | | This does the expected thing: returns the next ?Grapheme without mutation of the iteration state. | ||||
| * | Replace deprecated uses of std.mem.split | 2024-11-02 | 1 | -8/+8 | |
| | | |||||
| * | WidthData: define error set as mem.Allocator.Error | 2024-10-14 | 1 | -5/+5 | |
| | | | | | | | | The reader is a static embedded file. All of the reads are readInt. This function should not ever fail at runtime with a read error. Make all read errors unreachable, leaving only allocation errors as the error set. | ||||
| * | GraphemeData: define error set as mem.Allocator.Error | 2024-10-14 | 1 | -7/+7 | |
| | | | | | | | | The reader is a static embedded file. All of the reads are either a readInt or a readAll into a previously allocated buffer. This function should not ever fail at runtime with a read error. Make all read errors unreachable, leaving only allocation errors as the error set. | ||||
| * | refactor CodePoint.Iterator into a reusable fn | 2024-07-05 | 1 | -57/+79 | |
| | | | | | | | without changing the algorithm at all, move the responsibility of decoding a u8 slice out of the iterator, and into a reusable function so that it can be used by consumers of the library | ||||
| * | FoldData: Minimize Changes_When_Casefolded data | 2024-06-27 | 1 | -5/+16 | |
| | | | | | | | | | | | | | | | | | | | Only a few codepoints have a mapping in CaseFolding.txt but do not have the Changes_When_Casefolded property set. So, FoldData can just store a list of those particular codepoints and then re-use the encoded CaseFolding.txt data alongside it in order to implement changesWhenCaseFolded. This reduces the size of fold.bin.z from 4,387 bytes (4.28KiB) to 1,165 bytes (1.13KiB). This also seemingly introduced a very slight performance regression in zg_caseless. Before: zg CaseFold.compatCaselessMatch: result: 626, took: 258ns zg CaseFold.canonCaselessMatch: result: 626, took: 129ns After: zg CaseFold.compatCaselessMatch: result: 626, took: 263ns zg CaseFold.canonCaselessMatch: result: 626, took: 131ns | ||||
| * | Removed all inlines | 2024-06-26 | 11 | -33/+35 | |
| | | |||||
| * | Added changes when casefolded back | 2024-06-26 | 1 | -2/+6 | |
| | | |||||
| * | Implemented sqeek502s case fold | 2024-06-26 | 2 | -36/+53 | |
| | | |||||
| * | Normalize: Mark utf8Encode errors as unreachable, use explicit error sets | 2024-06-25 | 1 | -11/+11 | |
| | | | | | These utf8Encode calls are converting normalized codepoints back into UTF-8, so the codepoints can be assumed to be valid. | ||||
| * | codepoint: prevent panic when last cp too short | 2024-06-10 | 1 | -0/+11 | |
| | | | | | | | | | | | | If the last codepoint in a byte slice is incomplete (IE has a length of 3 but there are only 2 bytes remaining), the iterator will panic. Instead of panicking, prefer to return a replacement character. This strategy is similar to that in the block just above which returns a replacement character if the first byte is not valid. In this latter block, we also consume only one byte and allow the iterator to continue. This allows for sections of text which may have a single byte incorrect near the end of the slice. | ||||
| * | Merge pull request 'DisplayWidth: explicitly set width to 2 when VS16 is ↵ | 2024-04-11 | 1 | -0/+4 | |
| |\ | | | | | | | | | | | found' (#3) from rockorager/zg:vs-16 into master Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/3 | ||||
| | * | DisplayWidth: explicitly set width to 2 when VS16 is found | 2024-04-11 | 1 | -0/+4 | |
| | | | | | | | | | | | | | | | | | Explicitly set the width of an emoji to two when the next codepoint is a VS16 selector. Add unit test for this case. This is essentially the same PR as https://codeberg.org/dude_the_builder/ziglyph/pulls/11 | ||||
| * | | grapheme: export grapheme.State struct | 2024-04-11 | 1 | -1/+1 | |
| |/ | | | | | | The public function `graphemeBreak` requires a reference to a State struct, however this type is not exported. Export the type to allow users of zg to use this type and call graphemeBreak. | ||||
| * | NormData init now takes pointer to uninitialized Self to avoid stack copy ↵ | 2024-04-02 | 3 | -14/+20 | |
| | | | | | issues. | ||||
| * | Updated README | 2024-03-31 | 14 | -87/+36 | |
| | | |||||
| * | Split out Unicode tests to separate file | 2024-03-28 | 3 | -185/+195 | |
| | | |||||
| * | Merged NumericData into PropsData | 2024-03-28 | 2 | -69/+44 | |
| | | |||||
| * | PropsData and errdefers for init fns | 2024-03-28 | 13 | -22/+179 | |
| | | |||||
| * | ScriptsData and made all Datas const | 2024-03-27 | 17 | -57/+283 | |
| | | |||||
| * | Friendly general category methods | 2024-03-27 | 1 | -30/+116 | |
| | | |||||
| * | Rename DisplayWidthData | 2024-03-27 | 1 | -7/+7 | |
| | | |||||
| * | rm src/main.zig | 2024-03-26 | 1 | -93/+0 | |
| | | |||||
| * | GraphemeData and Normalize non-pub fns | 2024-03-26 | 2 | -13/+13 | |
| | | |||||
| * | Using diff for lowercase mapping | 2024-03-26 | 1 | -2/+3 | |
| | | |||||
| * | Using diff for uppercase mapping | 2024-03-26 | 1 | -2/+3 | |
| | | |||||
| * | Removed title case processing | 2024-03-26 | 1 | -35/+15 | |
| | | |||||
| * | CaseData | 2024-03-25 | 1 | -0/+223 | |
| | | |||||
| * | NumericData | 2024-03-24 | 2 | -12/+95 | |
| | | |||||
| * | Rename CaseFold and Normalize | 2024-03-23 | 3 | -15/+15 | |
| | | |||||
| * | Renamed Caser to Folder | 2024-03-23 | 1 | -0/+0 | |
| | | |||||
| * | Small format change in main | 2024-03-16 | 1 | -1/+5 | |
| | | |||||
| * | Normalizer back to 300k in Safe | 2024-03-01 | 1 | -16/+16 | |
| | | |||||
| * | Added canonical caseless match to Caser | 2024-03-01 | 3 | -7/+105 | |
| | | |||||
| * | Moved case fold stuff to src/Caser.zig | 2024-03-01 | 4 | -106/+125 | |
| | | |||||
| * | Changes when case folded check; 20ms faster | 2024-03-01 | 2 | -6/+38 | |
| | | |||||
| * | Normalizer.eqlIgnoreCase compatibility caseless matching | 2024-03-01 | 4 | -9/+163 | |
| | | |||||
| * | Removed dupe tombstone check in Normalizer | 2024-02-29 | 1 | -14/+0 | |
| | | |||||
| * | Major Normalizer optimizations | 2024-02-29 | 1 | -60/+75 | |
| | | |||||
| * | Added nfc latin1 check back | 2024-02-28 | 2 | -71/+122 | |
| | | |||||
| * | Using slices for decompositions in Normalizer | 2024-02-28 | 4 | -122/+118 | |
| | | |||||
| * | General Category with GenCatData | 2024-02-27 | 3 | -16/+108 | |
| | | |||||
| * | Normalizer 2x faster than Ziglyph; Uses 2x memory | 2024-02-27 | 1 | -1/+1 | |
| | | |||||
| * | Using NormPropsData in NormData; No Ziglyph deps in NOrmalizer | 2024-02-27 | 4 | -9/+67 | |
| | | |||||
| * | Removed equality functions from Normalizer | 2024-02-27 | 1 | -110/+3 | |
| | | |||||
| * | Using HangulData in NormData | 2024-02-27 | 3 | -12/+67 | |
| | | |||||
| * | Using NormData nfkd | 2024-02-26 | 8 | -101/+97 | |
| | | |||||
| * | Using NormData nfc and nfd | 2024-02-26 | 5 | -27/+16 | |
| | | |||||
| * | Using NormData and CanonData in Normalizer | 2024-02-26 | 4 | -90/+143 | |
| | | |||||
| * | Using separate data struct model. | 2024-02-26 | 7 | -196/+427 | |
| | | |||||