From 86443e03c641261458fd22f8b0ccbea913538edc Mon Sep 17 00:00:00 2001 From: Julian Noble Date: Mon, 18 Mar 2024 22:40:23 +1100 Subject: [PATCH] fix overtype to resolve commands in punk::lib --- src/bootsupport/modules/overtype-1.6.0.tm | 9 ++++++++- .../punk/mix/templates/layouts/project/src/make.tcl | 5 +++-- .../punk/mix/templates/layouts/project/src/make.tcl | 5 +++-- src/vendormodules/overtype-1.6.0.tm | 9 ++++++++- 4 files changed, 22 insertions(+), 6 deletions(-) diff --git a/src/bootsupport/modules/overtype-1.6.0.tm b/src/bootsupport/modules/overtype-1.6.0.tm index 22f4d065..877b398b 100644 --- a/src/bootsupport/modules/overtype-1.6.0.tm +++ b/src/bootsupport/modules/overtype-1.6.0.tm @@ -85,6 +85,8 @@ namespace eval overtype { namespace import ::punk::assertion::assert punk::assertion::active true + namespace path ::punk::lib + namespace export * variable default_ellipsis_horizontal "..." ;#fallback variable default_ellipsis_vertical "..." @@ -2219,7 +2221,7 @@ proc overtype::renderline {args} { set re_row_move {\x1b\[([0-9]*)(A|B)$} set re_both_move {\x1b\[([0-9]*)(?:;){0,1}([0-9]*)H$} ;# or "f" ? set re_vt_sequence {\x1b\[([0-9]*)(?:;){0,1}([0-9]*)~$} - set re_cursor_save {\x1b\[s$} + set re_cursor_save {\x1b\[s$} ;#note probable incompatibility with DECSLRM (set left right margin)! set re_cursor_restore {\x1b\[u$} set re_cursor_save_dec {\x1b7$} set re_cursor_restore_dec {\x1b8$} @@ -2230,6 +2232,9 @@ proc overtype::renderline {args} { #remap of DEC cursor_save/cursor_restore from ESC sequence to equivalent CSI #probably not ideal - consider putting cursor_save/cursor_restore in functions so they can be called from the appropriate switch branch instead of using this mapping #review - cost/benefit of function calls within these switch-arms instead of inline code? + + #todo - consider CSI s DECSLRM vs ansi.sys \x1b\[s - we need \x1b\[s for oldschool ansi art - but may have to enable only for that. + #we should probably therefore reverse this mapping so that x1b7 x1b8 are the primary codes for save/restore set code [string map [list \x1b7 \x1b\[s \x1b8 \x1b\[u ] $code] @@ -2497,6 +2502,8 @@ proc overtype::renderline {args} { break } s { + # - todo - make ansi.sys CSI s cursor save only apply for certain cases? - may need to support DECSLRM instead which uses same code + #$re_cursor_save #cursor save could come after last column if {$overflow_idx != -1 && $idx == $overflow_idx} { diff --git a/src/bootsupport/modules/punk/mix/templates/layouts/project/src/make.tcl b/src/bootsupport/modules/punk/mix/templates/layouts/project/src/make.tcl index 1bb0a460..f4eef65f 100644 --- a/src/bootsupport/modules/punk/mix/templates/layouts/project/src/make.tcl +++ b/src/bootsupport/modules/punk/mix/templates/layouts/project/src/make.tcl @@ -412,12 +412,13 @@ if {$::punkmake::command ne "project"} { exit 1 } - +file mkdir $projectroot/lib ;#needs to exist #only a single consolidated /modules folder used for target set target_modules_base $projectroot/modules file mkdir $target_modules_base + #external libs and modules first - and any supporting files - no 'building' required if {[file exists $sourcefolder/vendorlib]} { #exclude README.md from source folder - but only the root one @@ -777,7 +778,7 @@ foreach vfs $vfs_folders { } } } - #assertion $runtimes is a list of executable names suffixed with .exe if on windows - whether or not specified with .exe in the mapvfs.config + #assert $runtimes is a list of executable names suffixed with .exe if on windows - whether or not specified with .exe in the mapvfs.config #todo - non kit based - zipkit? diff --git a/src/modules/punk/mix/templates/layouts/project/src/make.tcl b/src/modules/punk/mix/templates/layouts/project/src/make.tcl index 1bb0a460..f4eef65f 100644 --- a/src/modules/punk/mix/templates/layouts/project/src/make.tcl +++ b/src/modules/punk/mix/templates/layouts/project/src/make.tcl @@ -412,12 +412,13 @@ if {$::punkmake::command ne "project"} { exit 1 } - +file mkdir $projectroot/lib ;#needs to exist #only a single consolidated /modules folder used for target set target_modules_base $projectroot/modules file mkdir $target_modules_base + #external libs and modules first - and any supporting files - no 'building' required if {[file exists $sourcefolder/vendorlib]} { #exclude README.md from source folder - but only the root one @@ -777,7 +778,7 @@ foreach vfs $vfs_folders { } } } - #assertion $runtimes is a list of executable names suffixed with .exe if on windows - whether or not specified with .exe in the mapvfs.config + #assert $runtimes is a list of executable names suffixed with .exe if on windows - whether or not specified with .exe in the mapvfs.config #todo - non kit based - zipkit? diff --git a/src/vendormodules/overtype-1.6.0.tm b/src/vendormodules/overtype-1.6.0.tm index 22f4d065..877b398b 100644 --- a/src/vendormodules/overtype-1.6.0.tm +++ b/src/vendormodules/overtype-1.6.0.tm @@ -85,6 +85,8 @@ namespace eval overtype { namespace import ::punk::assertion::assert punk::assertion::active true + namespace path ::punk::lib + namespace export * variable default_ellipsis_horizontal "..." ;#fallback variable default_ellipsis_vertical "..." @@ -2219,7 +2221,7 @@ proc overtype::renderline {args} { set re_row_move {\x1b\[([0-9]*)(A|B)$} set re_both_move {\x1b\[([0-9]*)(?:;){0,1}([0-9]*)H$} ;# or "f" ? set re_vt_sequence {\x1b\[([0-9]*)(?:;){0,1}([0-9]*)~$} - set re_cursor_save {\x1b\[s$} + set re_cursor_save {\x1b\[s$} ;#note probable incompatibility with DECSLRM (set left right margin)! set re_cursor_restore {\x1b\[u$} set re_cursor_save_dec {\x1b7$} set re_cursor_restore_dec {\x1b8$} @@ -2230,6 +2232,9 @@ proc overtype::renderline {args} { #remap of DEC cursor_save/cursor_restore from ESC sequence to equivalent CSI #probably not ideal - consider putting cursor_save/cursor_restore in functions so they can be called from the appropriate switch branch instead of using this mapping #review - cost/benefit of function calls within these switch-arms instead of inline code? + + #todo - consider CSI s DECSLRM vs ansi.sys \x1b\[s - we need \x1b\[s for oldschool ansi art - but may have to enable only for that. + #we should probably therefore reverse this mapping so that x1b7 x1b8 are the primary codes for save/restore set code [string map [list \x1b7 \x1b\[s \x1b8 \x1b\[u ] $code] @@ -2497,6 +2502,8 @@ proc overtype::renderline {args} { break } s { + # - todo - make ansi.sys CSI s cursor save only apply for certain cases? - may need to support DECSLRM instead which uses same code + #$re_cursor_save #cursor save could come after last column if {$overflow_idx != -1 && $idx == $overflow_idx} {