| Commit message (Collapse) | Author | Age |
| ... | |
| |
|
|
|
|
|
| |
This commit ensures that 'num_params' is never incremented beyond
MAX_PARAMS. Additionally, an extra parameter is added to the
corresponding OSC test (17 params or MAX_PARAMS + 1) to ensure that the
proper behavior is tested.
|
| |
|
|
|
| |
To prevent a large CSI or DCS parameter from overflowing an i64, the
value is limited to i64::MAX
|
| |
|
|
|
|
| |
Previously, `osc_num_params` would be incremented when the final
parameter finished parsing, even if it was already at `MAX_PARAMS`. This
commit ensures that it is not incremented beyond `MAX_PARAMS`.
|
| |
|
|
|
| |
OSC parsing now handles UTF-8 arguments. 8-bit code support was dropped
to make supporting this easier.
|
| |
|
|
|
|
|
|
|
| |
The sequence \E[;4m previously produced a param list of [4], but the
expected result is [0, 4]. The semicolon indicated that a param has been
completed. Since no byte is specified, it should be zero.
This fixes an issue with the save/restore cursor test in vttest for
Alacritty.
|
| |
|
|
|
| |
An osc_dispatch with zero params would cause an underflow and index out
of bounds of self.osc_params.
|
| |
|
|
|
| |
Changelog has details, but this basically made OSC handling way easier
for dependents.
|
| |
|
|
|
| |
Apparently 0x07 is frequently used. Not handling this causes SSH prompts
to never appear!
|
| | |
|
| |
|
|
| |
Apparently byte character literals are a thing :).
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
|
|
|
|
|
| |
This adds a table-driven UTF-8 parser which only has a single branch for
the entire parser. UTF-8 support is essentially bolted onto the VTE
parser. Not the most elegant, but it does prevent the transition tables
from blowing up.
Instead of refactoring the syntax extension to handle both table
definitions, I've opted to copy/paste now for both simplicities sake and
because I can't see a clear path to a minimal shared solution.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Includes an example `parselog` which prints all of the actions a Parser
implementation is given the opportunity to handle. One way to test this
is to pipe vim into it:
vim | target/release/examples/parselog
And type `:q` to quit. Vim won't show up, but it still accepts input.
This version of the parser doesn't handle UTF-8. It's implemented as
described by http://vt100.net/emu/dec_ansi_parser which did not include
UTF-8 support.
Next steps are adding UTF-8 support.
|
| | |
|
| | |
|
| | |
|
| | |
|
| |
|
|
|
|
| |
When modifying table.rs.in, `cargo run` must be run in the `codegen`
crate. The result of expansion is included in the source tree so that
consumers don't need to pull in syntex just to compile.
|
| |
|