| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This allows a build of DisplayWidth to give characters in those classes
a width, for cases where they'll be printed with a substitute in the
final display. It also raises the size of possible characters from an
i3 to an i4, to accommodate printing C1s as e.g. <80> or \u{80}.
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| | |
into master
Reviewed-on: https://codeberg.org/atman/zg/pulls/27
|
| |/ |
|
| |\
| |
| |
| |
| |
| | |
from e0328eric/zg:master into master
Reviewed-on: https://codeberg.org/atman/zg/pulls/25
|
| |/ |
|
| | |
|
| |\
| |
| |
| |
| |
| | |
squeek502/zg:folddata-leak into master
Reviewed-on: https://codeberg.org/atman/zg/pulls/21
|
| |/
|
|
| |
Closes #20
|
| |
|
|
| |
Also documents the `cjk` option, and how to enable it.
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| | |
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/18
|
| | |
| |
| |
| |
| | |
This does the expected thing: returns the next ?Grapheme without
mutation of the iteration state.
|
| |/ |
|
| |\
| |
| |
| |
| |
| | |
unreachable and define return errorset' (#16) from rockorager/zg:master into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/16
|
| | |
| |
| |
| |
| |
| |
| | |
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.
|
| |/
|
|
|
|
|
| |
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.
|
| | |
|
| |\
| |
| |
| |
| |
| | |
from lygaret/zg:master into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/11
|
| |/
|
|
|
|
| |
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
|
| | |
|
| |\
| |
| |
| |
| |
| | |
squeek502/zg:bench-windows-and-fmt into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/9
|
| | | |
|
| |\ \
| |/
|/|
| |
| |
| | |
from squeek502/zg:folddata-min into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/10
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| | |
|
| | |
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| | |
explicit error sets' (#7) from squeek502/zg:normalize-utf8encode-error into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/7
|
| |/
|
|
| |
These utf8Encode calls are converting normalized codepoints back into UTF-8, so the codepoints can be assumed to be valid.
|
| | |
|
| | |
|
| |\
| |
| |
| |
| |
| | |
from rockorager/zg:master into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/6
|
| | |\
| |/
|/| |
|
| | | |
|
| | | |
|
| |\ \
| | |
| | |
| | |
| | |
| | | |
rockorager/zg:master into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/5
|
| | | | |
|
| | |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| |/
|
|
|
|
| |
Use b.path everywhere in build.zig to make library compatible with zig
0.13.0. Also in 0.13.0, zig-cache was moved to .zig-cache. Update
.gitignore accordingly.
|
| | |
|
| |\
| |
| |
| |
| |
| | |
found' (#3) from rockorager/zg:vs-16 into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/3
|
| | |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |\ \
| |/
|/|
| |
| |
| | |
rockorager/zg:gb-state into master
Reviewed-on: https://codeberg.org/dude_the_builder/zg/pulls/2
|
| |/
|
|
|
|
| |
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.
|
| | |
|