Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Sixel patch (gokcehan#1) * new struct type sixel * add sixel detection logic in printReg * new ShowSixels that prints sixels to the screen * placeholder function UnshowSixels * run `ui.ShowSixels` after `ui.screen.Sync` * fix sixel placed on wrong coordinates * change sixel termination sequence to prevent other escape sequence being run inside it * process multi-line sixel sequence * fixed bug where string before sixel image is not printed * add sixelDimPx and pxToCells * add getTermPixels for unix * remove unused method UnshowSixels * fix: remove unneeded ShowSixels * add new fields sixel.wPx,hPx and reg.sixels * modify sixel processing logic detecting sixels in preview script now fills corresponding area with braille blank `\u2800` and saves sixel to reg.sixels * modify sixel processing logic printReg doesn't process sixels directly anymore * reset sixels buffer at the start of `draw` * rename `ui.ShowSixels` to `showSixels` * add constants `gSixelBegin` and `gSixelTerminate` * add check to prevent arbitrary escape code being passed to stdin * fix cursor out of place in command line mode * fix bug where sixel in drawn at old location after horizontal resize * add ui.wPx and ui.hPx * buffer sixel sequences before printing * add check for valid terminal size(px) before previewing sixel * clean up * placeholder function getTermPixels for windows * function sixelDimPx now considers image size given in the optional raster attributes field * change sixel image alignment to emulate behavior of a terminal - images used to always draw on a new line - images is now placed where it starts: ``` printf 'abc <sixel sequence> xyz' ``` would result in: ``` abc +------+ | img | | here | +------+ xyz ``` old behavior: ``` abc +------+ | img | | here | +------+ xyz ``` * fix bug where raster attributes are wrongly parsed in sixelDimPx * prevent drawing sixels while menu is active * introduce sixelScreen struct and refactor screen width,height in px to use new struct * fix prevent nested sixel sequences * fix bug where rejected sixels cause indexing error * add "alternating filler" to trick tcell into redrawing when switching between different images * fix filler string wrongly indented * add comment * replace pxToCells() with sixelScreen.pxToCells() * add trim sixel height during preview * add tests for trimSixelHeight * prevent sixel redrawing during input prompts * change sixel filler to braille space * clean up * use strings.Index instead of regex for simple search * fix comment * refactor: remove nested if-block * refactor: move sixel related stuff into sixel.go * remove unused function * allow long lines from previewer * rework preview to accept only single-line sixels - multi-line support removed for simplicity in the code base * add new option `sixel` * add eval logic and completion of `sixel` option * doc: new option 'sixel' * refactor: use newSixelScreen() for init * fix bug where image is not always cleared * refactor: separate sixel tests * improved error handling * rename & comments for clarity * refactor: renderPreviewLine should not use gOpts * rename for clarity * fix: filler style changed more than needed The filler style now only changes when the file in preview is changed * rename * fix: forgot to rename this * increase max line size * remove unneeded reassignment * fix position of multiple sixel on same line * refactor: extract code into function * update docs * reorder variable * remove unneeded var * avoid unneeded ioctl calls * fixup! fix typo * rework/simplify previewing sixels Remove support for multiple sixels on the same line, and the line must start with 'ESC P' to be considered a sixel. * separate sixel detection logic from text scanning * rework: stricter sixel validation and remove trimming * revert unneeded changes * strip validation logic * refactor: use singular sixel instead of slice multiple sixel preview is no longer supported * fix: bug where first 2 char of non-sixel is missing * docs: fix wrong option type * set sixelScreen.wpx, hpx to 0 on error * remove terminal px size * fix: bug where quitting might leave terminal in bold cleanup * update docs * remove unneeded sixel type * cleanup unused func argument * cleanup unneeded function * refactor: more readable Co-authored-by: Joe Lim <50560759+joelim-work@users.noreply.github.com> * cleanup unneeded var * cleanup unneeded constructor * cleanup unused func arg --------- Co-authored-by: Joe Lim <50560759+joelim-work@users.noreply.github.com>
- Loading branch information