diff --git a/src/doc/_module_overtype-1.5.1.tm.man b/src/doc/_module_overtype-1.5.1.tm.man new file mode 100644 index 00000000..4dc93cce --- /dev/null +++ b/src/doc/_module_overtype-1.5.1.tm.man @@ -0,0 +1,27 @@ +[comment {--- punk::docgen generated from inline doctools comments ---}] +[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] +[comment {--- punk::docgen overwrites this file ---}] +[manpage_begin overtype_module_overtype 0 1.5.1] +[copyright "2024"] +[titledesc {overtype text layout - ansi aware}] [comment {-- Name section and table of contents description --}] +[moddesc {overtype text layout}] [comment {-- Description at end of page heading --}] +[require overtype] +[keywords module text ansi] +[description] +[para] - +[section Overview] +[para] overview of overtype +[subsection Concepts] +[para] - +[subsection dependencies] +[para] packages used by overtype +[list_begin itemized] +[item] [package {Tcl 8.6}] +[item] [package textutil] +[item] [package punk::ansi] +[para] - required to detect, split, strip and calculate lengths of text possibly containing ansi codes +[item] [package punk::char] +[para] - box drawing - and also unicode character width determination for proper layout of text with double-column-width chars +[list_end] +[section API] +[manpage_end] diff --git a/src/doc/_module_overtype-1.5.2.tm.man b/src/doc/_module_overtype-1.5.2.tm.man new file mode 100644 index 00000000..799d6a78 --- /dev/null +++ b/src/doc/_module_overtype-1.5.2.tm.man @@ -0,0 +1,27 @@ +[comment {--- punk::docgen generated from inline doctools comments ---}] +[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] +[comment {--- punk::docgen overwrites this file ---}] +[manpage_begin overtype_module_overtype 0 1.5.2] +[copyright "2024"] +[titledesc {overtype text layout - ansi aware}] [comment {-- Name section and table of contents description --}] +[moddesc {overtype text layout}] [comment {-- Description at end of page heading --}] +[require overtype] +[keywords module text ansi] +[description] +[para] - +[section Overview] +[para] overview of overtype +[subsection Concepts] +[para] - +[subsection dependencies] +[para] packages used by overtype +[list_begin itemized] +[item] [package {Tcl 8.6}] +[item] [package textutil] +[item] [package punk::ansi] +[para] - required to detect, split, strip and calculate lengths of text possibly containing ansi codes +[item] [package punk::char] +[para] - box drawing - and also unicode character width determination for proper layout of text with double-column-width chars +[list_end] +[section API] +[manpage_end] diff --git a/src/doc/_module_overtype-1.5.3.tm.man b/src/doc/_module_overtype-1.5.3.tm.man new file mode 100644 index 00000000..25c579d6 --- /dev/null +++ b/src/doc/_module_overtype-1.5.3.tm.man @@ -0,0 +1,27 @@ +[comment {--- punk::docgen generated from inline doctools comments ---}] +[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] +[comment {--- punk::docgen overwrites this file ---}] +[manpage_begin overtype_module_overtype 0 1.5.3] +[copyright "2024"] +[titledesc {overtype text layout - ansi aware}] [comment {-- Name section and table of contents description --}] +[moddesc {overtype text layout}] [comment {-- Description at end of page heading --}] +[require overtype] +[keywords module text ansi] +[description] +[para] - +[section Overview] +[para] overview of overtype +[subsection Concepts] +[para] - +[subsection dependencies] +[para] packages used by overtype +[list_begin itemized] +[item] [package {Tcl 8.6}] +[item] [package textutil] +[item] [package punk::ansi] +[para] - required to detect, split, strip and calculate lengths of text possibly containing ansi codes +[item] [package punk::char] +[para] - box drawing - and also unicode character width determination for proper layout of text with double-column-width chars +[list_end] +[section API] +[manpage_end] diff --git a/src/doc/punk/_module_ansi-0.1.0.tm.man b/src/doc/punk/_module_ansi-0.1.0.tm.man new file mode 100644 index 00000000..49951ec3 --- /dev/null +++ b/src/doc/punk/_module_ansi-0.1.0.tm.man @@ -0,0 +1,127 @@ +[comment {--- punk::docgen generated from inline doctools comments ---}] +[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] +[comment {--- punk::docgen overwrites this file ---}] +[manpage_begin punkshell_module_punk::ansi 0 0.1.0] +[copyright "2023"] +[titledesc {Ansi string functions}] [comment {-- Name section and table of contents description --}] +[moddesc {punk Ansi library}] [comment {-- Description at end of page heading --}] +[require punk::ansi] +[keywords module ansi terminal console string] +[description] +[para]Ansi based terminal control string functions +[para]See [package punk::ansi::console] for related functions for controlling a console +[section Overview] +[para] overview of punk::ansi +[para]punk::ansi functions return their values - no implicit emission to console/stdout +[subsection Concepts] +[para]Ansi codes can be used to control most terminals on most platforms in an 'almost' standard manner +[para]There are many differences in terminal implementations - but most should support a core set of features +[para]punk::ansi does not contain any code for direct terminal manipulation via the local system APIs. +[para]Sticking to ansi codes where possible may be better for cross-platform and remote operation where such APIs are unlikely to be useable. +[subsection dependencies] +[para] packages used by punk::ansi +[list_begin itemized] +[item] [package {Tcl 8.6}] +[list_end] +[section API] +[subsection {Namespace punk::ansi}] +[para] Core API functions for punk::ansi +[list_begin definitions] +[call [fun stripansi] [arg text] ] +[para]Return a string with ansi codes stripped out +[call [fun a?] [opt {ansicode...}]] +[para]Return an ansi string representing a table of codes and a panel showing the colours +[call [fun a+] [opt {ansicode...}]] +[para]Returns the ansi code to apply those from the supplied list - without any reset being performed first +[para] e.g to set foreground red and bold +[para]punk::ansi::a red bold +[para]to set background red +[para]punk::ansi::a Red +[para]see [cmd punk::ansi::a?] to display a list of codes +[call [fun a] [opt {ansicode...}]] +[para]Returns the ansi code to reset any current settings and apply those from the supplied list +[para] by calling punk::ansi::a with no arguments - the result is a reset to plain text +[para] e.g to set foreground red and bold +[para]punk::ansi::a red bold +[para]to set background red +[para]punk::ansi::a Red +[para]see [cmd punk::ansi::a?] to display a list of codes +[call [fun get_code_name] [arg code]] +[para]for example +[para] get_code_name red will return 31 +[para] get_code_name 31 will return red +[call [fun reset]] +[para]reset console +[call [fun reset_soft]] +[call [fun reset_colour]] +[para]reset colour only +[call [fun clear]] +[call [fun clear_above]] +[call [fun clear_below]] +[call [fun cursor_on]] +[call [fun cursor_off]] +[call [fun move] [arg row] [arg col]] +[para]Return an ansi sequence to move to row,col +[para]aka cursor home +[call [fun move_emit] [arg row] [arg col] [arg data] [opt {row col data...}]] +[para]Return an ansi string representing a move to row col with data appended +[para]row col data can be repeated any number of times to return a string representing the output of the data elements at all those points +[para]Compare to punk::console::move_emit which calls this function - but writes it to stdout +[para]punk::console::move_emit_return will also return the cursor to the original position +[para]There is no punk::ansi::move_emit_return because in a standard console there is no ansi string which can represent a jump back to starting position. +[para]There is an ansi code to write the current cursor position to stdin (which will generally display on the console) - this is not quite the same thing. +[para]punk::console::move_emit_return does it by emitting that code and starting a loop to read stdin +[para]punk::ansi could implement a move_emit_return using the punk::console mechanism - but the resulting string would capture the cursor position at the time the string is built - which is not necessarily when the string is used. +[para]The following example shows how to do this manually, emitting the string blah at screen position 10,10 and emitting DONE back at the line we started: +[para][example {punk::ansi::move_emit 10 10 blah {*}[punk::console::get_cursor_pos_list] DONE}] +[para]A string created by any move_emit_return for punk::ansi would not behave in an intuitive manner compared to other punk::ansi move functions - so is deliberately omitted. +[call [fun move_forward] [arg n]] +[call [fun move_back] [arg n]] +[call [fun move_up] [arg n]] +[call [fun move_down] [arg n]] +[call [fun erase_line]] +[call [fun erase_sol]] +[para]Erase to start of line, leaving cursor position alone. +[call [fun erase_eol]] +[call [fun cursor_pos]] +[para]cursor_pos unlikely to be useful on it's own like this as when written to the terminal, this sequence causes the terminal to emit the row;col sequence to stdin +[para]The output on screen will look something like ^[lb][lb]47;3R +[para]Use punk::console::get_cursor_pos or punk::console::get_cursor_pos_list instead. +[para]These functions will emit the code - but read it in from stdin so that it doesn't display, and then return the row and column as a colon-delimited string or list respectively. +[para]The punk::ansi::cursor_pos function is used by punk::console::get_cursor_pos and punk::console::get_cursor_pos_list +[call [fun titleset] [arg windowtitles]] +[para]Returns the code to set the title of the terminal window to windowtitle +[para]This may not work on terminals which have multiple panes/windows +[list_end] [comment {--- end definitions namespace punk::ansi ---}] +[subsection {Namespace punk::ansi::ta}] +[para] text ansi functions +[para] based on but not identical to the Perl Text Ansi module: +[para] https://github.com/perlancar/perl-Text-ANSI-Util/blob/master/lib/Text/ANSI/BaseUtil.pm +[list_begin definitions] +[call [fun detect] [arg text]] +[para]Return a boolean indicating whether Ansi codes were detected in text +[para] +[call [fun detect_csi] [arg text]] +[para]Return a boolean indicating whether an Ansi Control Sequence Introducer (CSI) was detected in text +[para]The csi is often represented in code as \x1b or \033 followed by a left bracket [lb] +[para]The initial byte or escape is commonly referenced as ESC in Ansi documentation +[para]There is also a multi-byte escape sequence \u009b +[para]This is less commonly used but is also detected here +[para](This function is not in perl ta) +[call [fun detect_sgr] [arg text]] +[para]Return a boolean indicating whether an ansi Select Graphics Rendition code was detected. +[para]This is the set of CSI sequences ending in 'm' +[para]This is most commonly an Ansi colour code - but also things such as underline and italics +[para]An SGR with empty or a single zero argument is a reset of the SGR features - this is also detected. +[para](This function is not in perl ta) +[call [fun strip] [arg text]] +[para]Return text stripped of Ansi codes +[para]This is a tailcall to punk::ansi::stripansi +[call [fun length] [arg text]] +[para]Return the character length after stripping ansi codes - not the printing length +[list_end] [comment {--- end definitions namespace punk::ansi::ta ---}] +[subsection {Namespace punk::ansi::ansistring}] +[para]punk::ansi::string ensemble +[list_begin definitions] +[list_end] [comment {--- end definitions namespace punk::ansi::ta ---}] +[manpage_end] diff --git a/src/doc/punk/_module_args-0.1.0.tm.man b/src/doc/punk/_module_args-0.1.0.tm.man new file mode 100644 index 00000000..5056c91d --- /dev/null +++ b/src/doc/punk/_module_args-0.1.0.tm.man @@ -0,0 +1,87 @@ +[comment {--- punk::docgen generated from inline doctools comments ---}] +[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] +[comment {--- punk::docgen overwrites this file ---}] +[manpage_begin punkshell_module_punk::args 0 0.1.0] +[copyright "2024"] +[titledesc {args parsing}] [comment {-- Name section and table of contents description --}] +[moddesc {args to option-value dict and values dict}] [comment {-- Description at end of page heading --}] +[require punk::args] +[keywords module proc args arguments parse] +[description] +[para]Utilities for parsing proc args +[section Overview] +[para] overview of punk::args +[subsection Concepts] +[para]There are 2 main conventions for parsing a proc args list +[list_begin enumerated] +[enum] +[para]leading option-value pairs followed by a list of values (Tk style) +[enum] +[para]leading list of values followed by option-value pairs (Tcl style) +[list_end] +[para]punk::args is focused on the 1st convention (Tk style): parsing of args in leading option-value pair style - even for non-Tk usage. +[para]The proc can still contain some leading required values e.g [example "proc dostuff {arg1 arg2 args} {...}}"] +[para]but having the core values elements at the end of args is more generally useful - especially in cases where the number of trailing values is unknown and/or the proc is to be called in a functional 'pipeline' style. +[para]The basic principle is that a call to punk::args::opts_vals is made near the beginning of the proc e.g +[example_begin] + proc dofilestuff {args} { + lassign [lb]dict values [lb]punk::args { + -directory -default "" + -translation -default binary + } $args[rb][rb] opts values + + puts "translation is [lb]dict get $opts -translation[rb]" + foreach f [lb]dict values $values[rb] { + puts "doing stuff with file: $f" + } + } +[example_end] +[subsection Notes] +[para]There are alternative args parsing packages such as: +[list_begin enumerated] +[enum]argp +[enum]The tcllib set of TEPAM modules +[para]TEPAM requires an alternative procedure declaration syntax instead of proc - but has support for Tk and documentation generation. +[list_end] +[para]punk::args was designed initially without specific reference to TEPAM - and to handle some edge cases in specific projects where TEPAM wasn't suitable. +[para]In subsequent revisions of punk::args - some features were made to operate in a way that is similar to TEPAM - to avoid gratuitous differences where possible, but of course there are differences +[para]and those used TEPAM or mixing TEPAM and punk::args should take care to assess the differences. +[para]TEPAM is a mature solution and is widely available as it is included in tcllib. +[para]Serious consideration should be given to using TEPAM if suitable for your project. +[subsection dependencies] +[para] packages used by punk::args +[list_begin itemized] +[item] [package {Tcl 8.6}] +[list_end] +[section API] +[subsection {Namespace punk::args::class}] +[para] class definitions +[list_begin enumerated] +[list_end] [comment {--- end class enumeration ---}] +[subsection {Namespace punk::args}] +[para] Core API functions for punk::args +[list_begin definitions] +[call [fun opts_values] [arg optionspecs] [arg rawargs] [opt {option value...}]] +[para]Parse rawargs as a sequence of zero or more option-value pairs followed by zero or more values +[para]Returns a dict of the form: opts values +[para]ARGUMENTS: +[list_begin arguments] +[arg_def multiline-string optionspecs] +[para] This a block of text with records delimited by newlines (lf or crlf) - but with multiline values allowed if properly quoted/braced +[para]'info complete' is used to determine if a record spans multiple lines due to multiline values +[para]Each optionspec line must be of the form: +[para]-optionname -key val -key2 val2... +[para]where the valid keys for each option specification are: -default -type -range -choices -optional +[arg_def list rawargs] +[para] This is a list of the arguments to parse. Usually it will be the \$args value from the containing proc +[list_end] +[para] +[list_end] [comment {--- end definitions namespace punk::args ---}] +[subsection {Namespace punk::args::lib}] +[para] Secondary functions that are part of the API +[list_begin definitions] +[list_end] [comment {--- end definitions namespace punk::args::lib ---}] +[section Internal] +[subsection {Namespace punk::args::system}] +[para] Internal functions that are not part of the API +[manpage_end] diff --git a/src/doc/punk/_module_char-0.1.0.tm.man b/src/doc/punk/_module_char-0.1.0.tm.man new file mode 100644 index 00000000..83543ba7 --- /dev/null +++ b/src/doc/punk/_module_char-0.1.0.tm.man @@ -0,0 +1,27 @@ +[comment {--- punk::docgen generated from inline doctools comments ---}] +[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] +[comment {--- punk::docgen overwrites this file ---}] +[manpage_begin punkshell_module_punk::char 0 0.1.0] +[copyright "2024"] +[titledesc {character-set and unicode utilities}] [comment {-- Name section and table of contents description --}] +[moddesc {character-set nad unicode}] [comment {-- Description at end of page heading --}] +[require punk::char] +[keywords module encodings] +[description] +[section Overview] +[para] overview of punk::char +[subsection Concepts] +[para] - +[subsection dependencies] +[para] packages used by punk::char +[list_begin itemized] +[item] [package {Tcl 8.6}] +[item] [package {overtype}] +[para] - +[item] [package {textblock}] +[para] - +[item] [package console] +[para] - +[list_end] +[section API] +[manpage_end] diff --git a/src/doc/punk/_module_encmime-0.1.0.tm.man b/src/doc/punk/_module_encmime-0.1.0.tm.man new file mode 100644 index 00000000..dfbee3e3 --- /dev/null +++ b/src/doc/punk/_module_encmime-0.1.0.tm.man @@ -0,0 +1,55 @@ +[comment {--- punk::docgen generated from inline doctools comments ---}] +[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] +[comment {--- punk::docgen overwrites this file ---}] +[manpage_begin punkshell_module_punk::encmime 0 0.1.0] +[copyright "2024"] +[titledesc {mime encodings related subset of tcllib mime}] [comment {-- Name section and table of contents description --}] +[moddesc {mime encoding names and aliases}] [comment {-- Description at end of page heading --}] +[require punk::encmime] +[keywords module encodings] +[description] +[para] This is a workaround package to provide the mime encoding names used in tcllib's mime package - without additional dependencies +[para]tcllib mime loads either Trf or tcl::memchan functions. punk::encmime needs to work in a context where tcllib may not yet be loaded/available, and even these few dependencies are too much. +[para]MAINTENANCE NOTE: The data in this module needs to be checked against the latest tcllib mime package +[para]taken from tcllib mime version: 1.7.2 in 2024 +[section Overview] +[para] overview of punk::encmime +[subsection Concepts] +[para] Where practical - the actual tcllib mime package should be used instead. +[para]This set of encoding related functions is a snapshot of the data from the mime package - and may not be up to date. +[para]This pseudo-package was created to minimize dependencies for punk::char and punk::overtype +[subsection dependencies] +[para] packages used by punk::encmime +[list_begin itemized] +[item] [package {Tcl 8.6}] +[list_end] +[section API] +[subsection {Namespace punk::encmime::class}] +[para] class definitions +[list_begin enumerated] +[list_end] [comment {--- end class enumeration ---}] +[subsection {Namespace punk::encmime}] +[para] Core API functions for punk::encmime +[list_begin definitions] +[call mapencoding [arg enc]] +[para]maps tcl encodings onto the proper names for their MIME charset type. +[para]This is only done for encodings whose charset types were known. +[para]The remaining encodings return {} for now. +[para]NOTE: consider using tcllib's mime::mapencoding instead if mime package available +[call reversemapencoding [arg mimeType]] +[para]mime::reversemapencodings maps MIME charset types onto tcl encoding names. +[para]Returns the tcl encoding name for the specified mime charset, or {} if none is known +[para] Arguments: + [list_begin arguments] + [arg_def string mimeType] The MIME charset to convert into a tcl encoding type. + [list_end] +[para]NOTE: consider using tcllib's mime::reversemapencoding instead if mime package available +[list_end] [comment {--- end definitions namespace punk::encmime ---}] +[subsection {Namespace punk::encmime::lib}] +[para] Secondary functions that are part of the API +[list_begin definitions] +[list_end] [comment {--- end definitions namespace punk::encmime::lib ---}] +[section Internal] +[subsection {Namespace punk::encmime::system}] +[para] Internal functions that are not part of the API +[manpage_end] diff --git a/src/doc/punk/_module_fileline-0.1.0.tm.man b/src/doc/punk/_module_fileline-0.1.0.tm.man index 89bf6c34..88f93d49 100644 --- a/src/doc/punk/_module_fileline-0.1.0.tm.man +++ b/src/doc/punk/_module_fileline-0.1.0.tm.man @@ -6,14 +6,16 @@ [titledesc {file line-handling utilities}] [comment {-- Name section and table of contents description --}] [moddesc {punk fileline}] [comment {-- Description at end of page heading --}] [require punk::fileline] -[keywords module text parse file] +[keywords module text parse file encoding BOM] [description] [para] - [section Overview] [para]Utilities for in-memory analysis of text file data as both line data and byte/char-counted data whilst preserving the line-endings (even if mixed) [para]This is important for certain text files where examining the number of chars/bytes is important [para]For example - windows .cmd/.bat files need some byte counting to determine if labels lie on chunk boundaries and need to be moved. -[para]Despite including the word 'file', the library doesn't deal with reading/writing to the filesystem. It is for operating on text-file like data. +[para]This chunk-size counting will depend on the character encoding. +[para]Despite including the word 'file', the library doesn't necessarily deal with reading/writing to the filesystem - +[para]The raw data can be supplied as a string, or loaded from a file using punk::fileline::get_textinfo -file [subsection Concepts] [para]A chunk of textfile data (possibly representing a whole file - but usually at least a complete set of lines) is loaded into a punk::fileline::class::textinfo instance at object creation. [example_begin] @@ -32,6 +34,7 @@ [para] packages needed by punk::fileline [list_begin itemized] [item] [package {Tcl 8.6}] +[item] [package {punk::args}] [list_end] [comment {- end dependencies list -}] [subsection {optional dependencies}] [para] packages that add functionality but aren't strictly required @@ -147,6 +150,19 @@ or [subsection {Namespace punk::fileline}] [para] Core API functions for punk::fileline [list_begin definitions] +[call get_textinfo [opt {option value...}] [opt datachunk]] +[para]Returns textinfo object instance representing data in string datachunk or if -file filename supplied - data loaded from a file +[para]The encoding used is as specified in the -encoding option - or from the Byte Order Mark (bom) at the beginning of the data +[para]For Tcl 8.6 - encodings such as utf-16le may not be available - so the bytes are swapped appropriately depending on the platform byteOrder and encoding 'unicode' is used. +[para]encoding defaults to utf-8 if no -encoding specified and no BOM was found +[para]Specify -encoding binary to perform no encoding conversion +[para]Whether -encoding was specified or not - by default the BOM characters are not retained in the line-data +[para]If -includebom 1 is specified - the bom will be retained in the stored chunk and the data for line 1, but will undergo the same encoding transformation as the rest of the data +[para]The get_bomid method of the returned object will contain an identifier for any BOM encountered. +[para] e.g utf-8,utf-16be, utf-16le, utf-32be, utf32-le, SCSU, BOCU-1,GB18030, UTF-EBCDIC, utf-1, utf-7 +[para]If the encoding specified in the BOM isn't recognised by Tcl - the resulting data is likely to remain as the raw bytes (binary translation) +[para]Currently only utf-8, utf-16* and utf-32* are properly supported even though the other BOMs are detected, reported via get_bomid, and stripped from the data. +[para]GB18030 falls back to cp936/gbk (unless a gb18030 encoding has been installed). Use -encoding binary if this isn't suitable and you need to do your own processing of the raw data. [list_end] [comment {--- end definitions namespace punk::fileline ---}] [subsection {Namespace punk::fileline::lib}] [para] Secondary functions that are part of the API diff --git a/src/doc/punk/_module_flib-0.1.0.tm.man b/src/doc/punk/_module_flib-0.1.0.tm.man index b402c8d3..44fdaae4 100644 --- a/src/doc/punk/_module_flib-0.1.0.tm.man +++ b/src/doc/punk/_module_flib-0.1.0.tm.man @@ -1,22 +1,23 @@ [comment {--- punk::docgen generated from inline doctools comments ---}] [comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] [comment {--- punk::docgen overwrites this file ---}] -[manpage_begin shellspy_module_punk::flib 0 0.1.0] +[manpage_begin punkshell_module_punk::flib 0 0.1.0] [copyright "2024"] -[titledesc {Module API}] [comment {-- Name section and table of contents description --}] -[moddesc {-}] [comment {-- Description at end of page heading --}] +[titledesc {flib experimental}] [comment {-- Name section and table of contents description --}] +[moddesc {experimental pattern library}] [comment {-- Description at end of page heading --}] [require punk::flib] -[keywords module] +[keywords module experimental] [description] -[para] - +[para] Experimental [section Overview] [para] overview of punk::flib [subsection Concepts] -[para] - +[para] Experiments in functional program related features and integration with the pattern library [subsection dependencies] [para] packages used by punk::flib [list_begin itemized] [item] [package {Tcl 8.6}] +[item] [package {pattern 1.2.4}] [list_end] [section API] [subsection {Namespace punk::flib::class}] diff --git a/src/doc/punk/_module_lib-0.1.0.tm.man b/src/doc/punk/_module_lib-0.1.0.tm.man new file mode 100644 index 00000000..3fe4d7c1 --- /dev/null +++ b/src/doc/punk/_module_lib-0.1.0.tm.man @@ -0,0 +1,125 @@ +[comment {--- punk::docgen generated from inline doctools comments ---}] +[comment {--- punk::docgen DO NOT EDIT DOCS HERE UNLESS YOU REMOVE THESE COMMENT LINES ---}] +[comment {--- punk::docgen overwrites this file ---}] +[manpage_begin punkshell_module_punk::lib 0 0.1.0] +[copyright "2024"] +[titledesc {punk general utility functions}] [comment {-- Name section and table of contents description --}] +[moddesc {punk library}] [comment {-- Description at end of page heading --}] +[require punk::lib] +[keywords module utility lib] +[description] +[para]This is a set of utility functions that are commonly used across punk modules or are just considered to be general-purpose functions. +[para]The base set includes string and math functions but has no specific theme +[section Overview] +[para] overview of punk::lib +[subsection Concepts] +[para]The punk::lib modules should have no strong dependencies other than Tcl +[para]Dependendencies that only affect display or additional functionality may be included - but should fail gracefully if not present, and only when a function is called that uses one of these soft dependencies. +[para]This requirement for no strong dependencies, means that many utility functions that might otherwise seem worthy of inclusion here are not present. +[subsection dependencies] +[para] packages used by punk::lib +[list_begin itemized] +[item] [package {Tcl 8.6}] +[list_end] +[section API] +[subsection {Namespace punk::lib::class}] +[para] class definitions +[list_begin enumerated] +[list_end] [comment {--- end class enumeration ---}] +[subsection {Namespace punk::lib}] +[para] Core API functions for punk::lib +[list_begin definitions] +[call [fun K] [arg x] [arg y]] +[para]The K-combinator function - returns the first argument, x and discards y +[para]see [uri https://wiki.tcl-lang.org/page/K] +[para]It is used in cases where command-substitution at the calling-point performs some desired effect. +[call [fun hex2dec] [opt {option value...}] [arg list_largeHex]] +[para]Convert a list of (possibly large) unprefixed hex strings to their decimal values +[para]hex2dec accepts and ignores internal underscores in the same manner as Tcl 8.7+ numbers e.g hex2dec FF_FF returns 65535 +[para]Leading and trailing underscores are ignored as a matter of implementation convenience - but this shouldn't be relied upon. +[para]Leading or trailing whitespace in each list member is allowed e.g hex2dec " F" returns 15 +[para]Internal whitespace e.g "F F" is not permitted - but a completely empty element "" is allowed and will return 0 +[call [fun dex2hex] [opt {option value...}] [arg list_decimals]] +[para]Convert a list of decimal integers to a list of hex values +[para] -width can be used to make each hex value at least int characters wide, with leading zeroes. +[para] -case upper|lower determines the case of the hex letters in the output +[call [fun log2] [arg x]] +[para]log base2 of x +[para]This uses a 'live' proc body - the divisor for the change of base is computed once at definition time +[para](courtesy of RS [uri https://wiki.tcl-lang.org/page/Additional+math+functions]) +[call [fun logbase] [arg b] [arg x]] +[para]log base b of x +[para]This function uses expr's natural log and the change of base division. +[para]This means for example that we can get results like: logbase 10 1000 = 2.9999999999999996 +[para]Use expr's log10() function or tcl::mathfunc::log10 for base 10 +[call [fun factors] [arg x]] +[para]Return a sorted list of the positive factors of x where x > 0 +[para]For x = 0 we return only 0 and 1 as technically any number divides zero and there are an infinite number of factors. (including zero itself in this context)* +[para]This is a simple brute-force implementation that iterates all numbers below the square root of x to check the factors +[para]Because the implementation is so simple - the performance is very reasonable for numbers below at least a few 10's of millions +[para]See tcllib math::numtheory::factors for a more complex implementation - which seems to be slower for 'small' numbers +[para]Comparisons were done with some numbers below 17 digits long +[para]For seriously big numbers - this simple algorithm would no doubt be outperformed by more complex algorithms. +[para]The numtheory library stores some data about primes etc with each call - so may become faster when being used on more numbers +but has the disadvantage of being slower for 'small' numbers and using more memory. +[para]If the largest factor below x is needed - the greatestOddFactorBelow and GreatestFactorBelow functions are a faster way to get there than computing the whole list, even for small values of x +[para]* Taking x=0; Notion of x being divisible by integer y being: There exists an integer p such that x = py +[para] In other mathematical contexts zero may be considered not to divide anything. +[call [fun oddFactors] [arg x]] +[para]Return a list of odd integer factors of x, sorted in ascending order +[call [fun greatestFactorBelow] [arg x]] +[para]Return the largest factor of x excluding itself +[para]factor functions can be useful for console layout calculations +[para]See Tcllib math::numtheory for more extensive implementations +[call [fun greatestOddFactorBelow] [arg x]] +[para]Return the largest odd integer factor of x excluding x itself +[call [fun greatestOddFactor] [arg x]] +[para]Return the largest odd integer factor of x +[para]For an odd value of x - this will always return x +[call [fun gcd] [arg n] [arg m]] +[para]Return the greatest common divisor of m and n +[para]Straight from Lars Hellström's math::numtheory library in Tcllib +[para]Graphical use: +[para]An a by b rectangle can be covered with square tiles of side-length c, +[para]only if c is a common divisor of a and b +[call [fun gcd] [arg n] [arg m]] +[para]Return the lowest common multiple of m and n +[para]Straight from Lars Hellström's math::numtheory library in Tcllib +[para] +[call [fun commonDivisors] [arg x] [arg y]] +[para]Return a list of all the common factors of x and y +[para](equivalent to factors of their gcd) +[call [fun hasglobs] [arg str]] +[para]Return a boolean indicating whether str contains any of the glob characters: * ? [lb] [rb] +[para]hasglobs uses append to preserve Tcls internal representation for str - so it should help avoid shimmering in the few cases where this may matter. +[call [fun trimzero] [arg number]] +[para]Return number with left-hand-side zeros trimmed off - unless all zero +[para]If number is all zero - a single 0 is returned +[call [fun substring_count] [arg str] [arg substring]] +[para]Search str and return number of occurrences of substring +[call [fun dict_merge_ordered] [arg defaults] [arg main]] +[para]The standard dict merge accepts multiple dicts with values from dicts to the right (2nd argument) taking precedence. +[para]When merging with a dict of default values - this means that any default key/vals that weren't in the main dict appear in the output before the main data. +[para]This function merges the two dicts whilst maintaining the key order of main followed by defaults. +[call [fun askuser] [arg question]] +[para]A very basic utility to read an answer from stdin +[para]The prompt is written to the terminal and then it waits for a user to type something +[para]stdin is temporarily configured to blocking and then put back in its original state in case it wasn't already so. +[para]The user must hit enter to submit the response +[para]The return value is the string if any that was typed prior to hitting enter. +[para]The question argument can be manually colourised using the various punk::ansi funcitons +[example_begin] + set answer [lb]punk::lib::askuser "[lb]a+ green bold[rb]Do you want to proceed? (Y|N)[lb]a[rb]"[rb] + if {[lb]string match y* [lb]string tolower $answer[rb][rb]} { + puts "Proceeding" + } else { + puts "Cancelled by user" + } +[example_end] +[list_end] [comment {--- end definitions namespace punk::lib ---}] +[section Internal] +[subsection {Namespace punk::lib::system}] +[para] Internal functions that are not part of the API +[list_begin definitions] +[list_end] [comment {--- end definitions namespace punk::lib::system ---}] +[manpage_end] diff --git a/src/doc/punk/_module_path-0.1.0.tm.man b/src/doc/punk/_module_path-0.1.0.tm.man index e9154899..3f85739d 100644 --- a/src/doc/punk/_module_path-0.1.0.tm.man +++ b/src/doc/punk/_module_path-0.1.0.tm.man @@ -45,8 +45,13 @@ [para] If -nocase is not supplied - default to case sensitive *except for driveletter* [para] ie - the driveletter alone in paths such as c:/etc will still be case insensitive. (ie c:/ETC/* will match C:/ETC/blah but not C:/etc/blah) [para] Explicitly specifying -nocase 0 will require the entire case to match including the driveletter. -[call [fun treefilenames] [arg basepath] [arg tailglob] [opt {option value...}]] -[para]basic (glob based) list of filenames matching tailglob - recursive +[call [fun treefilenames] [opt {option value...}] [opt {globpattern...}]] +[para]basic (glob based) list of filenames matching each pattern in tailglobs - recursive +[para] options: +[para] [opt -dir] +[para] defaults to [lb]pwd[rb] - base path for tree to search +[para] [opt -antiglob_paths] +[para] list of path patterns to exclude - may include * and ** path segments e.g /usr/** [para]no natsorting - so order is dependent on filesystem [call [fun relative] [arg reference] [arg location]] [para] Taking two directory paths, a reference and a location, computes the path diff --git a/src/doc/punk/mix/commandset/_module_project-0.1.0.tm.man b/src/doc/punk/mix/commandset/_module_project-0.1.0.tm.man index b4cb7dad..5dec0e9e 100644 --- a/src/doc/punk/mix/commandset/_module_project-0.1.0.tm.man +++ b/src/doc/punk/mix/commandset/_module_project-0.1.0.tm.man @@ -3,8 +3,8 @@ [comment {--- punk::docgen overwrites this file ---}] [manpage_begin punkshell_module_punk::mix::commandset::project 0 0.1.0] [copyright "2023"] -[titledesc {pmix commandset - project}] [comment {-- Name section and table of contents description --}] -[moddesc {pmix CLI commandset - project}] [comment {-- Description at end of page heading --}] +[titledesc {dec commandset - project}] [comment {-- Name section and table of contents description --}] +[moddesc {deck CLI commandset - project}] [comment {-- Description at end of page heading --}] [require punk::mix::commandset::project] [description] [section Overview] diff --git a/src/embedded/man/files/_module_overtype-1.5.1.tm.n b/src/embedded/man/files/_module_overtype-1.5.1.tm.n new file mode 100644 index 00000000..7e2eec72 --- /dev/null +++ b/src/embedded/man/files/_module_overtype-1.5.1.tm.n @@ -0,0 +1,312 @@ +'\" +'\" Generated from file '_module_overtype-1\&.5\&.1\&.tm\&.man' by tcllib/doctools with format 'nroff' +'\" Copyright (c) 2024 +'\" +.TH "overtype_module_overtype" 0 1\&.5\&.1 doc "overtype text layout" +.\" The -*- nroff -*- definitions below are for supplemental macros used +.\" in Tcl/Tk manual entries. +.\" +.\" .AP type name in/out ?indent? +.\" Start paragraph describing an argument to a library procedure. +.\" type is type of argument (int, etc.), in/out is either "in", "out", +.\" or "in/out" to describe whether procedure reads or modifies arg, +.\" and indent is equivalent to second arg of .IP (shouldn't ever be +.\" needed; use .AS below instead) +.\" +.\" .AS ?type? ?name? +.\" Give maximum sizes of arguments for setting tab stops. Type and +.\" name are examples of largest possible arguments that will be passed +.\" to .AP later. If args are omitted, default tab stops are used. +.\" +.\" .BS +.\" Start box enclosure. From here until next .BE, everything will be +.\" enclosed in one large box. +.\" +.\" .BE +.\" End of box enclosure. +.\" +.\" .CS +.\" Begin code excerpt. +.\" +.\" .CE +.\" End code excerpt. +.\" +.\" .VS ?version? ?br? +.\" Begin vertical sidebar, for use in marking newly-changed parts +.\" of man pages. The first argument is ignored and used for recording +.\" the version when the .VS was added, so that the sidebars can be +.\" found and removed when they reach a certain age. If another argument +.\" is present, then a line break is forced before starting the sidebar. +.\" +.\" .VE +.\" End of vertical sidebar. +.\" +.\" .DS +.\" Begin an indented unfilled display. +.\" +.\" .DE +.\" End of indented unfilled display. +.\" +.\" .SO ?manpage? +.\" Start of list of standard options for a Tk widget. The manpage +.\" argument defines where to look up the standard options; if +.\" omitted, defaults to "options". The options follow on successive +.\" lines, in three columns separated by tabs. +.\" +.\" .SE +.\" End of list of standard options for a Tk widget. +.\" +.\" .OP cmdName dbName dbClass +.\" Start of description of a specific option. cmdName gives the +.\" option's name as specified in the class command, dbName gives +.\" the option's name in the option database, and dbClass gives +.\" the option's class in the option database. +.\" +.\" .UL arg1 arg2 +.\" Print arg1 underlined, then print arg2 normally. +.\" +.\" .QW arg1 ?arg2? +.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). +.\" +.\" .PQ arg1 ?arg2? +.\" Print an open parenthesis, arg1 in quotes, then arg2 normally +.\" (for trailing punctuation) and then a closing parenthesis. +.\" +.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. +.if t .wh -1.3i ^B +.nr ^l \n(.l +.ad b +.\" # Start an argument description +.de AP +.ie !"\\$4"" .TP \\$4 +.el \{\ +. ie !"\\$2"" .TP \\n()Cu +. el .TP 15 +.\} +.ta \\n()Au \\n()Bu +.ie !"\\$3"" \{\ +\&\\$1 \\fI\\$2\\fP (\\$3) +.\".b +.\} +.el \{\ +.br +.ie !"\\$2"" \{\ +\&\\$1 \\fI\\$2\\fP +.\} +.el \{\ +\&\\fI\\$1\\fP +.\} +.\} +.. +.\" # define tabbing values for .AP +.de AS +.nr )A 10n +.if !"\\$1"" .nr )A \\w'\\$1'u+3n +.nr )B \\n()Au+15n +.\" +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n +.nr )C \\n()Bu+\\w'(in/out)'u+2n +.. +.AS Tcl_Interp Tcl_CreateInterp in/out +.\" # BS - start boxed text +.\" # ^y = starting y location +.\" # ^b = 1 +.de BS +.br +.mk ^y +.nr ^b 1u +.if n .nf +.if n .ti 0 +.if n \l'\\n(.lu\(ul' +.if n .fi +.. +.\" # BE - end boxed text (draw box now) +.de BE +.nf +.ti 0 +.mk ^t +.ie n \l'\\n(^lu\(ul' +.el \{\ +.\" Draw four-sided box normally, but don't draw top of +.\" box if the box started on an earlier page. +.ie !\\n(^b-1 \{\ +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.el \}\ +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.\} +.fi +.br +.nr ^b 0 +.. +.\" # VS - start vertical sidebar +.\" # ^Y = starting y location +.\" # ^v = 1 (for troff; for nroff this doesn't matter) +.de VS +.if !"\\$2"" .br +.mk ^Y +.ie n 'mc \s12\(br\s0 +.el .nr ^v 1u +.. +.\" # VE - end of vertical sidebar +.de VE +.ie n 'mc +.el \{\ +.ev 2 +.nf +.ti 0 +.mk ^t +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' +.sp -1 +.fi +.ev +.\} +.nr ^v 0 +.. +.\" # Special macro to handle page bottom: finish off current +.\" # box/sidebar if in box/sidebar mode, then invoked standard +.\" # page bottom macro. +.de ^B +.ev 2 +'ti 0 +'nf +.mk ^t +.if \\n(^b \{\ +.\" Draw three-sided box if this is the box's first page, +.\" draw two sides but no top otherwise. +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.\} +.if \\n(^v \{\ +.nr ^x \\n(^tu+1v-\\n(^Yu +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c +.\} +.bp +'fi +.ev +.if \\n(^b \{\ +.mk ^y +.nr ^b 2 +.\} +.if \\n(^v \{\ +.mk ^Y +.\} +.. +.\" # DS - begin display +.de DS +.RS +.nf +.sp +.. +.\" # DE - end display +.de DE +.fi +.RE +.sp +.. +.\" # SO - start of list of standard options +.de SO +'ie '\\$1'' .ds So \\fBoptions\\fR +'el .ds So \\fB\\$1\\fR +.SH "STANDARD OPTIONS" +.LP +.nf +.ta 5.5c 11c +.ft B +.. +.\" # SE - end of list of standard options +.de SE +.fi +.ft R +.LP +See the \\*(So manual entry for details on the standard options. +.. +.\" # OP - start of full description for a single option +.de OP +.LP +.nf +.ta 4c +Command-Line Name: \\fB\\$1\\fR +Database Name: \\fB\\$2\\fR +Database Class: \\fB\\$3\\fR +.fi +.IP +.. +.\" # CS - begin code excerpt +.de CS +.RS +.nf +.ta .25i .5i .75i 1i +.. +.\" # CE - end code excerpt +.de CE +.fi +.RE +.. +.\" # UL - underline word +.de UL +\\$1\l'|0\(ul'\\$2 +.. +.\" # QW - apply quotation marks to word +.de QW +.ie '\\*(lq'"' ``\\$1''\\$2 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\$2 +.. +.\" # PQ - apply parens and quotation marks to word +.de PQ +.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 +.\"" fix emacs highlighting +.el (\\*(lq\\$1\\*(rq\\$2)\\$3 +.. +.\" # QR - quoted range +.de QR +.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 +.. +.\" # MT - "empty" string +.de MT +.QW "" +.. +.BS +.SH NAME +overtype_module_overtype \- overtype text layout - ansi aware +.SH SYNOPSIS +package require \fBovertype \fR +.sp +.BE +.SH DESCRIPTION +.PP +- +.SH OVERVIEW +.PP +overview of overtype +.SS CONCEPTS +.PP +- +.SS DEPENDENCIES +.PP +packages used by overtype +.IP \(bu +\fBTcl 8\&.6\fR +.IP \(bu +\fBtextutil\fR +.IP \(bu +\fBpunk::ansi\fR +.sp +- required to detect, split, strip and calculate lengths of text possibly containing ansi codes +.IP \(bu +\fBpunk::char\fR +.sp +- box drawing - and also unicode character width determination for proper layout of text with double-column-width chars +.PP +.SH API +.SH KEYWORDS +ansi, module, text +.SH COPYRIGHT +.nf +Copyright (c) 2024 + +.fi diff --git a/src/embedded/man/files/_module_overtype-1.5.2.tm.n b/src/embedded/man/files/_module_overtype-1.5.2.tm.n new file mode 100644 index 00000000..d46b6ea2 --- /dev/null +++ b/src/embedded/man/files/_module_overtype-1.5.2.tm.n @@ -0,0 +1,312 @@ +'\" +'\" Generated from file '_module_overtype-1\&.5\&.2\&.tm\&.man' by tcllib/doctools with format 'nroff' +'\" Copyright (c) 2024 +'\" +.TH "overtype_module_overtype" 0 1\&.5\&.2 doc "overtype text layout" +.\" The -*- nroff -*- definitions below are for supplemental macros used +.\" in Tcl/Tk manual entries. +.\" +.\" .AP type name in/out ?indent? +.\" Start paragraph describing an argument to a library procedure. +.\" type is type of argument (int, etc.), in/out is either "in", "out", +.\" or "in/out" to describe whether procedure reads or modifies arg, +.\" and indent is equivalent to second arg of .IP (shouldn't ever be +.\" needed; use .AS below instead) +.\" +.\" .AS ?type? ?name? +.\" Give maximum sizes of arguments for setting tab stops. Type and +.\" name are examples of largest possible arguments that will be passed +.\" to .AP later. If args are omitted, default tab stops are used. +.\" +.\" .BS +.\" Start box enclosure. From here until next .BE, everything will be +.\" enclosed in one large box. +.\" +.\" .BE +.\" End of box enclosure. +.\" +.\" .CS +.\" Begin code excerpt. +.\" +.\" .CE +.\" End code excerpt. +.\" +.\" .VS ?version? ?br? +.\" Begin vertical sidebar, for use in marking newly-changed parts +.\" of man pages. The first argument is ignored and used for recording +.\" the version when the .VS was added, so that the sidebars can be +.\" found and removed when they reach a certain age. If another argument +.\" is present, then a line break is forced before starting the sidebar. +.\" +.\" .VE +.\" End of vertical sidebar. +.\" +.\" .DS +.\" Begin an indented unfilled display. +.\" +.\" .DE +.\" End of indented unfilled display. +.\" +.\" .SO ?manpage? +.\" Start of list of standard options for a Tk widget. The manpage +.\" argument defines where to look up the standard options; if +.\" omitted, defaults to "options". The options follow on successive +.\" lines, in three columns separated by tabs. +.\" +.\" .SE +.\" End of list of standard options for a Tk widget. +.\" +.\" .OP cmdName dbName dbClass +.\" Start of description of a specific option. cmdName gives the +.\" option's name as specified in the class command, dbName gives +.\" the option's name in the option database, and dbClass gives +.\" the option's class in the option database. +.\" +.\" .UL arg1 arg2 +.\" Print arg1 underlined, then print arg2 normally. +.\" +.\" .QW arg1 ?arg2? +.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). +.\" +.\" .PQ arg1 ?arg2? +.\" Print an open parenthesis, arg1 in quotes, then arg2 normally +.\" (for trailing punctuation) and then a closing parenthesis. +.\" +.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. +.if t .wh -1.3i ^B +.nr ^l \n(.l +.ad b +.\" # Start an argument description +.de AP +.ie !"\\$4"" .TP \\$4 +.el \{\ +. ie !"\\$2"" .TP \\n()Cu +. el .TP 15 +.\} +.ta \\n()Au \\n()Bu +.ie !"\\$3"" \{\ +\&\\$1 \\fI\\$2\\fP (\\$3) +.\".b +.\} +.el \{\ +.br +.ie !"\\$2"" \{\ +\&\\$1 \\fI\\$2\\fP +.\} +.el \{\ +\&\\fI\\$1\\fP +.\} +.\} +.. +.\" # define tabbing values for .AP +.de AS +.nr )A 10n +.if !"\\$1"" .nr )A \\w'\\$1'u+3n +.nr )B \\n()Au+15n +.\" +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n +.nr )C \\n()Bu+\\w'(in/out)'u+2n +.. +.AS Tcl_Interp Tcl_CreateInterp in/out +.\" # BS - start boxed text +.\" # ^y = starting y location +.\" # ^b = 1 +.de BS +.br +.mk ^y +.nr ^b 1u +.if n .nf +.if n .ti 0 +.if n \l'\\n(.lu\(ul' +.if n .fi +.. +.\" # BE - end boxed text (draw box now) +.de BE +.nf +.ti 0 +.mk ^t +.ie n \l'\\n(^lu\(ul' +.el \{\ +.\" Draw four-sided box normally, but don't draw top of +.\" box if the box started on an earlier page. +.ie !\\n(^b-1 \{\ +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.el \}\ +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.\} +.fi +.br +.nr ^b 0 +.. +.\" # VS - start vertical sidebar +.\" # ^Y = starting y location +.\" # ^v = 1 (for troff; for nroff this doesn't matter) +.de VS +.if !"\\$2"" .br +.mk ^Y +.ie n 'mc \s12\(br\s0 +.el .nr ^v 1u +.. +.\" # VE - end of vertical sidebar +.de VE +.ie n 'mc +.el \{\ +.ev 2 +.nf +.ti 0 +.mk ^t +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' +.sp -1 +.fi +.ev +.\} +.nr ^v 0 +.. +.\" # Special macro to handle page bottom: finish off current +.\" # box/sidebar if in box/sidebar mode, then invoked standard +.\" # page bottom macro. +.de ^B +.ev 2 +'ti 0 +'nf +.mk ^t +.if \\n(^b \{\ +.\" Draw three-sided box if this is the box's first page, +.\" draw two sides but no top otherwise. +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.\} +.if \\n(^v \{\ +.nr ^x \\n(^tu+1v-\\n(^Yu +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c +.\} +.bp +'fi +.ev +.if \\n(^b \{\ +.mk ^y +.nr ^b 2 +.\} +.if \\n(^v \{\ +.mk ^Y +.\} +.. +.\" # DS - begin display +.de DS +.RS +.nf +.sp +.. +.\" # DE - end display +.de DE +.fi +.RE +.sp +.. +.\" # SO - start of list of standard options +.de SO +'ie '\\$1'' .ds So \\fBoptions\\fR +'el .ds So \\fB\\$1\\fR +.SH "STANDARD OPTIONS" +.LP +.nf +.ta 5.5c 11c +.ft B +.. +.\" # SE - end of list of standard options +.de SE +.fi +.ft R +.LP +See the \\*(So manual entry for details on the standard options. +.. +.\" # OP - start of full description for a single option +.de OP +.LP +.nf +.ta 4c +Command-Line Name: \\fB\\$1\\fR +Database Name: \\fB\\$2\\fR +Database Class: \\fB\\$3\\fR +.fi +.IP +.. +.\" # CS - begin code excerpt +.de CS +.RS +.nf +.ta .25i .5i .75i 1i +.. +.\" # CE - end code excerpt +.de CE +.fi +.RE +.. +.\" # UL - underline word +.de UL +\\$1\l'|0\(ul'\\$2 +.. +.\" # QW - apply quotation marks to word +.de QW +.ie '\\*(lq'"' ``\\$1''\\$2 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\$2 +.. +.\" # PQ - apply parens and quotation marks to word +.de PQ +.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 +.\"" fix emacs highlighting +.el (\\*(lq\\$1\\*(rq\\$2)\\$3 +.. +.\" # QR - quoted range +.de QR +.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 +.. +.\" # MT - "empty" string +.de MT +.QW "" +.. +.BS +.SH NAME +overtype_module_overtype \- overtype text layout - ansi aware +.SH SYNOPSIS +package require \fBovertype \fR +.sp +.BE +.SH DESCRIPTION +.PP +- +.SH OVERVIEW +.PP +overview of overtype +.SS CONCEPTS +.PP +- +.SS DEPENDENCIES +.PP +packages used by overtype +.IP \(bu +\fBTcl 8\&.6\fR +.IP \(bu +\fBtextutil\fR +.IP \(bu +\fBpunk::ansi\fR +.sp +- required to detect, split, strip and calculate lengths of text possibly containing ansi codes +.IP \(bu +\fBpunk::char\fR +.sp +- box drawing - and also unicode character width determination for proper layout of text with double-column-width chars +.PP +.SH API +.SH KEYWORDS +ansi, module, text +.SH COPYRIGHT +.nf +Copyright (c) 2024 + +.fi diff --git a/src/embedded/man/files/_module_overtype-1.5.3.tm.n b/src/embedded/man/files/_module_overtype-1.5.3.tm.n new file mode 100644 index 00000000..b400c597 --- /dev/null +++ b/src/embedded/man/files/_module_overtype-1.5.3.tm.n @@ -0,0 +1,312 @@ +'\" +'\" Generated from file '_module_overtype-1\&.5\&.3\&.tm\&.man' by tcllib/doctools with format 'nroff' +'\" Copyright (c) 2024 +'\" +.TH "overtype_module_overtype" 0 1\&.5\&.3 doc "overtype text layout" +.\" The -*- nroff -*- definitions below are for supplemental macros used +.\" in Tcl/Tk manual entries. +.\" +.\" .AP type name in/out ?indent? +.\" Start paragraph describing an argument to a library procedure. +.\" type is type of argument (int, etc.), in/out is either "in", "out", +.\" or "in/out" to describe whether procedure reads or modifies arg, +.\" and indent is equivalent to second arg of .IP (shouldn't ever be +.\" needed; use .AS below instead) +.\" +.\" .AS ?type? ?name? +.\" Give maximum sizes of arguments for setting tab stops. Type and +.\" name are examples of largest possible arguments that will be passed +.\" to .AP later. If args are omitted, default tab stops are used. +.\" +.\" .BS +.\" Start box enclosure. From here until next .BE, everything will be +.\" enclosed in one large box. +.\" +.\" .BE +.\" End of box enclosure. +.\" +.\" .CS +.\" Begin code excerpt. +.\" +.\" .CE +.\" End code excerpt. +.\" +.\" .VS ?version? ?br? +.\" Begin vertical sidebar, for use in marking newly-changed parts +.\" of man pages. The first argument is ignored and used for recording +.\" the version when the .VS was added, so that the sidebars can be +.\" found and removed when they reach a certain age. If another argument +.\" is present, then a line break is forced before starting the sidebar. +.\" +.\" .VE +.\" End of vertical sidebar. +.\" +.\" .DS +.\" Begin an indented unfilled display. +.\" +.\" .DE +.\" End of indented unfilled display. +.\" +.\" .SO ?manpage? +.\" Start of list of standard options for a Tk widget. The manpage +.\" argument defines where to look up the standard options; if +.\" omitted, defaults to "options". The options follow on successive +.\" lines, in three columns separated by tabs. +.\" +.\" .SE +.\" End of list of standard options for a Tk widget. +.\" +.\" .OP cmdName dbName dbClass +.\" Start of description of a specific option. cmdName gives the +.\" option's name as specified in the class command, dbName gives +.\" the option's name in the option database, and dbClass gives +.\" the option's class in the option database. +.\" +.\" .UL arg1 arg2 +.\" Print arg1 underlined, then print arg2 normally. +.\" +.\" .QW arg1 ?arg2? +.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). +.\" +.\" .PQ arg1 ?arg2? +.\" Print an open parenthesis, arg1 in quotes, then arg2 normally +.\" (for trailing punctuation) and then a closing parenthesis. +.\" +.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. +.if t .wh -1.3i ^B +.nr ^l \n(.l +.ad b +.\" # Start an argument description +.de AP +.ie !"\\$4"" .TP \\$4 +.el \{\ +. ie !"\\$2"" .TP \\n()Cu +. el .TP 15 +.\} +.ta \\n()Au \\n()Bu +.ie !"\\$3"" \{\ +\&\\$1 \\fI\\$2\\fP (\\$3) +.\".b +.\} +.el \{\ +.br +.ie !"\\$2"" \{\ +\&\\$1 \\fI\\$2\\fP +.\} +.el \{\ +\&\\fI\\$1\\fP +.\} +.\} +.. +.\" # define tabbing values for .AP +.de AS +.nr )A 10n +.if !"\\$1"" .nr )A \\w'\\$1'u+3n +.nr )B \\n()Au+15n +.\" +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n +.nr )C \\n()Bu+\\w'(in/out)'u+2n +.. +.AS Tcl_Interp Tcl_CreateInterp in/out +.\" # BS - start boxed text +.\" # ^y = starting y location +.\" # ^b = 1 +.de BS +.br +.mk ^y +.nr ^b 1u +.if n .nf +.if n .ti 0 +.if n \l'\\n(.lu\(ul' +.if n .fi +.. +.\" # BE - end boxed text (draw box now) +.de BE +.nf +.ti 0 +.mk ^t +.ie n \l'\\n(^lu\(ul' +.el \{\ +.\" Draw four-sided box normally, but don't draw top of +.\" box if the box started on an earlier page. +.ie !\\n(^b-1 \{\ +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.el \}\ +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.\} +.fi +.br +.nr ^b 0 +.. +.\" # VS - start vertical sidebar +.\" # ^Y = starting y location +.\" # ^v = 1 (for troff; for nroff this doesn't matter) +.de VS +.if !"\\$2"" .br +.mk ^Y +.ie n 'mc \s12\(br\s0 +.el .nr ^v 1u +.. +.\" # VE - end of vertical sidebar +.de VE +.ie n 'mc +.el \{\ +.ev 2 +.nf +.ti 0 +.mk ^t +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' +.sp -1 +.fi +.ev +.\} +.nr ^v 0 +.. +.\" # Special macro to handle page bottom: finish off current +.\" # box/sidebar if in box/sidebar mode, then invoked standard +.\" # page bottom macro. +.de ^B +.ev 2 +'ti 0 +'nf +.mk ^t +.if \\n(^b \{\ +.\" Draw three-sided box if this is the box's first page, +.\" draw two sides but no top otherwise. +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.\} +.if \\n(^v \{\ +.nr ^x \\n(^tu+1v-\\n(^Yu +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c +.\} +.bp +'fi +.ev +.if \\n(^b \{\ +.mk ^y +.nr ^b 2 +.\} +.if \\n(^v \{\ +.mk ^Y +.\} +.. +.\" # DS - begin display +.de DS +.RS +.nf +.sp +.. +.\" # DE - end display +.de DE +.fi +.RE +.sp +.. +.\" # SO - start of list of standard options +.de SO +'ie '\\$1'' .ds So \\fBoptions\\fR +'el .ds So \\fB\\$1\\fR +.SH "STANDARD OPTIONS" +.LP +.nf +.ta 5.5c 11c +.ft B +.. +.\" # SE - end of list of standard options +.de SE +.fi +.ft R +.LP +See the \\*(So manual entry for details on the standard options. +.. +.\" # OP - start of full description for a single option +.de OP +.LP +.nf +.ta 4c +Command-Line Name: \\fB\\$1\\fR +Database Name: \\fB\\$2\\fR +Database Class: \\fB\\$3\\fR +.fi +.IP +.. +.\" # CS - begin code excerpt +.de CS +.RS +.nf +.ta .25i .5i .75i 1i +.. +.\" # CE - end code excerpt +.de CE +.fi +.RE +.. +.\" # UL - underline word +.de UL +\\$1\l'|0\(ul'\\$2 +.. +.\" # QW - apply quotation marks to word +.de QW +.ie '\\*(lq'"' ``\\$1''\\$2 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\$2 +.. +.\" # PQ - apply parens and quotation marks to word +.de PQ +.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 +.\"" fix emacs highlighting +.el (\\*(lq\\$1\\*(rq\\$2)\\$3 +.. +.\" # QR - quoted range +.de QR +.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 +.. +.\" # MT - "empty" string +.de MT +.QW "" +.. +.BS +.SH NAME +overtype_module_overtype \- overtype text layout - ansi aware +.SH SYNOPSIS +package require \fBovertype \fR +.sp +.BE +.SH DESCRIPTION +.PP +- +.SH OVERVIEW +.PP +overview of overtype +.SS CONCEPTS +.PP +- +.SS DEPENDENCIES +.PP +packages used by overtype +.IP \(bu +\fBTcl 8\&.6\fR +.IP \(bu +\fBtextutil\fR +.IP \(bu +\fBpunk::ansi\fR +.sp +- required to detect, split, strip and calculate lengths of text possibly containing ansi codes +.IP \(bu +\fBpunk::char\fR +.sp +- box drawing - and also unicode character width determination for proper layout of text with double-column-width chars +.PP +.SH API +.SH KEYWORDS +ansi, module, text +.SH COPYRIGHT +.nf +Copyright (c) 2024 + +.fi diff --git a/src/embedded/man/files/punk/_module_args-0.1.0.tm.n b/src/embedded/man/files/punk/_module_args-0.1.0.tm.n index b88bae9f..6983f3fb 100644 --- a/src/embedded/man/files/punk/_module_args-0.1.0.tm.n +++ b/src/embedded/man/files/punk/_module_args-0.1.0.tm.n @@ -369,7 +369,9 @@ ARGUMENTS: .TP multiline-string \fIoptionspecs\fR .sp -This a block of text with records delimited by newlines (lf or crlf) +This a block of text with records delimited by newlines (lf or crlf) - but with multiline values allowed if properly quoted/braced +.sp +\'info complete' is used to determine if a record spans multiple lines due to multiline values .sp Each optionspec line must be of the form: .sp diff --git a/src/embedded/man/files/punk/_module_char-0.1.0.tm.n b/src/embedded/man/files/punk/_module_char-0.1.0.tm.n new file mode 100644 index 00000000..1dfd8199 --- /dev/null +++ b/src/embedded/man/files/punk/_module_char-0.1.0.tm.n @@ -0,0 +1,312 @@ +'\" +'\" Generated from file '_module_char-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' +'\" Copyright (c) 2024 +'\" +.TH "punkshell_module_punk::char" 0 0\&.1\&.0 doc "character-set nad unicode" +.\" The -*- nroff -*- definitions below are for supplemental macros used +.\" in Tcl/Tk manual entries. +.\" +.\" .AP type name in/out ?indent? +.\" Start paragraph describing an argument to a library procedure. +.\" type is type of argument (int, etc.), in/out is either "in", "out", +.\" or "in/out" to describe whether procedure reads or modifies arg, +.\" and indent is equivalent to second arg of .IP (shouldn't ever be +.\" needed; use .AS below instead) +.\" +.\" .AS ?type? ?name? +.\" Give maximum sizes of arguments for setting tab stops. Type and +.\" name are examples of largest possible arguments that will be passed +.\" to .AP later. If args are omitted, default tab stops are used. +.\" +.\" .BS +.\" Start box enclosure. From here until next .BE, everything will be +.\" enclosed in one large box. +.\" +.\" .BE +.\" End of box enclosure. +.\" +.\" .CS +.\" Begin code excerpt. +.\" +.\" .CE +.\" End code excerpt. +.\" +.\" .VS ?version? ?br? +.\" Begin vertical sidebar, for use in marking newly-changed parts +.\" of man pages. The first argument is ignored and used for recording +.\" the version when the .VS was added, so that the sidebars can be +.\" found and removed when they reach a certain age. If another argument +.\" is present, then a line break is forced before starting the sidebar. +.\" +.\" .VE +.\" End of vertical sidebar. +.\" +.\" .DS +.\" Begin an indented unfilled display. +.\" +.\" .DE +.\" End of indented unfilled display. +.\" +.\" .SO ?manpage? +.\" Start of list of standard options for a Tk widget. The manpage +.\" argument defines where to look up the standard options; if +.\" omitted, defaults to "options". The options follow on successive +.\" lines, in three columns separated by tabs. +.\" +.\" .SE +.\" End of list of standard options for a Tk widget. +.\" +.\" .OP cmdName dbName dbClass +.\" Start of description of a specific option. cmdName gives the +.\" option's name as specified in the class command, dbName gives +.\" the option's name in the option database, and dbClass gives +.\" the option's class in the option database. +.\" +.\" .UL arg1 arg2 +.\" Print arg1 underlined, then print arg2 normally. +.\" +.\" .QW arg1 ?arg2? +.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). +.\" +.\" .PQ arg1 ?arg2? +.\" Print an open parenthesis, arg1 in quotes, then arg2 normally +.\" (for trailing punctuation) and then a closing parenthesis. +.\" +.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. +.if t .wh -1.3i ^B +.nr ^l \n(.l +.ad b +.\" # Start an argument description +.de AP +.ie !"\\$4"" .TP \\$4 +.el \{\ +. ie !"\\$2"" .TP \\n()Cu +. el .TP 15 +.\} +.ta \\n()Au \\n()Bu +.ie !"\\$3"" \{\ +\&\\$1 \\fI\\$2\\fP (\\$3) +.\".b +.\} +.el \{\ +.br +.ie !"\\$2"" \{\ +\&\\$1 \\fI\\$2\\fP +.\} +.el \{\ +\&\\fI\\$1\\fP +.\} +.\} +.. +.\" # define tabbing values for .AP +.de AS +.nr )A 10n +.if !"\\$1"" .nr )A \\w'\\$1'u+3n +.nr )B \\n()Au+15n +.\" +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n +.nr )C \\n()Bu+\\w'(in/out)'u+2n +.. +.AS Tcl_Interp Tcl_CreateInterp in/out +.\" # BS - start boxed text +.\" # ^y = starting y location +.\" # ^b = 1 +.de BS +.br +.mk ^y +.nr ^b 1u +.if n .nf +.if n .ti 0 +.if n \l'\\n(.lu\(ul' +.if n .fi +.. +.\" # BE - end boxed text (draw box now) +.de BE +.nf +.ti 0 +.mk ^t +.ie n \l'\\n(^lu\(ul' +.el \{\ +.\" Draw four-sided box normally, but don't draw top of +.\" box if the box started on an earlier page. +.ie !\\n(^b-1 \{\ +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.el \}\ +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.\} +.fi +.br +.nr ^b 0 +.. +.\" # VS - start vertical sidebar +.\" # ^Y = starting y location +.\" # ^v = 1 (for troff; for nroff this doesn't matter) +.de VS +.if !"\\$2"" .br +.mk ^Y +.ie n 'mc \s12\(br\s0 +.el .nr ^v 1u +.. +.\" # VE - end of vertical sidebar +.de VE +.ie n 'mc +.el \{\ +.ev 2 +.nf +.ti 0 +.mk ^t +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' +.sp -1 +.fi +.ev +.\} +.nr ^v 0 +.. +.\" # Special macro to handle page bottom: finish off current +.\" # box/sidebar if in box/sidebar mode, then invoked standard +.\" # page bottom macro. +.de ^B +.ev 2 +'ti 0 +'nf +.mk ^t +.if \\n(^b \{\ +.\" Draw three-sided box if this is the box's first page, +.\" draw two sides but no top otherwise. +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.\} +.if \\n(^v \{\ +.nr ^x \\n(^tu+1v-\\n(^Yu +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c +.\} +.bp +'fi +.ev +.if \\n(^b \{\ +.mk ^y +.nr ^b 2 +.\} +.if \\n(^v \{\ +.mk ^Y +.\} +.. +.\" # DS - begin display +.de DS +.RS +.nf +.sp +.. +.\" # DE - end display +.de DE +.fi +.RE +.sp +.. +.\" # SO - start of list of standard options +.de SO +'ie '\\$1'' .ds So \\fBoptions\\fR +'el .ds So \\fB\\$1\\fR +.SH "STANDARD OPTIONS" +.LP +.nf +.ta 5.5c 11c +.ft B +.. +.\" # SE - end of list of standard options +.de SE +.fi +.ft R +.LP +See the \\*(So manual entry for details on the standard options. +.. +.\" # OP - start of full description for a single option +.de OP +.LP +.nf +.ta 4c +Command-Line Name: \\fB\\$1\\fR +Database Name: \\fB\\$2\\fR +Database Class: \\fB\\$3\\fR +.fi +.IP +.. +.\" # CS - begin code excerpt +.de CS +.RS +.nf +.ta .25i .5i .75i 1i +.. +.\" # CE - end code excerpt +.de CE +.fi +.RE +.. +.\" # UL - underline word +.de UL +\\$1\l'|0\(ul'\\$2 +.. +.\" # QW - apply quotation marks to word +.de QW +.ie '\\*(lq'"' ``\\$1''\\$2 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\$2 +.. +.\" # PQ - apply parens and quotation marks to word +.de PQ +.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 +.\"" fix emacs highlighting +.el (\\*(lq\\$1\\*(rq\\$2)\\$3 +.. +.\" # QR - quoted range +.de QR +.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 +.. +.\" # MT - "empty" string +.de MT +.QW "" +.. +.BS +.SH NAME +punkshell_module_punk::char \- character-set and unicode utilities +.SH SYNOPSIS +package require \fBpunk::char \fR +.sp +.BE +.SH DESCRIPTION +.SH OVERVIEW +.PP +overview of punk::char +.SS CONCEPTS +.PP +- +.SS DEPENDENCIES +.PP +packages used by punk::char +.IP \(bu +\fBTcl 8\&.6\fR +.IP \(bu +\fBovertype\fR +.sp +- +.IP \(bu +\fBtextblock\fR +.sp +- +.IP \(bu +\fBconsole\fR +.sp +- +.PP +.SH API +.SH KEYWORDS +encodings, module +.SH COPYRIGHT +.nf +Copyright (c) 2024 + +.fi diff --git a/src/embedded/man/files/punk/_module_encmime-0.1.0.tm.n b/src/embedded/man/files/punk/_module_encmime-0.1.0.tm.n new file mode 100644 index 00000000..4eb296ce --- /dev/null +++ b/src/embedded/man/files/punk/_module_encmime-0.1.0.tm.n @@ -0,0 +1,357 @@ +'\" +'\" Generated from file '_module_encmime-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' +'\" Copyright (c) 2024 +'\" +.TH "punkshell_module_punk::encmime" 0 0\&.1\&.0 doc "mime encoding names and aliases" +.\" The -*- nroff -*- definitions below are for supplemental macros used +.\" in Tcl/Tk manual entries. +.\" +.\" .AP type name in/out ?indent? +.\" Start paragraph describing an argument to a library procedure. +.\" type is type of argument (int, etc.), in/out is either "in", "out", +.\" or "in/out" to describe whether procedure reads or modifies arg, +.\" and indent is equivalent to second arg of .IP (shouldn't ever be +.\" needed; use .AS below instead) +.\" +.\" .AS ?type? ?name? +.\" Give maximum sizes of arguments for setting tab stops. Type and +.\" name are examples of largest possible arguments that will be passed +.\" to .AP later. If args are omitted, default tab stops are used. +.\" +.\" .BS +.\" Start box enclosure. From here until next .BE, everything will be +.\" enclosed in one large box. +.\" +.\" .BE +.\" End of box enclosure. +.\" +.\" .CS +.\" Begin code excerpt. +.\" +.\" .CE +.\" End code excerpt. +.\" +.\" .VS ?version? ?br? +.\" Begin vertical sidebar, for use in marking newly-changed parts +.\" of man pages. The first argument is ignored and used for recording +.\" the version when the .VS was added, so that the sidebars can be +.\" found and removed when they reach a certain age. If another argument +.\" is present, then a line break is forced before starting the sidebar. +.\" +.\" .VE +.\" End of vertical sidebar. +.\" +.\" .DS +.\" Begin an indented unfilled display. +.\" +.\" .DE +.\" End of indented unfilled display. +.\" +.\" .SO ?manpage? +.\" Start of list of standard options for a Tk widget. The manpage +.\" argument defines where to look up the standard options; if +.\" omitted, defaults to "options". The options follow on successive +.\" lines, in three columns separated by tabs. +.\" +.\" .SE +.\" End of list of standard options for a Tk widget. +.\" +.\" .OP cmdName dbName dbClass +.\" Start of description of a specific option. cmdName gives the +.\" option's name as specified in the class command, dbName gives +.\" the option's name in the option database, and dbClass gives +.\" the option's class in the option database. +.\" +.\" .UL arg1 arg2 +.\" Print arg1 underlined, then print arg2 normally. +.\" +.\" .QW arg1 ?arg2? +.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). +.\" +.\" .PQ arg1 ?arg2? +.\" Print an open parenthesis, arg1 in quotes, then arg2 normally +.\" (for trailing punctuation) and then a closing parenthesis. +.\" +.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. +.if t .wh -1.3i ^B +.nr ^l \n(.l +.ad b +.\" # Start an argument description +.de AP +.ie !"\\$4"" .TP \\$4 +.el \{\ +. ie !"\\$2"" .TP \\n()Cu +. el .TP 15 +.\} +.ta \\n()Au \\n()Bu +.ie !"\\$3"" \{\ +\&\\$1 \\fI\\$2\\fP (\\$3) +.\".b +.\} +.el \{\ +.br +.ie !"\\$2"" \{\ +\&\\$1 \\fI\\$2\\fP +.\} +.el \{\ +\&\\fI\\$1\\fP +.\} +.\} +.. +.\" # define tabbing values for .AP +.de AS +.nr )A 10n +.if !"\\$1"" .nr )A \\w'\\$1'u+3n +.nr )B \\n()Au+15n +.\" +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n +.nr )C \\n()Bu+\\w'(in/out)'u+2n +.. +.AS Tcl_Interp Tcl_CreateInterp in/out +.\" # BS - start boxed text +.\" # ^y = starting y location +.\" # ^b = 1 +.de BS +.br +.mk ^y +.nr ^b 1u +.if n .nf +.if n .ti 0 +.if n \l'\\n(.lu\(ul' +.if n .fi +.. +.\" # BE - end boxed text (draw box now) +.de BE +.nf +.ti 0 +.mk ^t +.ie n \l'\\n(^lu\(ul' +.el \{\ +.\" Draw four-sided box normally, but don't draw top of +.\" box if the box started on an earlier page. +.ie !\\n(^b-1 \{\ +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.el \}\ +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.\} +.fi +.br +.nr ^b 0 +.. +.\" # VS - start vertical sidebar +.\" # ^Y = starting y location +.\" # ^v = 1 (for troff; for nroff this doesn't matter) +.de VS +.if !"\\$2"" .br +.mk ^Y +.ie n 'mc \s12\(br\s0 +.el .nr ^v 1u +.. +.\" # VE - end of vertical sidebar +.de VE +.ie n 'mc +.el \{\ +.ev 2 +.nf +.ti 0 +.mk ^t +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' +.sp -1 +.fi +.ev +.\} +.nr ^v 0 +.. +.\" # Special macro to handle page bottom: finish off current +.\" # box/sidebar if in box/sidebar mode, then invoked standard +.\" # page bottom macro. +.de ^B +.ev 2 +'ti 0 +'nf +.mk ^t +.if \\n(^b \{\ +.\" Draw three-sided box if this is the box's first page, +.\" draw two sides but no top otherwise. +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.\} +.if \\n(^v \{\ +.nr ^x \\n(^tu+1v-\\n(^Yu +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c +.\} +.bp +'fi +.ev +.if \\n(^b \{\ +.mk ^y +.nr ^b 2 +.\} +.if \\n(^v \{\ +.mk ^Y +.\} +.. +.\" # DS - begin display +.de DS +.RS +.nf +.sp +.. +.\" # DE - end display +.de DE +.fi +.RE +.sp +.. +.\" # SO - start of list of standard options +.de SO +'ie '\\$1'' .ds So \\fBoptions\\fR +'el .ds So \\fB\\$1\\fR +.SH "STANDARD OPTIONS" +.LP +.nf +.ta 5.5c 11c +.ft B +.. +.\" # SE - end of list of standard options +.de SE +.fi +.ft R +.LP +See the \\*(So manual entry for details on the standard options. +.. +.\" # OP - start of full description for a single option +.de OP +.LP +.nf +.ta 4c +Command-Line Name: \\fB\\$1\\fR +Database Name: \\fB\\$2\\fR +Database Class: \\fB\\$3\\fR +.fi +.IP +.. +.\" # CS - begin code excerpt +.de CS +.RS +.nf +.ta .25i .5i .75i 1i +.. +.\" # CE - end code excerpt +.de CE +.fi +.RE +.. +.\" # UL - underline word +.de UL +\\$1\l'|0\(ul'\\$2 +.. +.\" # QW - apply quotation marks to word +.de QW +.ie '\\*(lq'"' ``\\$1''\\$2 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\$2 +.. +.\" # PQ - apply parens and quotation marks to word +.de PQ +.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 +.\"" fix emacs highlighting +.el (\\*(lq\\$1\\*(rq\\$2)\\$3 +.. +.\" # QR - quoted range +.de QR +.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 +.. +.\" # MT - "empty" string +.de MT +.QW "" +.. +.BS +.SH NAME +punkshell_module_punk::encmime \- mime encodings related subset of tcllib mime +.SH SYNOPSIS +package require \fBpunk::encmime \fR +.sp +mapencoding \fIenc\fR +.sp +reversemapencoding \fImimeType\fR +.sp +.BE +.SH DESCRIPTION +.PP +This is a workaround package to provide the mime encoding names used in tcllib's mime package - without additional dependencies +.PP +tcllib mime loads either Trf or tcl::memchan functions\&. punk::encmime needs to work in a context where tcllib may not yet be loaded/available, and even these few dependencies are too much\&. +.PP +MAINTENANCE NOTE: The data in this module needs to be checked against the latest tcllib mime package +.PP +taken from tcllib mime version: 1\&.7\&.2 in 2024 +.SH OVERVIEW +.PP +overview of punk::encmime +.SS CONCEPTS +.PP +Where practical - the actual tcllib mime package should be used instead\&. +.PP +This set of encoding related functions is a snapshot of the data from the mime package - and may not be up to date\&. +.PP +This pseudo-package was created to minimize dependencies for punk::char and punk::overtype +.SS DEPENDENCIES +.PP +packages used by punk::encmime +.IP \(bu +\fBTcl 8\&.6\fR +.PP +.SH API +.SS "NAMESPACE PUNK::ENCMIME::CLASS" +.PP +class definitions +.PP +.SS "NAMESPACE PUNK::ENCMIME" +.PP +Core API functions for punk::encmime +.TP +mapencoding \fIenc\fR +.sp +maps tcl encodings onto the proper names for their MIME charset type\&. +.sp +This is only done for encodings whose charset types were known\&. +.sp +The remaining encodings return {} for now\&. +.sp +NOTE: consider using tcllib's mime::mapencoding instead if mime package available +.TP +reversemapencoding \fImimeType\fR +.sp +mime::reversemapencodings maps MIME charset types onto tcl encoding names\&. +.sp +Returns the tcl encoding name for the specified mime charset, or {} if none is known +.sp +Arguments: +.RS +.TP +string \fImimeType\fR +The MIME charset to convert into a tcl encoding type\&. +.RE +.sp +NOTE: consider using tcllib's mime::reversemapencoding instead if mime package available +.PP +.SS "NAMESPACE PUNK::ENCMIME::LIB" +.PP +Secondary functions that are part of the API +.PP +.SH INTERNAL +.SS "NAMESPACE PUNK::ENCMIME::SYSTEM" +.PP +Internal functions that are not part of the API +.SH KEYWORDS +encodings, module +.SH COPYRIGHT +.nf +Copyright (c) 2024 + +.fi diff --git a/src/embedded/man/files/punk/_module_fileline-0.1.0.tm.n b/src/embedded/man/files/punk/_module_fileline-0.1.0.tm.n index 0702b522..0187fdb8 100644 --- a/src/embedded/man/files/punk/_module_fileline-0.1.0.tm.n +++ b/src/embedded/man/files/punk/_module_fileline-0.1.0.tm.n @@ -320,6 +320,8 @@ class::textinfo \fBnormalize_indices\fR \fIstartidx\fR \fIendidx\fR \fImax\fR .sp class::textinfo \fBregenerate_lines\fR .sp +get_textinfo ?option value\&.\&.\&.? ?datachunk? +.sp \fBlib::range_spans_chunk_boundaries\fR \fIstart\fR \fIend\fR \fIchunksize\fR .sp \fBansi::a\fR @@ -340,7 +342,11 @@ This is important for certain text files where examining the number of chars/byt .PP For example - windows \&.cmd/\&.bat files need some byte counting to determine if labels lie on chunk boundaries and need to be moved\&. .PP -Despite including the word 'file', the library doesn't deal with reading/writing to the filesystem\&. It is for operating on text-file like data\&. +This chunk-size counting will depend on the character encoding\&. +.PP +Despite including the word 'file', the library doesn't necessarily deal with reading/writing to the filesystem - +.PP +The raw data can be supplied as a string, or loaded from a file using punk::fileline::get_textinfo -file .SS CONCEPTS .PP A chunk of textfile data (possibly representing a whole file - but usually at least a complete set of lines) is loaded into a punk::fileline::class::textinfo instance at object creation\&. @@ -580,6 +586,32 @@ TODO - review whether such manual control will be necessary/desirable .SS "NAMESPACE PUNK::FILELINE" .PP Core API functions for punk::fileline +.TP +get_textinfo ?option value\&.\&.\&.? ?datachunk? +.sp +Returns textinfo object instance representing data in string datachunk or if -file filename supplied - data loaded from a file +.sp +The encoding used is as specified in the -encoding option - or from the Byte Order Mark (bom) at the beginning of the data +.sp +For Tcl 8\&.6 - encodings such as utf-16le may not be available - so the bytes are swapped appropriately depending on the platform byteOrder and encoding 'unicode' is used\&. +.sp +encoding defaults to utf-8 if no -encoding specified and no BOM was found +.sp +Specify -encoding binary to perform no encoding conversion +.sp +Whether -encoding was specified or not - by default the BOM characters are not retained in the line-data +.sp +If -includebom 1 is specified - the bom will be retained in the stored chunk and the data for line 1, but will undergo the same encoding transformation as the rest of the data +.sp +The get_bomid method of the returned object will contain an identifier for any BOM encountered\&. +.sp +e\&.g utf-8,utf-16be, utf-16le, utf-32be, utf32-le, SCSU, BOCU-1,GB18030, UTF-EBCDIC, utf-1, utf-7 +.sp +If the encoding specified in the BOM isn't recognised by Tcl - the resulting data is likely to remain as the raw bytes (binary translation) +.sp +Currently only utf-8, utf-16* and utf-32* are properly supported even though the other BOMs are detected, reported via get_bomid, and stripped from the data\&. +.sp +GB18030 falls back to cp936/gbk (unless a gb18030 encoding has been installed)\&. Use -encoding binary if this isn't suitable and you need to do your own processing of the raw data\&. .PP .SS "NAMESPACE PUNK::FILELINE::LIB" .PP @@ -646,7 +678,7 @@ See \fBpunk::ansi\fR for documentation \fBansi::stripansi\fR .PP .SH KEYWORDS -file, module, parse, text +BOM, encoding, file, module, parse, text .SH COPYRIGHT .nf Copyright (c) 2024 diff --git a/src/embedded/man/files/punk/_module_flib-0.1.0.tm.n b/src/embedded/man/files/punk/_module_flib-0.1.0.tm.n index 0a589f59..2ad83e2d 100644 --- a/src/embedded/man/files/punk/_module_flib-0.1.0.tm.n +++ b/src/embedded/man/files/punk/_module_flib-0.1.0.tm.n @@ -2,7 +2,7 @@ '\" Generated from file '_module_flib-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2024 '\" -.TH "punkshell_module_punk::flib" 0 0\&.1\&.0 doc "-" +.TH "punkshell_module_punk::flib" 0 0\&.1\&.0 doc "experimental pattern library" .\" The -*- nroff -*- definitions below are for supplemental macros used .\" in Tcl/Tk manual entries. .\" @@ -272,25 +272,27 @@ Database Class: \\fB\\$3\\fR .. .BS .SH NAME -punkshell_module_punk::flib \- Module API +punkshell_module_punk::flib \- flib experimental .SH SYNOPSIS package require \fBpunk::flib \fR .sp .BE .SH DESCRIPTION .PP -- +Experimental .SH OVERVIEW .PP overview of punk::flib .SS CONCEPTS .PP -- +Experiments in functional program related features and integration with the pattern library .SS DEPENDENCIES .PP packages used by punk::flib .IP \(bu \fBTcl 8\&.6\fR +.IP \(bu +\fBpattern 1\&.2\&.4\fR .PP .SH API .SS "NAMESPACE PUNK::FLIB::CLASS" @@ -310,7 +312,7 @@ Secondary functions that are part of the API .PP Internal functions that are not part of the API .SH KEYWORDS -module +experimental, module .SH COPYRIGHT .nf Copyright (c) 2024 diff --git a/src/embedded/man/files/punk/_module_lib-0.1.0.tm.n b/src/embedded/man/files/punk/_module_lib-0.1.0.tm.n new file mode 100644 index 00000000..d7404601 --- /dev/null +++ b/src/embedded/man/files/punk/_module_lib-0.1.0.tm.n @@ -0,0 +1,524 @@ +'\" +'\" Generated from file '_module_lib-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' +'\" Copyright (c) 2024 +'\" +.TH "punkshell_module_punk::lib" 0 0\&.1\&.0 doc "punk library" +.\" The -*- nroff -*- definitions below are for supplemental macros used +.\" in Tcl/Tk manual entries. +.\" +.\" .AP type name in/out ?indent? +.\" Start paragraph describing an argument to a library procedure. +.\" type is type of argument (int, etc.), in/out is either "in", "out", +.\" or "in/out" to describe whether procedure reads or modifies arg, +.\" and indent is equivalent to second arg of .IP (shouldn't ever be +.\" needed; use .AS below instead) +.\" +.\" .AS ?type? ?name? +.\" Give maximum sizes of arguments for setting tab stops. Type and +.\" name are examples of largest possible arguments that will be passed +.\" to .AP later. If args are omitted, default tab stops are used. +.\" +.\" .BS +.\" Start box enclosure. From here until next .BE, everything will be +.\" enclosed in one large box. +.\" +.\" .BE +.\" End of box enclosure. +.\" +.\" .CS +.\" Begin code excerpt. +.\" +.\" .CE +.\" End code excerpt. +.\" +.\" .VS ?version? ?br? +.\" Begin vertical sidebar, for use in marking newly-changed parts +.\" of man pages. The first argument is ignored and used for recording +.\" the version when the .VS was added, so that the sidebars can be +.\" found and removed when they reach a certain age. If another argument +.\" is present, then a line break is forced before starting the sidebar. +.\" +.\" .VE +.\" End of vertical sidebar. +.\" +.\" .DS +.\" Begin an indented unfilled display. +.\" +.\" .DE +.\" End of indented unfilled display. +.\" +.\" .SO ?manpage? +.\" Start of list of standard options for a Tk widget. The manpage +.\" argument defines where to look up the standard options; if +.\" omitted, defaults to "options". The options follow on successive +.\" lines, in three columns separated by tabs. +.\" +.\" .SE +.\" End of list of standard options for a Tk widget. +.\" +.\" .OP cmdName dbName dbClass +.\" Start of description of a specific option. cmdName gives the +.\" option's name as specified in the class command, dbName gives +.\" the option's name in the option database, and dbClass gives +.\" the option's class in the option database. +.\" +.\" .UL arg1 arg2 +.\" Print arg1 underlined, then print arg2 normally. +.\" +.\" .QW arg1 ?arg2? +.\" Print arg1 in quotes, then arg2 normally (for trailing punctuation). +.\" +.\" .PQ arg1 ?arg2? +.\" Print an open parenthesis, arg1 in quotes, then arg2 normally +.\" (for trailing punctuation) and then a closing parenthesis. +.\" +.\" # Set up traps and other miscellaneous stuff for Tcl/Tk man pages. +.if t .wh -1.3i ^B +.nr ^l \n(.l +.ad b +.\" # Start an argument description +.de AP +.ie !"\\$4"" .TP \\$4 +.el \{\ +. ie !"\\$2"" .TP \\n()Cu +. el .TP 15 +.\} +.ta \\n()Au \\n()Bu +.ie !"\\$3"" \{\ +\&\\$1 \\fI\\$2\\fP (\\$3) +.\".b +.\} +.el \{\ +.br +.ie !"\\$2"" \{\ +\&\\$1 \\fI\\$2\\fP +.\} +.el \{\ +\&\\fI\\$1\\fP +.\} +.\} +.. +.\" # define tabbing values for .AP +.de AS +.nr )A 10n +.if !"\\$1"" .nr )A \\w'\\$1'u+3n +.nr )B \\n()Au+15n +.\" +.if !"\\$2"" .nr )B \\w'\\$2'u+\\n()Au+3n +.nr )C \\n()Bu+\\w'(in/out)'u+2n +.. +.AS Tcl_Interp Tcl_CreateInterp in/out +.\" # BS - start boxed text +.\" # ^y = starting y location +.\" # ^b = 1 +.de BS +.br +.mk ^y +.nr ^b 1u +.if n .nf +.if n .ti 0 +.if n \l'\\n(.lu\(ul' +.if n .fi +.. +.\" # BE - end boxed text (draw box now) +.de BE +.nf +.ti 0 +.mk ^t +.ie n \l'\\n(^lu\(ul' +.el \{\ +.\" Draw four-sided box normally, but don't draw top of +.\" box if the box started on an earlier page. +.ie !\\n(^b-1 \{\ +\h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.el \}\ +\h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\l'|0u-1.5n\(ul' +.\} +.\} +.fi +.br +.nr ^b 0 +.. +.\" # VS - start vertical sidebar +.\" # ^Y = starting y location +.\" # ^v = 1 (for troff; for nroff this doesn't matter) +.de VS +.if !"\\$2"" .br +.mk ^Y +.ie n 'mc \s12\(br\s0 +.el .nr ^v 1u +.. +.\" # VE - end of vertical sidebar +.de VE +.ie n 'mc +.el \{\ +.ev 2 +.nf +.ti 0 +.mk ^t +\h'|\\n(^lu+3n'\L'|\\n(^Yu-1v\(bv'\v'\\n(^tu+1v-\\n(^Yu'\h'-|\\n(^lu+3n' +.sp -1 +.fi +.ev +.\} +.nr ^v 0 +.. +.\" # Special macro to handle page bottom: finish off current +.\" # box/sidebar if in box/sidebar mode, then invoked standard +.\" # page bottom macro. +.de ^B +.ev 2 +'ti 0 +'nf +.mk ^t +.if \\n(^b \{\ +.\" Draw three-sided box if this is the box's first page, +.\" draw two sides but no top otherwise. +.ie !\\n(^b-1 \h'-1.5n'\L'|\\n(^yu-1v'\l'\\n(^lu+3n\(ul'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.el \h'-1.5n'\L'|\\n(^yu-1v'\h'\\n(^lu+3n'\L'\\n(^tu+1v-\\n(^yu'\h'|0u'\c +.\} +.if \\n(^v \{\ +.nr ^x \\n(^tu+1v-\\n(^Yu +\kx\h'-\\nxu'\h'|\\n(^lu+3n'\ky\L'-\\n(^xu'\v'\\n(^xu'\h'|0u'\c +.\} +.bp +'fi +.ev +.if \\n(^b \{\ +.mk ^y +.nr ^b 2 +.\} +.if \\n(^v \{\ +.mk ^Y +.\} +.. +.\" # DS - begin display +.de DS +.RS +.nf +.sp +.. +.\" # DE - end display +.de DE +.fi +.RE +.sp +.. +.\" # SO - start of list of standard options +.de SO +'ie '\\$1'' .ds So \\fBoptions\\fR +'el .ds So \\fB\\$1\\fR +.SH "STANDARD OPTIONS" +.LP +.nf +.ta 5.5c 11c +.ft B +.. +.\" # SE - end of list of standard options +.de SE +.fi +.ft R +.LP +See the \\*(So manual entry for details on the standard options. +.. +.\" # OP - start of full description for a single option +.de OP +.LP +.nf +.ta 4c +Command-Line Name: \\fB\\$1\\fR +Database Name: \\fB\\$2\\fR +Database Class: \\fB\\$3\\fR +.fi +.IP +.. +.\" # CS - begin code excerpt +.de CS +.RS +.nf +.ta .25i .5i .75i 1i +.. +.\" # CE - end code excerpt +.de CE +.fi +.RE +.. +.\" # UL - underline word +.de UL +\\$1\l'|0\(ul'\\$2 +.. +.\" # QW - apply quotation marks to word +.de QW +.ie '\\*(lq'"' ``\\$1''\\$2 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\$2 +.. +.\" # PQ - apply parens and quotation marks to word +.de PQ +.ie '\\*(lq'"' (``\\$1''\\$2)\\$3 +.\"" fix emacs highlighting +.el (\\*(lq\\$1\\*(rq\\$2)\\$3 +.. +.\" # QR - quoted range +.de QR +.ie '\\*(lq'"' ``\\$1''\\-``\\$2''\\$3 +.\"" fix emacs highlighting +.el \\*(lq\\$1\\*(rq\\-\\*(lq\\$2\\*(rq\\$3 +.. +.\" # MT - "empty" string +.de MT +.QW "" +.. +.BS +.SH NAME +punkshell_module_punk::lib \- punk general utility functions +.SH SYNOPSIS +package require \fBpunk::lib \fR +.sp +\fBK\fR \fIx\fR \fIy\fR +.sp +\fBhex2dec\fR ?option value\&.\&.\&.? \fIlist_largeHex\fR +.sp +\fBdex2hex\fR ?option value\&.\&.\&.? \fIlist_decimals\fR +.sp +\fBlog2\fR \fIx\fR +.sp +\fBlogbase\fR \fIb\fR \fIx\fR +.sp +\fBfactors\fR \fIx\fR +.sp +\fBoddFactors\fR \fIx\fR +.sp +\fBgreatestFactorBelow\fR \fIx\fR +.sp +\fBgreatestOddFactorBelow\fR \fIx\fR +.sp +\fBgreatestOddFactor\fR \fIx\fR +.sp +\fBgcd\fR \fIn\fR \fIm\fR +.sp +\fBgcd\fR \fIn\fR \fIm\fR +.sp +\fBcommonDivisors\fR \fIx\fR \fIy\fR +.sp +\fBhasglobs\fR \fIstr\fR +.sp +\fBtrimzero\fR \fInumber\fR +.sp +\fBsubstring_count\fR \fIstr\fR \fIsubstring\fR +.sp +\fBdict_merge_ordered\fR \fIdefaults\fR \fImain\fR +.sp +\fBaskuser\fR \fIquestion\fR +.sp +.BE +.SH DESCRIPTION +.PP +This is a set of utility functions that are commonly used across punk modules or are just considered to be general-purpose functions\&. +.PP +The base set includes string and math functions but has no specific theme +.SH OVERVIEW +.PP +overview of punk::lib +.SS CONCEPTS +.PP +The punk::lib modules should have no strong dependencies other than Tcl +.PP +Dependendencies that only affect display or additional functionality may be included - but should fail gracefully if not present, and only when a function is called that uses one of these soft dependencies\&. +.PP +This requirement for no strong dependencies, means that many utility functions that might otherwise seem worthy of inclusion here are not present\&. +.SS DEPENDENCIES +.PP +packages used by punk::lib +.IP \(bu +\fBTcl 8\&.6\fR +.PP +.SH API +.SS "NAMESPACE PUNK::LIB::CLASS" +.PP +class definitions +.PP +.SS "NAMESPACE PUNK::LIB" +.PP +Core API functions for punk::lib +.TP +\fBK\fR \fIx\fR \fIy\fR +.sp +The K-combinator function - returns the first argument, x and discards y +.sp +see \fIhttps://wiki\&.tcl-lang\&.org/page/K\fR +.sp +It is used in cases where command-substitution at the calling-point performs some desired effect\&. +.TP +\fBhex2dec\fR ?option value\&.\&.\&.? \fIlist_largeHex\fR +.sp +Convert a list of (possibly large) unprefixed hex strings to their decimal values +.sp +hex2dec accepts and ignores internal underscores in the same manner as Tcl 8\&.7+ numbers e\&.g hex2dec FF_FF returns 65535 +.sp +Leading and trailing underscores are ignored as a matter of implementation convenience - but this shouldn't be relied upon\&. +.sp +Leading or trailing whitespace in each list member is allowed e\&.g hex2dec " F" returns 15 +.sp +Internal whitespace e\&.g "F F" is not permitted - but a completely empty element "" is allowed and will return 0 +.TP +\fBdex2hex\fR ?option value\&.\&.\&.? \fIlist_decimals\fR +.sp +Convert a list of decimal integers to a list of hex values +.sp +-width can be used to make each hex value at least int characters wide, with leading zeroes\&. +.sp +-case upper|lower determines the case of the hex letters in the output +.TP +\fBlog2\fR \fIx\fR +.sp +log base2 of x +.sp +This uses a 'live' proc body - the divisor for the change of base is computed once at definition time +.sp +(courtesy of RS \fIhttps://wiki\&.tcl-lang\&.org/page/Additional+math+functions\fR) +.TP +\fBlogbase\fR \fIb\fR \fIx\fR +.sp +log base b of x +.sp +This function uses expr's natural log and the change of base division\&. +.sp +This means for example that we can get results like: logbase 10 1000 = 2\&.9999999999999996 +.sp +Use expr's log10() function or tcl::mathfunc::log10 for base 10 +.TP +\fBfactors\fR \fIx\fR +.sp +Return a sorted list of the positive factors of x where x > 0 +.sp +For x = 0 we return only 0 and 1 as technically any number divides zero and there are an infinite number of factors\&. (including zero itself in this context)* +.sp +This is a simple brute-force implementation that iterates all numbers below the square root of x to check the factors +.sp +Because the implementation is so simple - the performance is very reasonable for numbers below at least a few 10's of millions +.sp +See tcllib math::numtheory::factors for a more complex implementation - which seems to be slower for 'small' numbers +.sp +Comparisons were done with some numbers below 17 digits long +.sp +For seriously big numbers - this simple algorithm would no doubt be outperformed by more complex algorithms\&. +.sp +The numtheory library stores some data about primes etc with each call - so may become faster when being used on more numbers +but has the disadvantage of being slower for 'small' numbers and using more memory\&. +.sp +If the largest factor below x is needed - the greatestOddFactorBelow and GreatestFactorBelow functions are a faster way to get there than computing the whole list, even for small values of x +.sp +* Taking x=0; Notion of x being divisible by integer y being: There exists an integer p such that x = py +.sp +In other mathematical contexts zero may be considered not to divide anything\&. +.TP +\fBoddFactors\fR \fIx\fR +.sp +Return a list of odd integer factors of x, sorted in ascending order +.TP +\fBgreatestFactorBelow\fR \fIx\fR +.sp +Return the largest factor of x excluding itself +.sp +factor functions can be useful for console layout calculations +.sp +See Tcllib math::numtheory for more extensive implementations +.TP +\fBgreatestOddFactorBelow\fR \fIx\fR +.sp +Return the largest odd integer factor of x excluding x itself +.TP +\fBgreatestOddFactor\fR \fIx\fR +.sp +Return the largest odd integer factor of x +.sp +For an odd value of x - this will always return x +.TP +\fBgcd\fR \fIn\fR \fIm\fR +.sp +Return the greatest common divisor of m and n +.sp +Straight from Lars Hellström's math::numtheory library in Tcllib +.sp +Graphical use: +.sp +An a by b rectangle can be covered with square tiles of side-length c, +.sp +only if c is a common divisor of a and b +.TP +\fBgcd\fR \fIn\fR \fIm\fR +.sp +Return the lowest common multiple of m and n +.sp +Straight from Lars Hellström's math::numtheory library in Tcllib +.sp +.TP +\fBcommonDivisors\fR \fIx\fR \fIy\fR +.sp +Return a list of all the common factors of x and y +.sp +(equivalent to factors of their gcd) +.TP +\fBhasglobs\fR \fIstr\fR +.sp +Return a boolean indicating whether str contains any of the glob characters: * ? [ ] +.sp +hasglobs uses append to preserve Tcls internal representation for str - so it should help avoid shimmering in the few cases where this may matter\&. +.TP +\fBtrimzero\fR \fInumber\fR +.sp +Return number with left-hand-side zeros trimmed off - unless all zero +.sp +If number is all zero - a single 0 is returned +.TP +\fBsubstring_count\fR \fIstr\fR \fIsubstring\fR +.sp +Search str and return number of occurrences of substring +.TP +\fBdict_merge_ordered\fR \fIdefaults\fR \fImain\fR +.sp +The standard dict merge accepts multiple dicts with values from dicts to the right (2nd argument) taking precedence\&. +.sp +When merging with a dict of default values - this means that any default key/vals that weren't in the main dict appear in the output before the main data\&. +.sp +This function merges the two dicts whilst maintaining the key order of main followed by defaults\&. +.TP +\fBaskuser\fR \fIquestion\fR +.sp +A very basic utility to read an answer from stdin +.sp +The prompt is written to the terminal and then it waits for a user to type something +.sp +stdin is temporarily configured to blocking and then put back in its original state in case it wasn't already so\&. +.sp +The user must hit enter to submit the response +.sp +The return value is the string if any that was typed prior to hitting enter\&. +.sp +The question argument can be manually colourised using the various punk::ansi funcitons +.CS + + + set answer [punk::lib::askuser "[a+ green bold]Do you want to proceed? (Y|N)[a]"] + if {[string match y* [string tolower $answer]]} { + puts "Proceeding" + } else { + puts "Cancelled by user" + } + +.CE +.PP +.SH INTERNAL +.SS "NAMESPACE PUNK::LIB::SYSTEM" +.PP +Internal functions that are not part of the API +.PP +.SH KEYWORDS +lib, module, utility +.SH COPYRIGHT +.nf +Copyright (c) 2024 + +.fi diff --git a/src/embedded/man/files/punk/mix/commandset/_module_project-0.1.0.tm.n b/src/embedded/man/files/punk/mix/commandset/_module_project-0.1.0.tm.n index 7298cf33..95f0ac98 100644 --- a/src/embedded/man/files/punk/mix/commandset/_module_project-0.1.0.tm.n +++ b/src/embedded/man/files/punk/mix/commandset/_module_project-0.1.0.tm.n @@ -2,7 +2,7 @@ '\" Generated from file '_module_project-0\&.1\&.0\&.tm\&.man' by tcllib/doctools with format 'nroff' '\" Copyright (c) 2023 '\" -.TH "punkshell_module_punk::mix::commandset::project" 0 0\&.1\&.0 doc "pmix CLI commandset - project" +.TH "punkshell_module_punk::mix::commandset::project" 0 0\&.1\&.0 doc "deck CLI commandset - project" .\" The -*- nroff -*- definitions below are for supplemental macros used .\" in Tcl/Tk manual entries. .\" @@ -272,7 +272,7 @@ Database Class: \\fB\\$3\\fR .. .BS .SH NAME -punkshell_module_punk::mix::commandset::project \- pmix commandset - project +punkshell_module_punk::mix::commandset::project \- dec commandset - project .SH SYNOPSIS package require \fBpunk::mix::commandset::project \fR .sp diff --git a/src/embedded/man/index.n b/src/embedded/man/index.n index c9535816..9cc7068d 100644 --- a/src/embedded/man/index.n +++ b/src/embedded/man/index.n @@ -272,9 +272,24 @@ Database Class: \\fB\\$3\\fR .SH INDEX doc .RS +BOM +.RS +.TP +\fBfiles/punk/_module_fileline-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::fileline +.RE ansi .RS .TP +\fBfiles/_module_overtype-1\&.5\&.3\&.tm\&.n\fR +overtype_module_overtype +.TP +\fBfiles/_module_overtype-1\&.5\&.2\&.tm\&.n\fR +overtype_module_overtype +.TP +\fBfiles/_module_overtype-1\&.5\&.1\&.tm\&.n\fR +overtype_module_overtype +.TP \fBfiles/punk/_module_ansi-0\&.1\&.0\&.tm\&.n\fR punkshell_module_punk::ansi .RE @@ -308,6 +323,27 @@ console \fBfiles/punk/_module_ansi-0\&.1\&.0\&.tm\&.n\fR punkshell_module_punk::ansi .RE +encoding +.RS +.TP +\fBfiles/punk/_module_fileline-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::fileline +.RE +encodings +.RS +.TP +\fBfiles/punk/_module_char-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::char +.TP +\fBfiles/punk/_module_encmime-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::encmime +.RE +experimental +.RS +.TP +\fBfiles/punk/_module_flib-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::flib +.RE file .RS .TP @@ -320,9 +356,24 @@ filesystem \fBfiles/punk/_module_path-0\&.1\&.0\&.tm\&.n\fR punkshell_module_punk::path .RE +lib +.RS +.TP +\fBfiles/punk/_module_lib-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::lib +.RE module .RS .TP +\fBfiles/_module_overtype-1\&.5\&.3\&.tm\&.n\fR +overtype_module_overtype +.TP +\fBfiles/_module_overtype-1\&.5\&.2\&.tm\&.n\fR +overtype_module_overtype +.TP +\fBfiles/_module_overtype-1\&.5\&.1\&.tm\&.n\fR +overtype_module_overtype +.TP \fBfiles/punk/_module_ansi-0\&.1\&.0\&.tm\&.n\fR punkshell_module_punk::ansi .TP @@ -332,12 +383,21 @@ punkshell_module_punk::args \fBfiles/punk/_module_cap-0\&.1\&.0\&.tm\&.n\fR punkshell_module_punk::cap .TP +\fBfiles/punk/_module_char-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::char +.TP +\fBfiles/punk/_module_encmime-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::encmime +.TP \fBfiles/punk/_module_fileline-0\&.1\&.0\&.tm\&.n\fR punkshell_module_punk::fileline .TP \fBfiles/punk/_module_flib-0\&.1\&.0\&.tm\&.n\fR punkshell_module_punk::flib .TP +\fBfiles/punk/_module_lib-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::lib +.TP \fBfiles/punk/_module_path-0\&.1\&.0\&.tm\&.n\fR punkshell_module_punk::path .RE @@ -419,7 +479,22 @@ punkshell_module_punk::ansi text .RS .TP +\fBfiles/_module_overtype-1\&.5\&.3\&.tm\&.n\fR +overtype_module_overtype +.TP +\fBfiles/_module_overtype-1\&.5\&.2\&.tm\&.n\fR +overtype_module_overtype +.TP +\fBfiles/_module_overtype-1\&.5\&.1\&.tm\&.n\fR +overtype_module_overtype +.TP \fBfiles/punk/_module_fileline-0\&.1\&.0\&.tm\&.n\fR punkshell_module_punk::fileline .RE +utility +.RS +.TP +\fBfiles/punk/_module_lib-0\&.1\&.0\&.tm\&.n\fR +punkshell_module_punk::lib +.RE .RE diff --git a/src/embedded/man/toc.n b/src/embedded/man/toc.n index 54c26123..478397d1 100644 --- a/src/embedded/man/toc.n +++ b/src/embedded/man/toc.n @@ -273,6 +273,15 @@ Database Class: \\fB\\$3\\fR doc .RS .TP +\fBovertype_module_overtype\fR +\fIfiles/_module_overtype-1\&.5\&.3\&.tm\&.n\fR: overtype text layout - ansi aware +.TP +\fBovertype_module_overtype\fR +\fIfiles/_module_overtype-1\&.5\&.2\&.tm\&.n\fR: overtype text layout - ansi aware +.TP +\fBovertype_module_overtype\fR +\fIfiles/_module_overtype-1\&.5\&.1\&.tm\&.n\fR: overtype text layout - ansi aware +.TP \fBpunkshell\fR \fIfiles/main\&.n\fR: punkshell - Core .TP @@ -291,14 +300,23 @@ doc \fBpunkshell_module_punk::cap\fR \fIfiles/punk/_module_cap-0\&.1\&.0\&.tm\&.n\fR: capability provider and handler plugin system .TP +\fBpunkshell_module_punk::char\fR +\fIfiles/punk/_module_char-0\&.1\&.0\&.tm\&.n\fR: character-set and unicode utilities +.TP +\fBpunkshell_module_punk::encmime\fR +\fIfiles/punk/_module_encmime-0\&.1\&.0\&.tm\&.n\fR: mime encodings related subset of tcllib mime +.TP \fBpunkshell_module_punk::fileline\fR \fIfiles/punk/_module_fileline-0\&.1\&.0\&.tm\&.n\fR: file line-handling utilities .TP \fBpunkshell_module_punk::flib\fR -\fIfiles/punk/_module_flib-0\&.1\&.0\&.tm\&.n\fR: Module API +\fIfiles/punk/_module_flib-0\&.1\&.0\&.tm\&.n\fR: flib experimental +.TP +\fBpunkshell_module_punk::lib\fR +\fIfiles/punk/_module_lib-0\&.1\&.0\&.tm\&.n\fR: punk general utility functions .TP \fBpunkshell_module_punk::mix::commandset::project\fR -\fIfiles/punk/mix/commandset/_module_project-0\&.1\&.0\&.tm\&.n\fR: pmix commandset - project +\fIfiles/punk/mix/commandset/_module_project-0\&.1\&.0\&.tm\&.n\fR: dec commandset - project .TP \fBpunkshell_module_punk::path\fR \fIfiles/punk/_module_path-0\&.1\&.0\&.tm\&.n\fR: Filesystem path utilities diff --git a/src/embedded/md/.doc/tocdoc b/src/embedded/md/.doc/tocdoc index 0b0e5394..fcd66157 100644 --- a/src/embedded/md/.doc/tocdoc +++ b/src/embedded/md/.doc/tocdoc @@ -1,12 +1,18 @@ [toc_begin {Table Of Contents} doc] +[item doc/files/_module_overtype-1.5.2.tm.md overtype_module_overtype {overtype text layout - ansi aware}] +[item doc/files/_module_overtype-1.5.3.tm.md overtype_module_overtype {overtype text layout - ansi aware}] +[item doc/files/_module_overtype-1.5.1.tm.md overtype_module_overtype {overtype text layout - ansi aware}] [item doc/files/main.md punkshell {punkshell - Core}] [item doc/files/project_changes.md punkshell__project_changes {punkshell Changes}] [item doc/files/project_intro.md punkshell__project_intro {Introduction to punkshell}] [item doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi {Ansi string functions}] [item doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args {args parsing}] [item doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap {capability provider and handler plugin system}] +[item doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char {character-set and unicode utilities}] +[item doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}] [item doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline {file line-handling utilities}] -[item doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib {Module API}] -[item doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md punkshell_module_punk::mix::commandset::project {pmix commandset - project}] +[item doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib {flib experimental}] +[item doc/files/punk/_module_lib-0.1.0.tm.md punkshell_module_punk::lib {punk general utility functions}] +[item doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md punkshell_module_punk::mix::commandset::project {dec commandset - project}] [item doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path {Filesystem path utilities}] [toc_end] diff --git a/src/embedded/md/.idx b/src/embedded/md/.idx index 30b5609e..b6c878ac 100644 --- a/src/embedded/md/.idx +++ b/src/embedded/md/.idx @@ -1 +1 @@ -{file {{doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline}} console {{doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi}} repl {{doc/files/project_intro.md punkshell__project_intro} {doc/files/project_changes.md punkshell__project_changes} {doc/files/main.md punkshell}} text {{doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline}} arguments {{doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args}} changelog {{doc/files/project_changes.md punkshell__project_changes}} shell {{doc/files/project_intro.md punkshell__project_intro} {doc/files/project_changes.md punkshell__project_changes} {doc/files/main.md punkshell}} capability {{doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap}} ansi {{doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi}} parse {{doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} {doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args}} terminal {{doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi}} proc {{doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args}} path {{doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path}} filesystem {{doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path}} args {{doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args}} punk {{doc/files/project_intro.md punkshell__project_intro} {doc/files/project_changes.md punkshell__project_changes} {doc/files/main.md punkshell}} module {{doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} {doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap} {doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path} {doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib} {doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} {doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi}} plugin {{doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap}} string {{doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi}}} {{module doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} . {shell doc/files/project_changes.md punkshell__project_changes} . {changelog doc/files/project_changes.md punkshell__project_changes} . {shell doc/files/main.md punkshell} . {string doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} . {parse doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {text doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {repl doc/files/project_intro.md punkshell__project_intro} . {proc doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {module doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap} . {path doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path} . {filesystem doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path} . {args doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {plugin doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap} . {module doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path} . {module doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib} . {module doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {console doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} . {shell doc/files/project_intro.md punkshell__project_intro} . {punk doc/files/project_changes.md punkshell__project_changes} . {parse doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {punk doc/files/main.md punkshell} . {module doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {repl doc/files/project_changes.md punkshell__project_changes} . {punk doc/files/project_intro.md punkshell__project_intro} . {file doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {arguments doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {repl doc/files/main.md punkshell} . {ansi doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} . {capability doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap} . {terminal doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} .} 19 {file file repl repl console console text text arguments arguments shell shell changelog changelog capability capability parse parse ansi ansi proc proc terminal terminal filesystem filesystem path path args args module module punk punk plugin plugin string string} \ No newline at end of file +{file {{doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline}} encodings {{doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime} {doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char}} console {{doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi}} repl {{doc/files/project_intro.md punkshell__project_intro} {doc/files/main.md punkshell} {doc/files/project_changes.md punkshell__project_changes}} utility {{doc/files/punk/_module_lib-0.1.0.tm.md punkshell_module_punk::lib}} text {{doc/files/_module_overtype-1.5.2.tm.md overtype_module_overtype} {doc/files/_module_overtype-1.5.3.tm.md overtype_module_overtype} {doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} {doc/files/_module_overtype-1.5.1.tm.md overtype_module_overtype}} arguments {{doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args}} experimental {{doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib}} BOM {{doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline}} encoding {{doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline}} changelog {{doc/files/project_changes.md punkshell__project_changes}} shell {{doc/files/project_intro.md punkshell__project_intro} {doc/files/main.md punkshell} {doc/files/project_changes.md punkshell__project_changes}} capability {{doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap}} parse {{doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} {doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args}} ansi {{doc/files/_module_overtype-1.5.2.tm.md overtype_module_overtype} {doc/files/_module_overtype-1.5.3.tm.md overtype_module_overtype} {doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} {doc/files/_module_overtype-1.5.1.tm.md overtype_module_overtype}} terminal {{doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi}} proc {{doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args}} filesystem {{doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path}} path {{doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path}} args {{doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args}} module {{doc/files/_module_overtype-1.5.2.tm.md overtype_module_overtype} {doc/files/_module_overtype-1.5.3.tm.md overtype_module_overtype} {doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib} {doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} {doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} {doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap} {doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path} {doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} {doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime} {doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char} {doc/files/punk/_module_lib-0.1.0.tm.md punkshell_module_punk::lib} {doc/files/_module_overtype-1.5.1.tm.md overtype_module_overtype}} punk {{doc/files/project_intro.md punkshell__project_intro} {doc/files/main.md punkshell} {doc/files/project_changes.md punkshell__project_changes}} string {{doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi}} plugin {{doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap}} lib {{doc/files/punk/_module_lib-0.1.0.tm.md punkshell_module_punk::lib}}} {{changelog doc/files/project_changes.md punkshell__project_changes} . {text doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {shell doc/files/main.md punkshell} . {ansi doc/files/_module_overtype-1.5.1.tm.md overtype_module_overtype} . {filesystem doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path} . {encoding doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {module doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib} . {module doc/files/_module_overtype-1.5.1.tm.md overtype_module_overtype} . {module doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime} . {arguments doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {file doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {module doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} . {shell doc/files/project_changes.md punkshell__project_changes} . {repl doc/files/project_intro.md punkshell__project_intro} . {module doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap} . {path doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path} . {args doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {module doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path} . {module doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {utility doc/files/punk/_module_lib-0.1.0.tm.md punkshell_module_punk::lib} . {punk doc/files/main.md punkshell} . {encodings doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char} . {repl doc/files/project_changes.md punkshell__project_changes} . {module doc/files/punk/_module_lib-0.1.0.tm.md punkshell_module_punk::lib} . {parse doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {BOM doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {proc doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args} . {plugin doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap} . {console doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} . {shell doc/files/project_intro.md punkshell__project_intro} . {punk doc/files/project_changes.md punkshell__project_changes} . {module doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {encodings doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime} . {repl doc/files/main.md punkshell} . {experimental doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib} . {ansi doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} . {text doc/files/_module_overtype-1.5.3.tm.md overtype_module_overtype} . {terminal doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} . {string doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi} . {lib doc/files/punk/_module_lib-0.1.0.tm.md punkshell_module_punk::lib} . {ansi doc/files/_module_overtype-1.5.3.tm.md overtype_module_overtype} . {text doc/files/_module_overtype-1.5.2.tm.md overtype_module_overtype} . {module doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char} . {module doc/files/_module_overtype-1.5.3.tm.md overtype_module_overtype} . {parse doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline} . {ansi doc/files/_module_overtype-1.5.2.tm.md overtype_module_overtype} . {punk doc/files/project_intro.md punkshell__project_intro} . {text doc/files/_module_overtype-1.5.1.tm.md overtype_module_overtype} . {capability doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap} . {module doc/files/_module_overtype-1.5.2.tm.md overtype_module_overtype} .} 25 {file file encodings encodings repl repl console console utility utility text text experimental experimental BOM bom arguments arguments encoding encoding shell shell changelog changelog capability capability ansi ansi parse parse terminal terminal proc proc filesystem filesystem path path args args punk punk module module string string plugin plugin lib lib} \ No newline at end of file diff --git a/src/embedded/md/.toc b/src/embedded/md/.toc index 81739c3f..11a8b75b 100644 --- a/src/embedded/md/.toc +++ b/src/embedded/md/.toc @@ -1 +1 @@ -doc {doc/toc {{doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline {file line-handling utilities}} {doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap {capability provider and handler plugin system}} {doc/files/project_intro.md punkshell__project_intro {Introduction to punkshell}} {doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path {Filesystem path utilities}} {doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib {Module API}} {doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args {args parsing}} {doc/files/project_changes.md punkshell__project_changes {punkshell Changes}} {doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md punkshell_module_punk::mix::commandset::project {pmix commandset - project}} {doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi {Ansi string functions}} {doc/files/main.md punkshell {punkshell - Core}}}} \ No newline at end of file +doc {doc/toc {{doc/files/project_intro.md punkshell__project_intro {Introduction to punkshell}} {doc/files/_module_overtype-1.5.2.tm.md overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/_module_overtype-1.5.3.tm.md overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/main.md punkshell {punkshell - Core}} {doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::flib {flib experimental}} {doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md punkshell_module_punk::mix::commandset::project {dec commandset - project}} {doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::fileline {file line-handling utilities}} {doc/files/punk/_module_ansi-0.1.0.tm.md punkshell_module_punk::ansi {Ansi string functions}} {doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::cap {capability provider and handler plugin system}} {doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::path {Filesystem path utilities}} {doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::args {args parsing}} {doc/files/project_changes.md punkshell__project_changes {punkshell Changes}} {doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}} {doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::char {character-set and unicode utilities}} {doc/files/punk/_module_lib-0.1.0.tm.md punkshell_module_punk::lib {punk general utility functions}} {doc/files/_module_overtype-1.5.1.tm.md overtype_module_overtype {overtype text layout - ansi aware}}}} \ No newline at end of file diff --git a/src/embedded/md/.xrf b/src/embedded/md/.xrf index 65f3ef59..4fb28435 100644 --- a/src/embedded/md/.xrf +++ b/src/embedded/md/.xrf @@ -1 +1 @@ -kw,capability {index.md capability} punkshell_module_punk::flib doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::path(0) doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::args(0) doc/files/punk/_module_args-0.1.0.tm.md kw,proc {index.md proc} sa,punkshell_module_punk::mix::commandset::project(0) doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md {punkshell Changes} doc/files/project_changes.md punkshell_module_punk::ansi doc/files/punk/_module_ansi-0.1.0.tm.md {Introduction to punkshell} doc/files/project_intro.md proc {index.md proc} sa,punkshell_module_punk::fileline(0) doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::mix::commandset::project(0) doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md sa,punkshell(n) doc/files/main.md filesystem {index.md filesystem} sa,punkshell doc/files/main.md kw,shell {index.md shell} sa,punkshell_module_punk::cap doc/files/punk/_module_cap-0.1.0.tm.md sa,punkshell_module_punk::cap(0) doc/files/punk/_module_cap-0.1.0.tm.md kw,parse {index.md parse} sa,punkshell_module_punk::flib(0) doc/files/punk/_module_flib-0.1.0.tm.md sa,punkshell__project_changes(n) doc/files/project_changes.md kw,terminal {index.md terminal} kw,args {index.md args} kw,path {index.md path} kw,module {index.md module} punkshell_module_punk::fileline(0) doc/files/punk/_module_fileline-0.1.0.tm.md punkshell(n) doc/files/main.md kw,string {index.md string} kw,plugin {index.md plugin} punkshell doc/files/main.md kw,file {index.md file} punkshell_module_punk::cap doc/files/punk/_module_cap-0.1.0.tm.md changelog {index.md changelog} punkshell_module_punk::cap(0) doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::flib(0) doc/files/punk/_module_flib-0.1.0.tm.md punkshell__project_changes(n) doc/files/project_changes.md sa,punkshell__project_changes doc/files/project_changes.md kw,arguments {index.md arguments} terminal {index.md terminal} args {index.md args} path {index.md path} file {index.md file} sa,punkshell_module_punk::path doc/files/punk/_module_path-0.1.0.tm.md sa,punkshell_module_punk::args doc/files/punk/_module_args-0.1.0.tm.md {args parsing} doc/files/punk/_module_args-0.1.0.tm.md punkshell__project_changes doc/files/project_changes.md {Ansi string functions} doc/files/punk/_module_ansi-0.1.0.tm.md kw,filesystem {index.md filesystem} sa,punkshell_module_punk::mix::commandset::project doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md {Module API} doc/files/punk/_module_flib-0.1.0.tm.md sa,punkshell_module_punk::ansi(0) doc/files/punk/_module_ansi-0.1.0.tm.md shell {index.md shell} punkshell_module_punk::path doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::args doc/files/punk/_module_args-0.1.0.tm.md kw,repl {index.md repl} capability {index.md capability} kw,text {index.md text} parse {index.md parse} sa,punkshell_module_punk::fileline doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::mix::commandset::project doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md {punkshell - Core} doc/files/main.md {pmix commandset - project} doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md punkshell_module_punk::ansi(0) doc/files/punk/_module_ansi-0.1.0.tm.md kw,ansi {index.md ansi} {capability provider and handler plugin system} doc/files/punk/_module_cap-0.1.0.tm.md console {index.md console} repl {index.md repl} punkshell_module_punk::fileline doc/files/punk/_module_fileline-0.1.0.tm.md kw,punk {index.md punk} sa,punkshell__project_intro(n) doc/files/project_intro.md text {index.md text} sa,punkshell__project_intro doc/files/project_intro.md {Filesystem path utilities} doc/files/punk/_module_path-0.1.0.tm.md arguments {index.md arguments} sa,punkshell_module_punk::flib doc/files/punk/_module_flib-0.1.0.tm.md kw,console {index.md console} sa,punkshell_module_punk::path(0) doc/files/punk/_module_path-0.1.0.tm.md sa,punkshell_module_punk::args(0) doc/files/punk/_module_args-0.1.0.tm.md ansi {index.md ansi} punkshell__project_intro(n) doc/files/project_intro.md {file line-handling utilities} doc/files/punk/_module_fileline-0.1.0.tm.md punkshell__project_intro doc/files/project_intro.md kw,changelog {index.md changelog} module {index.md module} punk {index.md punk} sa,punkshell_module_punk::ansi doc/files/punk/_module_ansi-0.1.0.tm.md string {index.md string} plugin {index.md plugin} \ No newline at end of file +kw,capability {index.md capability} punkshell_module_punk::flib doc/files/punk/_module_flib-0.1.0.tm.md punkshell_module_punk::path(0) doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::args(0) doc/files/punk/_module_args-0.1.0.tm.md kw,proc {index.md proc} {flib experimental} doc/files/punk/_module_flib-0.1.0.tm.md sa,punkshell_module_punk::mix::commandset::project(0) doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md kw,lib {index.md lib} punkshell_module_punk::ansi doc/files/punk/_module_ansi-0.1.0.tm.md {punkshell Changes} doc/files/project_changes.md kw,encodings {index.md encodings} {punk general utility functions} doc/files/punk/_module_lib-0.1.0.tm.md {Introduction to punkshell} doc/files/project_intro.md proc {index.md proc} sa,punkshell(n) doc/files/main.md punkshell_module_punk::mix::commandset::project(0) doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md sa,punkshell_module_punk::fileline(0) doc/files/punk/_module_fileline-0.1.0.tm.md filesystem {index.md filesystem} sa,punkshell doc/files/main.md kw,shell {index.md shell} sa,punkshell_module_punk::cap doc/files/punk/_module_cap-0.1.0.tm.md {mime encodings related subset of tcllib mime} doc/files/punk/_module_encmime-0.1.0.tm.md sa,punkshell_module_punk::cap(0) doc/files/punk/_module_cap-0.1.0.tm.md kw,parse {index.md parse} sa,punkshell_module_punk::flib(0) doc/files/punk/_module_flib-0.1.0.tm.md sa,punkshell__project_changes(n) doc/files/project_changes.md kw,terminal {index.md terminal} kw,args {index.md args} kw,path {index.md path} utility {index.md utility} kw,module {index.md module} punkshell(n) doc/files/main.md punkshell_module_punk::fileline(0) doc/files/punk/_module_fileline-0.1.0.tm.md kw,plugin {index.md plugin} kw,string {index.md string} punkshell doc/files/main.md kw,file {index.md file} punkshell_module_punk::cap doc/files/punk/_module_cap-0.1.0.tm.md changelog {index.md changelog} punkshell_module_punk::cap(0) doc/files/punk/_module_cap-0.1.0.tm.md punkshell_module_punk::flib(0) doc/files/punk/_module_flib-0.1.0.tm.md punkshell__project_changes(n) doc/files/project_changes.md kw,utility {index.md utility} {dec commandset - project} doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md sa,punkshell__project_changes doc/files/project_changes.md kw,arguments {index.md arguments} kw,experimental {index.md experimental} terminal {index.md terminal} args {index.md args} path {index.md path} file {index.md file} sa,punkshell_module_punk::path doc/files/punk/_module_path-0.1.0.tm.md sa,punkshell_module_punk::args doc/files/punk/_module_args-0.1.0.tm.md {args parsing} doc/files/punk/_module_args-0.1.0.tm.md encodings {index.md encodings} {Ansi string functions} doc/files/punk/_module_ansi-0.1.0.tm.md punkshell__project_changes doc/files/project_changes.md sa,punkshell_module_punk::encmime(0) doc/files/punk/_module_encmime-0.1.0.tm.md sa,punkshell_module_punk::char(0) doc/files/punk/_module_char-0.1.0.tm.md sa,punkshell_module_punk::lib doc/files/punk/_module_lib-0.1.0.tm.md kw,filesystem {index.md filesystem} sa,punkshell_module_punk::mix::commandset::project doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md experimental {index.md experimental} sa,overtype_module_overtype doc/files/_module_overtype-1.5.1.tm.md sa,punkshell_module_punk::ansi(0) doc/files/punk/_module_ansi-0.1.0.tm.md shell {index.md shell} sa,overtype_module_overtype(0) doc/files/_module_overtype-1.5.1.tm.md {overtype text layout - ansi aware} doc/files/_module_overtype-1.5.1.tm.md punkshell_module_punk::path doc/files/punk/_module_path-0.1.0.tm.md punkshell_module_punk::args doc/files/punk/_module_args-0.1.0.tm.md kw,repl {index.md repl} capability {index.md capability} punkshell_module_punk::encmime(0) doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::char(0) doc/files/punk/_module_char-0.1.0.tm.md punkshell_module_punk::lib doc/files/punk/_module_lib-0.1.0.tm.md kw,text {index.md text} parse {index.md parse} {punkshell - Core} doc/files/main.md punkshell_module_punk::mix::commandset::project doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md sa,punkshell_module_punk::fileline doc/files/punk/_module_fileline-0.1.0.tm.md sa,punkshell_module_punk::lib(0) doc/files/punk/_module_lib-0.1.0.tm.md kw,encoding {index.md encoding} overtype_module_overtype doc/files/_module_overtype-1.5.1.tm.md punkshell_module_punk::ansi(0) doc/files/punk/_module_ansi-0.1.0.tm.md overtype_module_overtype(0) doc/files/_module_overtype-1.5.1.tm.md kw,ansi {index.md ansi} {capability provider and handler plugin system} doc/files/punk/_module_cap-0.1.0.tm.md sa,punkshell_module_punk::encmime doc/files/punk/_module_encmime-0.1.0.tm.md sa,punkshell_module_punk::char doc/files/punk/_module_char-0.1.0.tm.md console {index.md console} repl {index.md repl} punkshell_module_punk::fileline doc/files/punk/_module_fileline-0.1.0.tm.md punkshell_module_punk::lib(0) doc/files/punk/_module_lib-0.1.0.tm.md kw,punk {index.md punk} sa,punkshell__project_intro(n) doc/files/project_intro.md text {index.md text} sa,punkshell__project_intro doc/files/project_intro.md {Filesystem path utilities} doc/files/punk/_module_path-0.1.0.tm.md arguments {index.md arguments} BOM {index.md bom} encoding {index.md encoding} sa,punkshell_module_punk::flib doc/files/punk/_module_flib-0.1.0.tm.md kw,console {index.md console} sa,punkshell_module_punk::path(0) doc/files/punk/_module_path-0.1.0.tm.md sa,punkshell_module_punk::args(0) doc/files/punk/_module_args-0.1.0.tm.md punkshell_module_punk::encmime doc/files/punk/_module_encmime-0.1.0.tm.md punkshell_module_punk::char doc/files/punk/_module_char-0.1.0.tm.md ansi {index.md ansi} {character-set and unicode utilities} doc/files/punk/_module_char-0.1.0.tm.md kw,BOM {index.md bom} punkshell__project_intro(n) doc/files/project_intro.md punkshell__project_intro doc/files/project_intro.md {file line-handling utilities} doc/files/punk/_module_fileline-0.1.0.tm.md kw,changelog {index.md changelog} punk {index.md punk} module {index.md module} sa,punkshell_module_punk::ansi doc/files/punk/_module_ansi-0.1.0.tm.md lib {index.md lib} plugin {index.md plugin} string {index.md string} \ No newline at end of file diff --git a/src/embedded/md/doc/files/_module_overtype-1.5.1.tm.md b/src/embedded/md/doc/files/_module_overtype-1.5.1.tm.md new file mode 100644 index 00000000..a7b1638b --- /dev/null +++ b/src/embedded/md/doc/files/_module_overtype-1.5.1.tm.md @@ -0,0 +1,78 @@ + +[//000000001]: # (overtype\_module\_overtype \- overtype text layout) +[//000000002]: # (Generated from file '\_module\_overtype\-1\.5\.1\.tm\.man' by tcllib/doctools with format 'markdown') +[//000000003]: # (Copyright © 2024) +[//000000004]: # (overtype\_module\_overtype\(0\) 1\.5\.1 doc "overtype text layout") + +
[ Main Table Of Contents | Table Of Contents | Keyword Index ]
+ +# NAME + +overtype\_module\_overtype \- overtype text layout \- ansi aware + +# Table Of Contents + + - [Table Of Contents](#toc) + + - [Synopsis](#synopsis) + + - [Description](#section1) + + - [Overview](#section2) + + - [Concepts](#subsection1) + + - [dependencies](#subsection2) + + - [API](#section3) + + - [Keywords](#keywords) + + - [Copyright](#copyright) + +# SYNOPSIS + +package require overtype + +# DESCRIPTION + +\- + +# Overview + +overview of overtype + +## Concepts + +\- + +## dependencies + +packages used by overtype + + - __Tcl 8\.6__ + + - __textutil__ + + - __punk::ansi__ + + \- required to detect, split, strip and calculate lengths of text possibly + containing ansi codes + + - __punk::char__ + + \- box drawing \- and also unicode character width determination for proper + layout of text with double\-column\-width chars + +# API + +# KEYWORDS + +[ansi](\.\./\.\./index\.md\#ansi), [module](\.\./\.\./index\.md\#module), +[text](\.\./\.\./index\.md\#text) + +# COPYRIGHT + +Copyright © 2024 diff --git a/src/embedded/md/doc/files/_module_overtype-1.5.2.tm.md b/src/embedded/md/doc/files/_module_overtype-1.5.2.tm.md new file mode 100644 index 00000000..4b3d82e7 --- /dev/null +++ b/src/embedded/md/doc/files/_module_overtype-1.5.2.tm.md @@ -0,0 +1,78 @@ + +[//000000001]: # (overtype\_module\_overtype \- overtype text layout) +[//000000002]: # (Generated from file '\_module\_overtype\-1\.5\.2\.tm\.man' by tcllib/doctools with format 'markdown') +[//000000003]: # (Copyright © 2024) +[//000000004]: # (overtype\_module\_overtype\(0\) 1\.5\.2 doc "overtype text layout") + +
[ Main Table Of Contents | Table Of Contents | Keyword Index ]
+ +# NAME + +overtype\_module\_overtype \- overtype text layout \- ansi aware + +# Table Of Contents + + - [Table Of Contents](#toc) + + - [Synopsis](#synopsis) + + - [Description](#section1) + + - [Overview](#section2) + + - [Concepts](#subsection1) + + - [dependencies](#subsection2) + + - [API](#section3) + + - [Keywords](#keywords) + + - [Copyright](#copyright) + +# SYNOPSIS + +package require overtype + +# DESCRIPTION + +\- + +# Overview + +overview of overtype + +## Concepts + +\- + +## dependencies + +packages used by overtype + + - __Tcl 8\.6__ + + - __textutil__ + + - __punk::ansi__ + + \- required to detect, split, strip and calculate lengths of text possibly + containing ansi codes + + - __punk::char__ + + \- box drawing \- and also unicode character width determination for proper + layout of text with double\-column\-width chars + +# API + +# KEYWORDS + +[ansi](\.\./\.\./index\.md\#ansi), [module](\.\./\.\./index\.md\#module), +[text](\.\./\.\./index\.md\#text) + +# COPYRIGHT + +Copyright © 2024 diff --git a/src/embedded/md/doc/files/_module_overtype-1.5.3.tm.md b/src/embedded/md/doc/files/_module_overtype-1.5.3.tm.md new file mode 100644 index 00000000..4a12e368 --- /dev/null +++ b/src/embedded/md/doc/files/_module_overtype-1.5.3.tm.md @@ -0,0 +1,78 @@ + +[//000000001]: # (overtype\_module\_overtype \- overtype text layout) +[//000000002]: # (Generated from file '\_module\_overtype\-1\.5\.3\.tm\.man' by tcllib/doctools with format 'markdown') +[//000000003]: # (Copyright © 2024) +[//000000004]: # (overtype\_module\_overtype\(0\) 1\.5\.3 doc "overtype text layout") + +
[ Main Table Of Contents | Table Of Contents | Keyword Index ]
+ +# NAME + +overtype\_module\_overtype \- overtype text layout \- ansi aware + +# Table Of Contents + + - [Table Of Contents](#toc) + + - [Synopsis](#synopsis) + + - [Description](#section1) + + - [Overview](#section2) + + - [Concepts](#subsection1) + + - [dependencies](#subsection2) + + - [API](#section3) + + - [Keywords](#keywords) + + - [Copyright](#copyright) + +# SYNOPSIS + +package require overtype + +# DESCRIPTION + +\- + +# Overview + +overview of overtype + +## Concepts + +\- + +## dependencies + +packages used by overtype + + - __Tcl 8\.6__ + + - __textutil__ + + - __punk::ansi__ + + \- required to detect, split, strip and calculate lengths of text possibly + containing ansi codes + + - __punk::char__ + + \- box drawing \- and also unicode character width determination for proper + layout of text with double\-column\-width chars + +# API + +# KEYWORDS + +[ansi](\.\./\.\./index\.md\#ansi), [module](\.\./\.\./index\.md\#module), +[text](\.\./\.\./index\.md\#text) + +# COPYRIGHT + +Copyright © 2024 diff --git a/src/embedded/md/doc/files/punk/_module_args-0.1.0.tm.md b/src/embedded/md/doc/files/punk/_module_args-0.1.0.tm.md index a5ca3ac5..049171b7 100644 --- a/src/embedded/md/doc/files/punk/_module_args-0.1.0.tm.md +++ b/src/embedded/md/doc/files/punk/_module_args-0.1.0.tm.md @@ -143,7 +143,11 @@ class definitions * multiline\-string *optionspecs* - This a block of text with records delimited by newlines \(lf or crlf\) + This a block of text with records delimited by newlines \(lf or crlf\) \- + but with multiline values allowed if properly quoted/braced + + 'info complete' is used to determine if a record spans multiple lines + due to multiline values Each optionspec line must be of the form: diff --git a/src/embedded/md/doc/files/punk/_module_char-0.1.0.tm.md b/src/embedded/md/doc/files/punk/_module_char-0.1.0.tm.md new file mode 100644 index 00000000..be0237a2 --- /dev/null +++ b/src/embedded/md/doc/files/punk/_module_char-0.1.0.tm.md @@ -0,0 +1,76 @@ + +[//000000001]: # (punkshell\_module\_punk::char \- character\-set nad unicode) +[//000000002]: # (Generated from file '\_module\_char\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') +[//000000003]: # (Copyright © 2024) +[//000000004]: # (punkshell\_module\_punk::char\(0\) 0\.1\.0 doc "character\-set nad unicode") + +
[ Main Table Of Contents | Table Of Contents | Keyword Index ]
+ +# NAME + +punkshell\_module\_punk::char \- character\-set and unicode utilities + +# Table Of Contents + + - [Table Of Contents](#toc) + + - [Synopsis](#synopsis) + + - [Description](#section1) + + - [Overview](#section2) + + - [Concepts](#subsection1) + + - [dependencies](#subsection2) + + - [API](#section3) + + - [Keywords](#keywords) + + - [Copyright](#copyright) + +# SYNOPSIS + +package require punk::char + +# DESCRIPTION + +# Overview + +overview of punk::char + +## Concepts + +\- + +## dependencies + +packages used by punk::char + + - __Tcl 8\.6__ + + - __overtype__ + + \- + + - __textblock__ + + \- + + - __[console](\.\./\.\./\.\./index\.md\#console)__ + + \- + +# API + +# KEYWORDS + +[encodings](\.\./\.\./\.\./index\.md\#encodings), +[module](\.\./\.\./\.\./index\.md\#module) + +# COPYRIGHT + +Copyright © 2024 diff --git a/src/embedded/md/doc/files/punk/_module_encmime-0.1.0.tm.md b/src/embedded/md/doc/files/punk/_module_encmime-0.1.0.tm.md new file mode 100644 index 00000000..3e260c1d --- /dev/null +++ b/src/embedded/md/doc/files/punk/_module_encmime-0.1.0.tm.md @@ -0,0 +1,136 @@ + +[//000000001]: # (punkshell\_module\_punk::encmime \- mime encoding names and aliases) +[//000000002]: # (Generated from file '\_module\_encmime\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') +[//000000003]: # (Copyright © 2024) +[//000000004]: # (punkshell\_module\_punk::encmime\(0\) 0\.1\.0 doc "mime encoding names and aliases") + +
[ Main Table Of Contents | Table Of Contents | Keyword Index ]
+ +# NAME + +punkshell\_module\_punk::encmime \- mime encodings related subset of tcllib mime + +# Table Of Contents + + - [Table Of Contents](#toc) + + - [Synopsis](#synopsis) + + - [Description](#section1) + + - [Overview](#section2) + + - [Concepts](#subsection1) + + - [dependencies](#subsection2) + + - [API](#section3) + + - [Namespace punk::encmime::class](#subsection3) + + - [Namespace punk::encmime](#subsection4) + + - [Namespace punk::encmime::lib](#subsection5) + + - [Internal](#section4) + + - [Namespace punk::encmime::system](#subsection6) + + - [Keywords](#keywords) + + - [Copyright](#copyright) + +# SYNOPSIS + +package require punk::encmime + +[mapencoding *enc*](#1) +[reversemapencoding *mimeType*](#2) + +# DESCRIPTION + +This is a workaround package to provide the mime encoding names used in tcllib's +mime package \- without additional dependencies + +tcllib mime loads either Trf or tcl::memchan functions\. punk::encmime needs to +work in a context where tcllib may not yet be loaded/available, and even these +few dependencies are too much\. + +MAINTENANCE NOTE: The data in this module needs to be checked against the latest +tcllib mime package + +taken from tcllib mime version: 1\.7\.2 in 2024 + +# Overview + +overview of punk::encmime + +## Concepts + +Where practical \- the actual tcllib mime package should be used instead\. + +This set of encoding related functions is a snapshot of the data from the mime +package \- and may not be up to date\. + +This pseudo\-package was created to minimize dependencies for punk::char and +punk::overtype + +## dependencies + +packages used by punk::encmime + + - __Tcl 8\.6__ + +# API + +## Namespace punk::encmime::class + +class definitions + +## Namespace punk::encmime + + - mapencoding *enc* + + maps tcl encodings onto the proper names for their MIME charset type\. + + This is only done for encodings whose charset types were known\. + + The remaining encodings return \{\} for now\. + + NOTE: consider using tcllib's mime::mapencoding instead if mime package + available + + - reversemapencoding *mimeType* + + mime::reversemapencodings maps MIME charset types onto tcl encoding names\. + + Returns the tcl encoding name for the specified mime charset, or \{\} if none + is known + + Arguments: + + * string *mimeType* + + The MIME charset to convert into a tcl encoding type\. + + NOTE: consider using tcllib's mime::reversemapencoding instead if mime + package available + +## Namespace punk::encmime::lib + +Secondary functions that are part of the API + +# Internal + +## Namespace punk::encmime::system + +# KEYWORDS + +[encodings](\.\./\.\./\.\./index\.md\#encodings), +[module](\.\./\.\./\.\./index\.md\#module) + +# COPYRIGHT + +Copyright © 2024 diff --git a/src/embedded/md/doc/files/punk/_module_fileline-0.1.0.tm.md b/src/embedded/md/doc/files/punk/_module_fileline-0.1.0.tm.md index 27ff3de3..c15edd78 100644 --- a/src/embedded/md/doc/files/punk/_module_fileline-0.1.0.tm.md +++ b/src/embedded/md/doc/files/punk/_module_fileline-0.1.0.tm.md @@ -74,10 +74,11 @@ package require punk::fileline [class::textinfo __numeric\_chunkrange__ *startidx* *endidx*](#20) [class::textinfo __normalize\_indices__ *startidx* *endidx* *max*](#21) [class::textinfo __regenerate\_lines__](#22) -[__lib::range\_spans\_chunk\_boundaries__ *start* *end* *chunksize*](#23) -[__ansi::a__](#24) -[__ansi::a\+__](#25) -[__ansi::stripansi__](#26) +[get\_textinfo ?option value\.\.\.? ?datachunk?](#23) +[__lib::range\_spans\_chunk\_boundaries__ *start* *end* *chunksize*](#24) +[__ansi::a__](#25) +[__ansi::a\+__](#26) +[__ansi::stripansi__](#27) # DESCRIPTION @@ -94,8 +95,13 @@ chars/bytes is important For example \- windows \.cmd/\.bat files need some byte counting to determine if labels lie on chunk boundaries and need to be moved\. -Despite including the word 'file', the library doesn't deal with reading/writing -to the filesystem\. It is for operating on text\-file like data\. +This chunk\-size counting will depend on the character encoding\. + +Despite including the word 'file', the library doesn't necessarily deal with +reading/writing to the filesystem \- + +The raw data can be supplied as a string, or loaded from a file using +punk::fileline::get\_textinfo \-file ## Concepts @@ -387,9 +393,51 @@ class definitions Core API functions for punk::fileline + - get\_textinfo ?option value\.\.\.? ?datachunk? + + Returns textinfo object instance representing data in string datachunk or if + \-file filename supplied \- data loaded from a file + + The encoding used is as specified in the \-encoding option \- or from the Byte + Order Mark \(bom\) at the beginning of the data + + For Tcl 8\.6 \- encodings such as utf\-16le may not be available \- so the bytes + are swapped appropriately depending on the platform byteOrder and encoding + 'unicode' is used\. + + encoding defaults to utf\-8 if no \-encoding specified and no BOM was found + + Specify \-encoding binary to perform no encoding conversion + + Whether \-encoding was specified or not \- by default the BOM characters are + not retained in the line\-data + + If \-includebom 1 is specified \- the bom will be retained in the stored chunk + and the data for line 1, but will undergo the same encoding transformation + as the rest of the data + + The get\_bomid method of the returned object will contain an identifier for + any BOM encountered\. + + e\.g utf\-8,utf\-16be, utf\-16le, utf\-32be, utf32\-le, SCSU, BOCU\-1,GB18030, + UTF\-EBCDIC, utf\-1, utf\-7 + + If the encoding specified in the BOM isn't recognised by Tcl \- the resulting + data is likely to remain as the raw bytes \(binary translation\) + + Currently only utf\-8, utf\-16\* and utf\-32\* are properly supported even though + the other BOMs are detected, reported via get\_bomid, and stripped from the + data\. + + GB18030 falls back to cp936/gbk \(unless a gb18030 encoding has been + installed\)\. Use \-encoding binary if this isn't suitable and you need to do + your own processing of the raw data\. + ## Namespace punk::fileline::lib - - __lib::range\_spans\_chunk\_boundaries__ *start* *end* *chunksize* +Secondary functions that are part of the API + + - __lib::range\_spans\_chunk\_boundaries__ *start* *end* *chunksize* Takes start and end offset, generally representing bytes or character indices, and computes a list of boundaries at multiples of the chunksize @@ -440,14 +488,15 @@ unavailable See __punk::ansi__ for documentation - - __ansi::a__ + - __ansi::a__ - - __ansi::a\+__ + - __ansi::a\+__ - - __ansi::stripansi__ + - __ansi::stripansi__ # KEYWORDS +[BOM](\.\./\.\./\.\./index\.md\#bom), [encoding](\.\./\.\./\.\./index\.md\#encoding), [file](\.\./\.\./\.\./index\.md\#file), [module](\.\./\.\./\.\./index\.md\#module), [parse](\.\./\.\./\.\./index\.md\#parse), [text](\.\./\.\./\.\./index\.md\#text) diff --git a/src/embedded/md/doc/files/punk/_module_flib-0.1.0.tm.md b/src/embedded/md/doc/files/punk/_module_flib-0.1.0.tm.md index 625bcfa9..b6959cdb 100644 --- a/src/embedded/md/doc/files/punk/_module_flib-0.1.0.tm.md +++ b/src/embedded/md/doc/files/punk/_module_flib-0.1.0.tm.md @@ -1,8 +1,8 @@ -[//000000001]: # (punkshell\_module\_punk::flib \- \-) +[//000000001]: # (punkshell\_module\_punk::flib \- experimental pattern library) [//000000002]: # (Generated from file '\_module\_flib\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') [//000000003]: # (Copyright © 2024) -[//000000004]: # (punkshell\_module\_punk::flib\(0\) 0\.1\.0 doc "\-") +[//000000004]: # (punkshell\_module\_punk::flib\(0\) 0\.1\.0 doc "experimental pattern library")
[ Main Table Of Contents | Table Of Contents | Keyword Index ]
# NAME -punkshell\_module\_punk::flib \- Module API +punkshell\_module\_punk::flib \- flib experimental # Table Of Contents @@ -48,7 +48,7 @@ package require punk::flib # DESCRIPTION -\- +Experimental # Overview @@ -56,7 +56,8 @@ overview of punk::flib ## Concepts -\- +Experiments in functional program related features and integration with the +pattern library ## dependencies @@ -64,6 +65,8 @@ packages used by punk::flib - __Tcl 8\.6__ + - __pattern 1\.2\.4__ + # API ## Namespace punk::flib::class @@ -80,6 +83,7 @@ class definitions # KEYWORDS +[experimental](\.\./\.\./\.\./index\.md\#experimental), [module](\.\./\.\./\.\./index\.md\#module) # COPYRIGHT diff --git a/src/embedded/md/doc/files/punk/_module_lib-0.1.0.tm.md b/src/embedded/md/doc/files/punk/_module_lib-0.1.0.tm.md new file mode 100644 index 00000000..dfdb9b59 --- /dev/null +++ b/src/embedded/md/doc/files/punk/_module_lib-0.1.0.tm.md @@ -0,0 +1,307 @@ + +[//000000001]: # (punkshell\_module\_punk::lib \- punk library) +[//000000002]: # (Generated from file '\_module\_lib\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') +[//000000003]: # (Copyright © 2024) +[//000000004]: # (punkshell\_module\_punk::lib\(0\) 0\.1\.0 doc "punk library") + +
[ Main Table Of Contents | Table Of Contents | Keyword Index ]
+ +# NAME + +punkshell\_module\_punk::lib \- punk general utility functions + +# Table Of Contents + + - [Table Of Contents](#toc) + + - [Synopsis](#synopsis) + + - [Description](#section1) + + - [Overview](#section2) + + - [Concepts](#subsection1) + + - [dependencies](#subsection2) + + - [API](#section3) + + - [Namespace punk::lib::class](#subsection3) + + - [Namespace punk::lib](#subsection4) + + - [Internal](#section4) + + - [Namespace punk::lib::system](#subsection5) + + - [Keywords](#keywords) + + - [Copyright](#copyright) + +# SYNOPSIS + +package require punk::lib + +[__K__ *x* *y*](#1) +[__hex2dec__ ?option value\.\.\.? *list\_largeHex*](#2) +[__dex2hex__ ?option value\.\.\.? *list\_decimals*](#3) +[__log2__ *x*](#4) +[__logbase__ *b* *x*](#5) +[__factors__ *x*](#6) +[__oddFactors__ *x*](#7) +[__greatestFactorBelow__ *x*](#8) +[__greatestOddFactorBelow__ *x*](#9) +[__greatestOddFactor__ *x*](#10) +[__gcd__ *n* *m*](#11) +[__gcd__ *n* *m*](#12) +[__commonDivisors__ *x* *y*](#13) +[__hasglobs__ *str*](#14) +[__trimzero__ *number*](#15) +[__substring\_count__ *str* *substring*](#16) +[__dict\_merge\_ordered__ *defaults* *main*](#17) +[__askuser__ *question*](#18) + +# DESCRIPTION + +This is a set of utility functions that are commonly used across punk modules or +are just considered to be general\-purpose functions\. + +The base set includes string and math functions but has no specific theme + +# Overview + +overview of punk::lib + +## Concepts + +The punk::lib modules should have no strong dependencies other than Tcl + +Dependendencies that only affect display or additional functionality may be +included \- but should fail gracefully if not present, and only when a function +is called that uses one of these soft dependencies\. + +This requirement for no strong dependencies, means that many utility functions +that might otherwise seem worthy of inclusion here are not present\. + +## dependencies + +packages used by punk::lib + + - __Tcl 8\.6__ + +# API + +## Namespace punk::lib::class + +class definitions + +## Namespace punk::lib + + - __K__ *x* *y* + + The K\-combinator function \- returns the first argument, x and discards y + + see [https://wiki\.tcl\-lang\.org/page/K](https://wiki\.tcl\-lang\.org/page/K) + + It is used in cases where command\-substitution at the calling\-point performs + some desired effect\. + + - __hex2dec__ ?option value\.\.\.? *list\_largeHex* + + Convert a list of \(possibly large\) unprefixed hex strings to their decimal + values + + hex2dec accepts and ignores internal underscores in the same manner as Tcl + 8\.7\+ numbers e\.g hex2dec FF\_FF returns 65535 + + Leading and trailing underscores are ignored as a matter of implementation + convenience \- but this shouldn't be relied upon\. + + Leading or trailing whitespace in each list member is allowed e\.g hex2dec " + F" returns 15 + + Internal whitespace e\.g "F F" is not permitted \- but a completely empty + element "" is allowed and will return 0 + + - __dex2hex__ ?option value\.\.\.? *list\_decimals* + + Convert a list of decimal integers to a list of hex values + + \-width can be used to make each hex value at least int characters + wide, with leading zeroes\. + + \-case upper|lower determines the case of the hex letters in the output + + - __log2__ *x* + + log base2 of x + + This uses a 'live' proc body \- the divisor for the change of base is + computed once at definition time + + \(courtesy of RS + [https://wiki\.tcl\-lang\.org/page/Additional\+math\+functions](https://wiki\.tcl\-lang\.org/page/Additional\+math\+functions)\) + + - __logbase__ *b* *x* + + log base b of x + + This function uses expr's natural log and the change of base division\. + + This means for example that we can get results like: logbase 10 1000 = + 2\.9999999999999996 + + Use expr's log10\(\) function or tcl::mathfunc::log10 for base 10 + + - __factors__ *x* + + Return a sorted list of the positive factors of x where x > 0 + + For x = 0 we return only 0 and 1 as technically any number divides zero and + there are an infinite number of factors\. \(including zero itself in this + context\)\* + + This is a simple brute\-force implementation that iterates all numbers below + the square root of x to check the factors + + Because the implementation is so simple \- the performance is very reasonable + for numbers below at least a few 10's of millions + + See tcllib math::numtheory::factors for a more complex implementation \- + which seems to be slower for 'small' numbers + + Comparisons were done with some numbers below 17 digits long + + For seriously big numbers \- this simple algorithm would no doubt be + outperformed by more complex algorithms\. + + The numtheory library stores some data about primes etc with each call \- so + may become faster when being used on more numbers but has the disadvantage + of being slower for 'small' numbers and using more memory\. + + If the largest factor below x is needed \- the greatestOddFactorBelow and + GreatestFactorBelow functions are a faster way to get there than computing + the whole list, even for small values of x + + \* Taking x=0; Notion of x being divisible by integer y being: There exists + an integer p such that x = py + + In other mathematical contexts zero may be considered not to divide + anything\. + + - __oddFactors__ *x* + + Return a list of odd integer factors of x, sorted in ascending order + + - __greatestFactorBelow__ *x* + + Return the largest factor of x excluding itself + + factor functions can be useful for console layout calculations + + See Tcllib math::numtheory for more extensive implementations + + - __greatestOddFactorBelow__ *x* + + Return the largest odd integer factor of x excluding x itself + + - __greatestOddFactor__ *x* + + Return the largest odd integer factor of x + + For an odd value of x \- this will always return x + + - __gcd__ *n* *m* + + Return the greatest common divisor of m and n + + Straight from Lars Hellström's math::numtheory library in Tcllib + + Graphical use: + + An a by b rectangle can be covered with square tiles of side\-length c, + + only if c is a common divisor of a and b + + - __gcd__ *n* *m* + + Return the lowest common multiple of m and n + + Straight from Lars Hellström's math::numtheory library in Tcllib + + - __commonDivisors__ *x* *y* + + Return a list of all the common factors of x and y + + \(equivalent to factors of their gcd\) + + - __hasglobs__ *str* + + Return a boolean indicating whether str contains any of the glob characters: + \* ? \[ \] + + hasglobs uses append to preserve Tcls internal representation for str \- so + it should help avoid shimmering in the few cases where this may matter\. + + - __trimzero__ *number* + + Return number with left\-hand\-side zeros trimmed off \- unless all zero + + If number is all zero \- a single 0 is returned + + - __substring\_count__ *str* *substring* + + Search str and return number of occurrences of substring + + - __dict\_merge\_ordered__ *defaults* *main* + + The standard dict merge accepts multiple dicts with values from dicts to the + right \(2nd argument\) taking precedence\. + + When merging with a dict of default values \- this means that any default + key/vals that weren't in the main dict appear in the output before the main + data\. + + This function merges the two dicts whilst maintaining the key order of main + followed by defaults\. + + - __askuser__ *question* + + A very basic utility to read an answer from stdin + + The prompt is written to the terminal and then it waits for a user to type + something + + stdin is temporarily configured to blocking and then put back in its + original state in case it wasn't already so\. + + The user must hit enter to submit the response + + The return value is the string if any that was typed prior to hitting enter\. + + The question argument can be manually colourised using the various + punk::ansi funcitons + + set answer [punk::lib::askuser "[a+ green bold]Do you want to proceed? (Y|N)[a]"] + if {[string match y* [string tolower $answer]]} { + puts "Proceeding" + } else { + puts "Cancelled by user" + } + +# Internal + +## Namespace punk::lib::system + +Internal functions that are not part of the API + +# KEYWORDS + +[lib](\.\./\.\./\.\./index\.md\#lib), [module](\.\./\.\./\.\./index\.md\#module), +[utility](\.\./\.\./\.\./index\.md\#utility) + +# COPYRIGHT + +Copyright © 2024 diff --git a/src/embedded/md/doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md b/src/embedded/md/doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md index d1190b59..67a0176e 100644 --- a/src/embedded/md/doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md +++ b/src/embedded/md/doc/files/punk/mix/commandset/_module_project-0.1.0.tm.md @@ -1,8 +1,8 @@ -[//000000001]: # (punkshell\_module\_punk::mix::commandset::project \- pmix CLI commandset \- project) +[//000000001]: # (punkshell\_module\_punk::mix::commandset::project \- deck CLI commandset \- project) [//000000002]: # (Generated from file '\_module\_project\-0\.1\.0\.tm\.man' by tcllib/doctools with format 'markdown') [//000000003]: # (Copyright © 2023) -[//000000004]: # (punkshell\_module\_punk::mix::commandset::project\(0\) 0\.1\.0 doc "pmix CLI commandset \- project") +[//000000004]: # (punkshell\_module\_punk::mix::commandset::project\(0\) 0\.1\.0 doc "deck CLI commandset \- project")
[ Main Table Of Contents | Table Of Contents | Keyword Index ]
# NAME -punkshell\_module\_punk::mix::commandset::project \- pmix commandset \- project +punkshell\_module\_punk::mix::commandset::project \- dec commandset \- project # Table Of Contents diff --git a/src/embedded/md/doc/toc.md b/src/embedded/md/doc/toc.md index 8467a87e..61261910 100644 --- a/src/embedded/md/doc/toc.md +++ b/src/embedded/md/doc/toc.md @@ -3,6 +3,12 @@ # Table Of Contents \-\- doc + - [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.2\.tm\.md) overtype text layout \- ansi aware + + - [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.3\.tm\.md) overtype text layout \- ansi aware + + - [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.1\.tm\.md) overtype text layout \- ansi aware + - [punkshell](doc/files/main\.md) punkshell \- Core - [punkshell\_\_project\_changes](doc/files/project\_changes\.md) punkshell Changes @@ -15,10 +21,16 @@ - [punkshell\_module\_punk::cap](doc/files/punk/\_module\_cap\-0\.1\.0\.tm\.md) capability provider and handler plugin system + - [punkshell\_module\_punk::char](doc/files/punk/\_module\_char\-0\.1\.0\.tm\.md) character\-set and unicode utilities + + - [punkshell\_module\_punk::encmime](doc/files/punk/\_module\_encmime\-0\.1\.0\.tm\.md) mime encodings related subset of tcllib mime + - [punkshell\_module\_punk::fileline](doc/files/punk/\_module\_fileline\-0\.1\.0\.tm\.md) file line\-handling utilities - - [punkshell\_module\_punk::flib](doc/files/punk/\_module\_flib\-0\.1\.0\.tm\.md) Module API + - [punkshell\_module\_punk::flib](doc/files/punk/\_module\_flib\-0\.1\.0\.tm\.md) flib experimental + + - [punkshell\_module\_punk::lib](doc/files/punk/\_module\_lib\-0\.1\.0\.tm\.md) punk general utility functions - - [punkshell\_module\_punk::mix::commandset::project](doc/files/punk/mix/commandset/\_module\_project\-0\.1\.0\.tm\.md) pmix commandset \- project + - [punkshell\_module\_punk::mix::commandset::project](doc/files/punk/mix/commandset/\_module\_project\-0\.1\.0\.tm\.md) dec commandset \- project - [punkshell\_module\_punk::path](doc/files/punk/\_module\_path\-0\.1\.0\.tm\.md) Filesystem path utilities diff --git a/src/embedded/md/index.md b/src/embedded/md/index.md index 9e32db26..49d8080a 100644 --- a/src/embedded/md/index.md +++ b/src/embedded/md/index.md @@ -5,7 +5,7 @@ ---- -[A](#cA) · [C](#cC) · [F](#cF) · [M](#cM) · [P](#cP) · [R](#cR) · [S](#cS) · [T](#cT) +[A](#cA) · [B](#cB) · [C](#cC) · [E](#cE) · [F](#cF) · [L](#cL) · [M](#cM) · [P](#cP) · [R](#cR) · [S](#cS) · [T](#cT) · [U](#cU) ---- @@ -13,11 +13,18 @@ ||| |---|---| -|ansi|[punkshell\_module\_punk::ansi](doc/files/punk/\_module\_ansi\-0\.1\.0\.tm\.md)| +|ansi|[overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.2\.tm\.md) · [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.3\.tm\.md) · [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.1\.tm\.md) · [punkshell\_module\_punk::ansi](doc/files/punk/\_module\_ansi\-0\.1\.0\.tm\.md)| |args|[punkshell\_module\_punk::args](doc/files/punk/\_module\_args\-0\.1\.0\.tm\.md)| |arguments|[punkshell\_module\_punk::args](doc/files/punk/\_module\_args\-0\.1\.0\.tm\.md)| +#### Keywords: B + +||| +|---|---| +|BOM|[punkshell\_module\_punk::fileline](doc/files/punk/\_module\_fileline\-0\.1\.0\.tm\.md)| + + #### Keywords: C ||| @@ -27,6 +34,15 @@ |console|[punkshell\_module\_punk::ansi](doc/files/punk/\_module\_ansi\-0\.1\.0\.tm\.md)| +#### Keywords: E + +||| +|---|---| +|encoding|[punkshell\_module\_punk::fileline](doc/files/punk/\_module\_fileline\-0\.1\.0\.tm\.md)| +|encodings|[punkshell\_module\_punk::char](doc/files/punk/\_module\_char\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::encmime](doc/files/punk/\_module\_encmime\-0\.1\.0\.tm\.md)| +|experimental|[punkshell\_module\_punk::flib](doc/files/punk/\_module\_flib\-0\.1\.0\.tm\.md)| + + #### Keywords: F ||| @@ -35,11 +51,18 @@ |filesystem|[punkshell\_module\_punk::path](doc/files/punk/\_module\_path\-0\.1\.0\.tm\.md)| +#### Keywords: L + +||| +|---|---| +|lib|[punkshell\_module\_punk::lib](doc/files/punk/\_module\_lib\-0\.1\.0\.tm\.md)| + + #### Keywords: M ||| |---|---| -|module|[punkshell\_module\_punk::ansi](doc/files/punk/\_module\_ansi\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::args](doc/files/punk/\_module\_args\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::cap](doc/files/punk/\_module\_cap\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::fileline](doc/files/punk/\_module\_fileline\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::flib](doc/files/punk/\_module\_flib\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::path](doc/files/punk/\_module\_path\-0\.1\.0\.tm\.md)| +|module|[overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.2\.tm\.md) · [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.3\.tm\.md) · [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.1\.tm\.md) · [punkshell\_module\_punk::ansi](doc/files/punk/\_module\_ansi\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::args](doc/files/punk/\_module\_args\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::cap](doc/files/punk/\_module\_cap\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::char](doc/files/punk/\_module\_char\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::encmime](doc/files/punk/\_module\_encmime\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::fileline](doc/files/punk/\_module\_fileline\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::flib](doc/files/punk/\_module\_flib\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::lib](doc/files/punk/\_module\_lib\-0\.1\.0\.tm\.md) · [punkshell\_module\_punk::path](doc/files/punk/\_module\_path\-0\.1\.0\.tm\.md)| #### Keywords: P @@ -73,4 +96,11 @@ ||| |---|---| |terminal|[punkshell\_module\_punk::ansi](doc/files/punk/\_module\_ansi\-0\.1\.0\.tm\.md)| -|text|[punkshell\_module\_punk::fileline](doc/files/punk/\_module\_fileline\-0\.1\.0\.tm\.md)| +|text|[overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.2\.tm\.md) · [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.3\.tm\.md) · [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.1\.tm\.md) · [punkshell\_module\_punk::fileline](doc/files/punk/\_module\_fileline\-0\.1\.0\.tm\.md)| + + +#### Keywords: U + +||| +|---|---| +|utility|[punkshell\_module\_punk::lib](doc/files/punk/\_module\_lib\-0\.1\.0\.tm\.md)| diff --git a/src/embedded/md/toc.md b/src/embedded/md/toc.md index 8467a87e..61261910 100644 --- a/src/embedded/md/toc.md +++ b/src/embedded/md/toc.md @@ -3,6 +3,12 @@ # Table Of Contents \-\- doc + - [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.2\.tm\.md) overtype text layout \- ansi aware + + - [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.3\.tm\.md) overtype text layout \- ansi aware + + - [overtype\_module\_overtype](doc/files/\_module\_overtype\-1\.5\.1\.tm\.md) overtype text layout \- ansi aware + - [punkshell](doc/files/main\.md) punkshell \- Core - [punkshell\_\_project\_changes](doc/files/project\_changes\.md) punkshell Changes @@ -15,10 +21,16 @@ - [punkshell\_module\_punk::cap](doc/files/punk/\_module\_cap\-0\.1\.0\.tm\.md) capability provider and handler plugin system + - [punkshell\_module\_punk::char](doc/files/punk/\_module\_char\-0\.1\.0\.tm\.md) character\-set and unicode utilities + + - [punkshell\_module\_punk::encmime](doc/files/punk/\_module\_encmime\-0\.1\.0\.tm\.md) mime encodings related subset of tcllib mime + - [punkshell\_module\_punk::fileline](doc/files/punk/\_module\_fileline\-0\.1\.0\.tm\.md) file line\-handling utilities - - [punkshell\_module\_punk::flib](doc/files/punk/\_module\_flib\-0\.1\.0\.tm\.md) Module API + - [punkshell\_module\_punk::flib](doc/files/punk/\_module\_flib\-0\.1\.0\.tm\.md) flib experimental + + - [punkshell\_module\_punk::lib](doc/files/punk/\_module\_lib\-0\.1\.0\.tm\.md) punk general utility functions - - [punkshell\_module\_punk::mix::commandset::project](doc/files/punk/mix/commandset/\_module\_project\-0\.1\.0\.tm\.md) pmix commandset \- project + - [punkshell\_module\_punk::mix::commandset::project](doc/files/punk/mix/commandset/\_module\_project\-0\.1\.0\.tm\.md) dec commandset \- project - [punkshell\_module\_punk::path](doc/files/punk/\_module\_path\-0\.1\.0\.tm\.md) Filesystem path utilities diff --git a/src/embedded/www/.doc/tocdoc b/src/embedded/www/.doc/tocdoc index a6b4cc5d..5a2c7331 100644 --- a/src/embedded/www/.doc/tocdoc +++ b/src/embedded/www/.doc/tocdoc @@ -1,12 +1,18 @@ [toc_begin {Table Of Contents} doc] +[item doc/files/_module_overtype-1.5.1.tm.html overtype_module_overtype {overtype text layout - ansi aware}] +[item doc/files/_module_overtype-1.5.2.tm.html overtype_module_overtype {overtype text layout - ansi aware}] +[item doc/files/_module_overtype-1.5.3.tm.html overtype_module_overtype {overtype text layout - ansi aware}] [item doc/files/main.html punkshell {punkshell - Core}] [item doc/files/project_changes.html punkshell__project_changes {punkshell Changes}] [item doc/files/project_intro.html punkshell__project_intro {Introduction to punkshell}] [item doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi {Ansi string functions}] [item doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args {args parsing}] [item doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap {capability provider and handler plugin system}] +[item doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char {character-set and unicode utilities}] +[item doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}] [item doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline {file line-handling utilities}] -[item doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib {Module API}] -[item doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html punkshell_module_punk::mix::commandset::project {pmix commandset - project}] +[item doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib {flib experimental}] +[item doc/files/punk/_module_lib-0.1.0.tm.html punkshell_module_punk::lib {punk general utility functions}] +[item doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html punkshell_module_punk::mix::commandset::project {dec commandset - project}] [item doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path {Filesystem path utilities}] [toc_end] diff --git a/src/embedded/www/.idx b/src/embedded/www/.idx index f66fc98b..82fbaec0 100644 --- a/src/embedded/www/.idx +++ b/src/embedded/www/.idx @@ -1 +1 @@ -{file {{doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline}} console {{doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}} repl {{doc/files/project_intro.html punkshell__project_intro} {doc/files/project_changes.html punkshell__project_changes} {doc/files/main.html punkshell}} text {{doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline}} arguments {{doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args}} changelog {{doc/files/project_changes.html punkshell__project_changes}} shell {{doc/files/project_intro.html punkshell__project_intro} {doc/files/project_changes.html punkshell__project_changes} {doc/files/main.html punkshell}} capability {{doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap}} ansi {{doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}} parse {{doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} {doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args}} terminal {{doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}} proc {{doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args}} path {{doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path}} filesystem {{doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path}} args {{doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args}} punk {{doc/files/project_intro.html punkshell__project_intro} {doc/files/project_changes.html punkshell__project_changes} {doc/files/main.html punkshell}} module {{doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} {doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap} {doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path} {doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib} {doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} {doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}} plugin {{doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap}} string {{doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}}} {{repl doc/files/main.html punkshell} . {arguments doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {file doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {punk doc/files/project_intro.html punkshell__project_intro} . {ansi doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {terminal doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {capability doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap} . {module doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {shell doc/files/project_changes.html punkshell__project_changes} . {changelog doc/files/project_changes.html punkshell__project_changes} . {repl doc/files/project_intro.html punkshell__project_intro} . {text doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {parse doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {shell doc/files/main.html punkshell} . {string doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {module doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap} . {proc doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {path doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path} . {filesystem doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path} . {plugin doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap} . {args doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {module doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path} . {module doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib} . {module doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {console doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {shell doc/files/project_intro.html punkshell__project_intro} . {punk doc/files/project_changes.html punkshell__project_changes} . {parse doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {punk doc/files/main.html punkshell} . {module doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {repl doc/files/project_changes.html punkshell__project_changes} .} 19 {file file repl repl console console text text arguments arguments shell shell changelog changelog capability capability parse parse ansi ansi proc proc terminal terminal filesystem filesystem path path args args module module punk punk plugin plugin string string} \ No newline at end of file +{file {{doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline}} encodings {{doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime} {doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char}} console {{doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}} repl {{doc/files/project_changes.html punkshell__project_changes} {doc/files/project_intro.html punkshell__project_intro} {doc/files/main.html punkshell}} utility {{doc/files/punk/_module_lib-0.1.0.tm.html punkshell_module_punk::lib}} text {{doc/files/_module_overtype-1.5.1.tm.html overtype_module_overtype} {doc/files/_module_overtype-1.5.2.tm.html overtype_module_overtype} {doc/files/_module_overtype-1.5.3.tm.html overtype_module_overtype} {doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline}} BOM {{doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline}} experimental {{doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib}} arguments {{doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args}} encoding {{doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline}} changelog {{doc/files/project_changes.html punkshell__project_changes}} shell {{doc/files/project_changes.html punkshell__project_changes} {doc/files/project_intro.html punkshell__project_intro} {doc/files/main.html punkshell}} capability {{doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap}} parse {{doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} {doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline}} ansi {{doc/files/_module_overtype-1.5.1.tm.html overtype_module_overtype} {doc/files/_module_overtype-1.5.2.tm.html overtype_module_overtype} {doc/files/_module_overtype-1.5.3.tm.html overtype_module_overtype} {doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}} proc {{doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args}} terminal {{doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}} args {{doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args}} path {{doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path}} filesystem {{doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path}} punk {{doc/files/project_changes.html punkshell__project_changes} {doc/files/project_intro.html punkshell__project_intro} {doc/files/main.html punkshell}} module {{doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap} {doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path} {doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} {doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime} {doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char} {doc/files/punk/_module_lib-0.1.0.tm.html punkshell_module_punk::lib} {doc/files/_module_overtype-1.5.1.tm.html overtype_module_overtype} {doc/files/_module_overtype-1.5.2.tm.html overtype_module_overtype} {doc/files/_module_overtype-1.5.3.tm.html overtype_module_overtype} {doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib} {doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} {doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}} plugin {{doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap}} lib {{doc/files/punk/_module_lib-0.1.0.tm.html punkshell_module_punk::lib}} string {{doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi}}} {{text doc/files/_module_overtype-1.5.3.tm.html overtype_module_overtype} . {changelog doc/files/project_changes.html punkshell__project_changes} . {shell doc/files/main.html punkshell} . {lib doc/files/punk/_module_lib-0.1.0.tm.html punkshell_module_punk::lib} . {proc doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {encoding doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {plugin doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap} . {path doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path} . {args doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {module doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib} . {module doc/files/_module_overtype-1.5.1.tm.html overtype_module_overtype} . {punk doc/files/project_changes.html punkshell__project_changes} . {module doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char} . {repl doc/files/project_changes.html punkshell__project_changes} . {arguments doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {punk doc/files/project_intro.html punkshell__project_intro} . {capability doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap} . {module doc/files/_module_overtype-1.5.2.tm.html overtype_module_overtype} . {shell doc/files/project_changes.html punkshell__project_changes} . {ansi doc/files/_module_overtype-1.5.1.tm.html overtype_module_overtype} . {BOM doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {module doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {module doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path} . {console doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {shell doc/files/project_intro.html punkshell__project_intro} . {module doc/files/_module_overtype-1.5.3.tm.html overtype_module_overtype} . {encodings doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime} . {module doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {ansi doc/files/_module_overtype-1.5.2.tm.html overtype_module_overtype} . {repl doc/files/main.html punkshell} . {file doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {ansi doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {module doc/files/punk/_module_lib-0.1.0.tm.html punkshell_module_punk::lib} . {text doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {string doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {module doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap} . {ansi doc/files/_module_overtype-1.5.3.tm.html overtype_module_overtype} . {encodings doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char} . {text doc/files/_module_overtype-1.5.1.tm.html overtype_module_overtype} . {experimental doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib} . {terminal doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {module doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi} . {parse doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args} . {repl doc/files/project_intro.html punkshell__project_intro} . {filesystem doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path} . {text doc/files/_module_overtype-1.5.2.tm.html overtype_module_overtype} . {module doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime} . {utility doc/files/punk/_module_lib-0.1.0.tm.html punkshell_module_punk::lib} . {parse doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline} . {punk doc/files/main.html punkshell} .} 25 {file file encodings encodings repl repl console console utility utility text text arguments arguments experimental experimental BOM bom encoding encoding changelog changelog shell shell capability capability parse parse ansi ansi proc proc terminal terminal filesystem filesystem path path args args module module punk punk plugin plugin lib lib string string} \ No newline at end of file diff --git a/src/embedded/www/.toc b/src/embedded/www/.toc index 4bd50c19..f6bc561b 100644 --- a/src/embedded/www/.toc +++ b/src/embedded/www/.toc @@ -1 +1 @@ -doc {doc/toc {{doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline {file line-handling utilities}} {doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap {capability provider and handler plugin system}} {doc/files/project_intro.html punkshell__project_intro {Introduction to punkshell}} {doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path {Filesystem path utilities}} {doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib {Module API}} {doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args {args parsing}} {doc/files/project_changes.html punkshell__project_changes {punkshell Changes}} {doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html punkshell_module_punk::mix::commandset::project {pmix commandset - project}} {doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi {Ansi string functions}} {doc/files/main.html punkshell {punkshell - Core}}}} \ No newline at end of file +doc {doc/toc {{doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::cap {capability provider and handler plugin system}} {doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::path {Filesystem path utilities}} {doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::args {args parsing}} {doc/files/project_changes.html punkshell__project_changes {punkshell Changes}} {doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::encmime {mime encodings related subset of tcllib mime}} {doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::char {character-set and unicode utilities}} {doc/files/punk/_module_lib-0.1.0.tm.html punkshell_module_punk::lib {punk general utility functions}} {doc/files/_module_overtype-1.5.1.tm.html overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/project_intro.html punkshell__project_intro {Introduction to punkshell}} {doc/files/_module_overtype-1.5.2.tm.html overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/_module_overtype-1.5.3.tm.html overtype_module_overtype {overtype text layout - ansi aware}} {doc/files/main.html punkshell {punkshell - Core}} {doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::flib {flib experimental}} {doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html punkshell_module_punk::mix::commandset::project {dec commandset - project}} {doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::fileline {file line-handling utilities}} {doc/files/punk/_module_ansi-0.1.0.tm.html punkshell_module_punk::ansi {Ansi string functions}}}} \ No newline at end of file diff --git a/src/embedded/www/.xrf b/src/embedded/www/.xrf index c9541f58..9c629213 100644 --- a/src/embedded/www/.xrf +++ b/src/embedded/www/.xrf @@ -1 +1 @@ -kw,capability {index.html capability} punkshell_module_punk::flib doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::path(0) doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::args(0) doc/files/punk/_module_args-0.1.0.tm.html kw,proc {index.html proc} sa,punkshell_module_punk::mix::commandset::project(0) doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html {punkshell Changes} doc/files/project_changes.html punkshell_module_punk::ansi doc/files/punk/_module_ansi-0.1.0.tm.html {Introduction to punkshell} doc/files/project_intro.html proc {index.html proc} sa,punkshell_module_punk::fileline(0) doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::mix::commandset::project(0) doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html sa,punkshell(n) doc/files/main.html filesystem {index.html filesystem} sa,punkshell doc/files/main.html kw,shell {index.html shell} sa,punkshell_module_punk::cap doc/files/punk/_module_cap-0.1.0.tm.html sa,punkshell_module_punk::cap(0) doc/files/punk/_module_cap-0.1.0.tm.html kw,parse {index.html parse} sa,punkshell_module_punk::flib(0) doc/files/punk/_module_flib-0.1.0.tm.html sa,punkshell__project_changes(n) doc/files/project_changes.html kw,terminal {index.html terminal} kw,args {index.html args} kw,path {index.html path} kw,module {index.html module} punkshell_module_punk::fileline(0) doc/files/punk/_module_fileline-0.1.0.tm.html punkshell(n) doc/files/main.html kw,string {index.html string} kw,plugin {index.html plugin} punkshell doc/files/main.html kw,file {index.html file} punkshell_module_punk::cap doc/files/punk/_module_cap-0.1.0.tm.html changelog {index.html changelog} punkshell_module_punk::cap(0) doc/files/punk/_module_cap-0.1.0.tm.html punkshell_module_punk::flib(0) doc/files/punk/_module_flib-0.1.0.tm.html punkshell__project_changes(n) doc/files/project_changes.html sa,punkshell__project_changes doc/files/project_changes.html kw,arguments {index.html arguments} terminal {index.html terminal} args {index.html args} path {index.html path} file {index.html file} sa,punkshell_module_punk::path doc/files/punk/_module_path-0.1.0.tm.html sa,punkshell_module_punk::args doc/files/punk/_module_args-0.1.0.tm.html {args parsing} doc/files/punk/_module_args-0.1.0.tm.html punkshell__project_changes doc/files/project_changes.html {Ansi string functions} doc/files/punk/_module_ansi-0.1.0.tm.html kw,filesystem {index.html filesystem} sa,punkshell_module_punk::mix::commandset::project doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html {Module API} doc/files/punk/_module_flib-0.1.0.tm.html sa,punkshell_module_punk::ansi(0) doc/files/punk/_module_ansi-0.1.0.tm.html shell {index.html shell} punkshell_module_punk::path doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::args doc/files/punk/_module_args-0.1.0.tm.html kw,repl {index.html repl} capability {index.html capability} kw,text {index.html text} parse {index.html parse} sa,punkshell_module_punk::fileline doc/files/punk/_module_fileline-0.1.0.tm.html punkshell_module_punk::mix::commandset::project doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html {punkshell - Core} doc/files/main.html {pmix commandset - project} doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html punkshell_module_punk::ansi(0) doc/files/punk/_module_ansi-0.1.0.tm.html kw,ansi {index.html ansi} {capability provider and handler plugin system} doc/files/punk/_module_cap-0.1.0.tm.html console {index.html console} repl {index.html repl} punkshell_module_punk::fileline doc/files/punk/_module_fileline-0.1.0.tm.html kw,punk {index.html punk} sa,punkshell__project_intro(n) doc/files/project_intro.html text {index.html text} sa,punkshell__project_intro doc/files/project_intro.html {Filesystem path utilities} doc/files/punk/_module_path-0.1.0.tm.html arguments {index.html arguments} sa,punkshell_module_punk::flib doc/files/punk/_module_flib-0.1.0.tm.html kw,console {index.html console} sa,punkshell_module_punk::path(0) doc/files/punk/_module_path-0.1.0.tm.html sa,punkshell_module_punk::args(0) doc/files/punk/_module_args-0.1.0.tm.html ansi {index.html ansi} punkshell__project_intro(n) doc/files/project_intro.html {file line-handling utilities} doc/files/punk/_module_fileline-0.1.0.tm.html punkshell__project_intro doc/files/project_intro.html kw,changelog {index.html changelog} module {index.html module} punk {index.html punk} sa,punkshell_module_punk::ansi doc/files/punk/_module_ansi-0.1.0.tm.html string {index.html string} plugin {index.html plugin} \ No newline at end of file +kw,capability {index.html capability} punkshell_module_punk::flib doc/files/punk/_module_flib-0.1.0.tm.html punkshell_module_punk::path(0) doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::args(0) doc/files/punk/_module_args-0.1.0.tm.html kw,proc {index.html proc} {flib experimental} doc/files/punk/_module_flib-0.1.0.tm.html sa,punkshell_module_punk::mix::commandset::project(0) doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html kw,lib {index.html lib} {punkshell Changes} doc/files/project_changes.html punkshell_module_punk::ansi doc/files/punk/_module_ansi-0.1.0.tm.html kw,encodings {index.html encodings} {punk general utility functions} doc/files/punk/_module_lib-0.1.0.tm.html {Introduction to punkshell} doc/files/project_intro.html proc {index.html proc} sa,punkshell(n) doc/files/main.html punkshell_module_punk::mix::commandset::project(0) doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html sa,punkshell_module_punk::fileline(0) doc/files/punk/_module_fileline-0.1.0.tm.html filesystem {index.html filesystem} sa,punkshell doc/files/main.html kw,shell {index.html shell} sa,punkshell_module_punk::cap doc/files/punk/_module_cap-0.1.0.tm.html {mime encodings related subset of tcllib mime} doc/files/punk/_module_encmime-0.1.0.tm.html sa,punkshell_module_punk::cap(0) doc/files/punk/_module_cap-0.1.0.tm.html kw,parse {index.html parse} sa,punkshell__project_changes(n) doc/files/project_changes.html sa,punkshell_module_punk::flib(0) doc/files/punk/_module_flib-0.1.0.tm.html kw,terminal {index.html terminal} kw,path {index.html path} kw,args {index.html args} utility {index.html utility} kw,module {index.html module} punkshell(n) doc/files/main.html punkshell_module_punk::fileline(0) doc/files/punk/_module_fileline-0.1.0.tm.html kw,string {index.html string} kw,plugin {index.html plugin} punkshell doc/files/main.html kw,file {index.html file} punkshell_module_punk::cap doc/files/punk/_module_cap-0.1.0.tm.html changelog {index.html changelog} punkshell_module_punk::cap(0) doc/files/punk/_module_cap-0.1.0.tm.html punkshell__project_changes(n) doc/files/project_changes.html punkshell_module_punk::flib(0) doc/files/punk/_module_flib-0.1.0.tm.html kw,utility {index.html utility} sa,punkshell__project_changes doc/files/project_changes.html {dec commandset - project} doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html kw,experimental {index.html experimental} kw,arguments {index.html arguments} terminal {index.html terminal} path {index.html path} args {index.html args} file {index.html file} sa,punkshell_module_punk::path doc/files/punk/_module_path-0.1.0.tm.html sa,punkshell_module_punk::args doc/files/punk/_module_args-0.1.0.tm.html {args parsing} doc/files/punk/_module_args-0.1.0.tm.html encodings {index.html encodings} punkshell__project_changes doc/files/project_changes.html sa,punkshell_module_punk::encmime(0) doc/files/punk/_module_encmime-0.1.0.tm.html sa,punkshell_module_punk::char(0) doc/files/punk/_module_char-0.1.0.tm.html sa,punkshell_module_punk::lib doc/files/punk/_module_lib-0.1.0.tm.html {Ansi string functions} doc/files/punk/_module_ansi-0.1.0.tm.html kw,filesystem {index.html filesystem} sa,punkshell_module_punk::mix::commandset::project doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html experimental {index.html experimental} sa,overtype_module_overtype doc/files/_module_overtype-1.5.3.tm.html sa,punkshell_module_punk::ansi(0) doc/files/punk/_module_ansi-0.1.0.tm.html shell {index.html shell} punkshell_module_punk::path doc/files/punk/_module_path-0.1.0.tm.html punkshell_module_punk::args doc/files/punk/_module_args-0.1.0.tm.html sa,overtype_module_overtype(0) doc/files/_module_overtype-1.5.3.tm.html {overtype text layout - ansi aware} doc/files/_module_overtype-1.5.3.tm.html kw,repl {index.html repl} capability {index.html capability} punkshell_module_punk::encmime(0) doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::char(0) doc/files/punk/_module_char-0.1.0.tm.html punkshell_module_punk::lib doc/files/punk/_module_lib-0.1.0.tm.html kw,text {index.html text} parse {index.html parse} sa,punkshell_module_punk::lib(0) doc/files/punk/_module_lib-0.1.0.tm.html {punkshell - Core} doc/files/main.html punkshell_module_punk::mix::commandset::project doc/files/punk/mix/commandset/_module_project-0.1.0.tm.html sa,punkshell_module_punk::fileline doc/files/punk/_module_fileline-0.1.0.tm.html kw,encoding {index.html encoding} overtype_module_overtype doc/files/_module_overtype-1.5.3.tm.html punkshell_module_punk::ansi(0) doc/files/punk/_module_ansi-0.1.0.tm.html overtype_module_overtype(0) doc/files/_module_overtype-1.5.3.tm.html kw,ansi {index.html ansi} {capability provider and handler plugin system} doc/files/punk/_module_cap-0.1.0.tm.html sa,punkshell_module_punk::encmime doc/files/punk/_module_encmime-0.1.0.tm.html sa,punkshell_module_punk::char doc/files/punk/_module_char-0.1.0.tm.html console {index.html console} repl {index.html repl} punkshell_module_punk::lib(0) doc/files/punk/_module_lib-0.1.0.tm.html punkshell_module_punk::fileline doc/files/punk/_module_fileline-0.1.0.tm.html kw,punk {index.html punk} sa,punkshell__project_intro(n) doc/files/project_intro.html text {index.html text} {Filesystem path utilities} doc/files/punk/_module_path-0.1.0.tm.html sa,punkshell__project_intro doc/files/project_intro.html BOM {index.html bom} arguments {index.html arguments} encoding {index.html encoding} sa,punkshell_module_punk::flib doc/files/punk/_module_flib-0.1.0.tm.html kw,console {index.html console} sa,punkshell_module_punk::path(0) doc/files/punk/_module_path-0.1.0.tm.html sa,punkshell_module_punk::args(0) doc/files/punk/_module_args-0.1.0.tm.html punkshell_module_punk::encmime doc/files/punk/_module_encmime-0.1.0.tm.html punkshell_module_punk::char doc/files/punk/_module_char-0.1.0.tm.html ansi {index.html ansi} {character-set and unicode utilities} doc/files/punk/_module_char-0.1.0.tm.html kw,BOM {index.html bom} punkshell__project_intro(n) doc/files/project_intro.html punkshell__project_intro doc/files/project_intro.html {file line-handling utilities} doc/files/punk/_module_fileline-0.1.0.tm.html kw,changelog {index.html changelog} module {index.html module} punk {index.html punk} sa,punkshell_module_punk::ansi doc/files/punk/_module_ansi-0.1.0.tm.html string {index.html string} lib {index.html lib} plugin {index.html plugin} \ No newline at end of file diff --git a/src/embedded/www/doc/files/_module_overtype-1.5.1.tm.html b/src/embedded/www/doc/files/_module_overtype-1.5.1.tm.html new file mode 100644 index 00000000..95634c26 --- /dev/null +++ b/src/embedded/www/doc/files/_module_overtype-1.5.1.tm.html @@ -0,0 +1,161 @@ + +overtype_module_overtype - overtype text layout + + + + + +
[ + Main Table Of Contents +| Table Of Contents +| Keyword Index + ]
+
+

overtype_module_overtype(0) 1.5.1 doc "overtype text layout"

+

Name

+

overtype_module_overtype - overtype text layout - ansi aware

+
+ +

Synopsis

+
+
    +
  • package require overtype
  • +
+
+
+ +

Overview

+

overview of overtype

+ +

dependencies

+

packages used by overtype

+
    +
  • Tcl 8.6

  • +
  • textutil

  • +
  • punk::ansi

    +

    - required to detect, split, strip and calculate lengths of text possibly containing ansi codes

  • +
  • punk::char

    +

    - box drawing - and also unicode character width determination for proper layout of text with double-column-width chars

  • +
+
+
+

API

+
+ + +
diff --git a/src/embedded/www/doc/files/_module_overtype-1.5.2.tm.html b/src/embedded/www/doc/files/_module_overtype-1.5.2.tm.html new file mode 100644 index 00000000..14151f02 --- /dev/null +++ b/src/embedded/www/doc/files/_module_overtype-1.5.2.tm.html @@ -0,0 +1,161 @@ + +overtype_module_overtype - overtype text layout + + + + + +
[ + Main Table Of Contents +| Table Of Contents +| Keyword Index + ]
+
+

overtype_module_overtype(0) 1.5.2 doc "overtype text layout"

+

Name

+

overtype_module_overtype - overtype text layout - ansi aware

+
+ +

Synopsis

+
+
    +
  • package require overtype
  • +
+
+
+ +

Overview

+

overview of overtype

+ +

dependencies

+

packages used by overtype

+
    +
  • Tcl 8.6

  • +
  • textutil

  • +
  • punk::ansi

    +

    - required to detect, split, strip and calculate lengths of text possibly containing ansi codes

  • +
  • punk::char

    +

    - box drawing - and also unicode character width determination for proper layout of text with double-column-width chars

  • +
+
+
+

API

+
+ + +
diff --git a/src/embedded/www/doc/files/_module_overtype-1.5.3.tm.html b/src/embedded/www/doc/files/_module_overtype-1.5.3.tm.html new file mode 100644 index 00000000..5c148f68 --- /dev/null +++ b/src/embedded/www/doc/files/_module_overtype-1.5.3.tm.html @@ -0,0 +1,161 @@ + +overtype_module_overtype - overtype text layout + + + + + +
[ + Main Table Of Contents +| Table Of Contents +| Keyword Index + ]
+
+

overtype_module_overtype(0) 1.5.3 doc "overtype text layout"

+

Name

+

overtype_module_overtype - overtype text layout - ansi aware

+
+ +

Synopsis

+
+
    +
  • package require overtype
  • +
+
+
+ +

Overview

+

overview of overtype

+ +

dependencies

+

packages used by overtype

+
    +
  • Tcl 8.6

  • +
  • textutil

  • +
  • punk::ansi

    +

    - required to detect, split, strip and calculate lengths of text possibly containing ansi codes

  • +
  • punk::char

    +

    - box drawing - and also unicode character width determination for proper layout of text with double-column-width chars

  • +
+
+
+

API

+
+ + +
diff --git a/src/embedded/www/doc/files/punk/_module_args-0.1.0.tm.html b/src/embedded/www/doc/files/punk/_module_args-0.1.0.tm.html index 2425434f..7b162eac 100644 --- a/src/embedded/www/doc/files/punk/_module_args-0.1.0.tm.html +++ b/src/embedded/www/doc/files/punk/_module_args-0.1.0.tm.html @@ -209,7 +209,8 @@

ARGUMENTS:

multiline-string optionspecs
-

This a block of text with records delimited by newlines (lf or crlf)

+

This a block of text with records delimited by newlines (lf or crlf) - but with multiline values allowed if properly quoted/braced

+

'info complete' is used to determine if a record spans multiple lines due to multiline values

Each optionspec line must be of the form:

-optionname -key val -key2 val2...

where the valid keys for each option specification are: -default -type -range -choices -optional

diff --git a/src/embedded/www/doc/files/punk/_module_char-0.1.0.tm.html b/src/embedded/www/doc/files/punk/_module_char-0.1.0.tm.html new file mode 100644 index 00000000..c4b671fd --- /dev/null +++ b/src/embedded/www/doc/files/punk/_module_char-0.1.0.tm.html @@ -0,0 +1,161 @@ + +punkshell_module_punk::char - character-set nad unicode + + + + + +
[ + Main Table Of Contents +| Table Of Contents +| Keyword Index + ]
+
+

punkshell_module_punk::char(0) 0.1.0 doc "character-set nad unicode"

+

Name

+

punkshell_module_punk::char - character-set and unicode utilities

+
+ +

Synopsis

+
+
    +
  • package require punk::char
  • +
+
+
+ +

Overview

+

overview of punk::char

+ +

dependencies

+

packages used by punk::char

+
    +
  • Tcl 8.6

  • +
  • overtype

    +

    -

  • +
  • textblock

    +

    -

  • +
  • console

    +

    -

  • +
+
+
+

API

+
+ + +
diff --git a/src/embedded/www/doc/files/punk/_module_encmime-0.1.0.tm.html b/src/embedded/www/doc/files/punk/_module_encmime-0.1.0.tm.html new file mode 100644 index 00000000..fbbedddc --- /dev/null +++ b/src/embedded/www/doc/files/punk/_module_encmime-0.1.0.tm.html @@ -0,0 +1,211 @@ + +punkshell_module_punk::encmime - mime encoding names and aliases + + + + + +
[ + Main Table Of Contents +| Table Of Contents +| Keyword Index + ]
+
+

punkshell_module_punk::encmime(0) 0.1.0 doc "mime encoding names and aliases"

+

Name

+

punkshell_module_punk::encmime - mime encodings related subset of tcllib mime

+
+ +

Synopsis

+
+
    +
  • package require punk::encmime
  • +
+ +
+
+

Description

+

This is a workaround package to provide the mime encoding names used in tcllib's mime package - without additional dependencies

+

tcllib mime loads either Trf or tcl::memchan functions. punk::encmime needs to work in a context where tcllib may not yet be loaded/available, and even these few dependencies are too much.

+

MAINTENANCE NOTE: The data in this module needs to be checked against the latest tcllib mime package

+

taken from tcllib mime version: 1.7.2 in 2024

+
+

Overview

+

overview of punk::encmime

+

Concepts

+

Where practical - the actual tcllib mime package should be used instead.

+

This set of encoding related functions is a snapshot of the data from the mime package - and may not be up to date.

+

This pseudo-package was created to minimize dependencies for punk::char and punk::overtype

+
+

dependencies

+

packages used by punk::encmime

+
    +
  • Tcl 8.6

  • +
+
+
+

API

+

Namespace punk::encmime::class

+

class definitions

+
    +
+
+

Namespace punk::encmime

+

Core API functions for punk::encmime

+
+
mapencoding enc
+

maps tcl encodings onto the proper names for their MIME charset type.

+

This is only done for encodings whose charset types were known.

+

The remaining encodings return {} for now.

+

NOTE: consider using tcllib's mime::mapencoding instead if mime package available

+
reversemapencoding mimeType
+

mime::reversemapencodings maps MIME charset types onto tcl encoding names.

+

Returns the tcl encoding name for the specified mime charset, or {} if none is known

+

Arguments:

+
+ +
string mimeType
+

The MIME charset to convert into a tcl encoding type.

+
+

NOTE: consider using tcllib's mime::reversemapencoding instead if mime package available

+
+
+

Namespace punk::encmime::lib

+

Secondary functions that are part of the API

+
+
+
+
+

Internal

+

Namespace punk::encmime::system

+

Internal functions that are not part of the API

+
+
+ + +
diff --git a/src/embedded/www/doc/files/punk/_module_fileline-0.1.0.tm.html b/src/embedded/www/doc/files/punk/_module_fileline-0.1.0.tm.html index 16ae4633..7fbb3450 100644 --- a/src/embedded/www/doc/files/punk/_module_fileline-0.1.0.tm.html +++ b/src/embedded/www/doc/files/punk/_module_fileline-0.1.0.tm.html @@ -165,10 +165,11 @@
  • class::textinfo numeric_chunkrange startidx endidx
  • class::textinfo normalize_indices startidx endidx max
  • class::textinfo regenerate_lines
  • -
  • lib::range_spans_chunk_boundaries start end chunksize
  • -
  • ansi::a
  • -
  • ansi::a+
  • -
  • ansi::stripansi
  • +
  • get_textinfo ?option value...? ?datachunk?
  • +
  • lib::range_spans_chunk_boundaries start end chunksize
  • +
  • ansi::a
  • +
  • ansi::a+
  • +
  • ansi::stripansi
  • @@ -179,7 +180,9 @@

    Utilities for in-memory analysis of text file data as both line data and byte/char-counted data whilst preserving the line-endings (even if mixed)

    This is important for certain text files where examining the number of chars/bytes is important

    For example - windows .cmd/.bat files need some byte counting to determine if labels lie on chunk boundaries and need to be moved.

    -

    Despite including the word 'file', the library doesn't deal with reading/writing to the filesystem. It is for operating on text-file like data.

    +

    This chunk-size counting will depend on the character encoding.

    +

    Despite including the word 'file', the library doesn't necessarily deal with reading/writing to the filesystem -

    +

    The raw data can be supplied as a string, or loaded from a file using punk::fileline::get_textinfo -file <filename>

    Concepts

    A chunk of textfile data (possibly representing a whole file - but usually at least a complete set of lines) is loaded into a punk::fileline::class::textinfo instance at object creation.

    @@ -326,12 +329,25 @@ or
     

    Namespace punk::fileline

    Core API functions for punk::fileline

    +
    get_textinfo ?option value...? ?datachunk?
    +

    Returns textinfo object instance representing data in string datachunk or if -file filename supplied - data loaded from a file

    +

    The encoding used is as specified in the -encoding option - or from the Byte Order Mark (bom) at the beginning of the data

    +

    For Tcl 8.6 - encodings such as utf-16le may not be available - so the bytes are swapped appropriately depending on the platform byteOrder and encoding 'unicode' is used.

    +

    encoding defaults to utf-8 if no -encoding specified and no BOM was found

    +

    Specify -encoding binary to perform no encoding conversion

    +

    Whether -encoding was specified or not - by default the BOM characters are not retained in the line-data

    +

    If -includebom 1 is specified - the bom will be retained in the stored chunk and the data for line 1, but will undergo the same encoding transformation as the rest of the data

    +

    The get_bomid method of the returned object will contain an identifier for any BOM encountered.

    +

    e.g utf-8,utf-16be, utf-16le, utf-32be, utf32-le, SCSU, BOCU-1,GB18030, UTF-EBCDIC, utf-1, utf-7

    +

    If the encoding specified in the BOM isn't recognised by Tcl - the resulting data is likely to remain as the raw bytes (binary translation)

    +

    Currently only utf-8, utf-16* and utf-32* are properly supported even though the other BOMs are detected, reported via get_bomid, and stripped from the data.

    +

    GB18030 falls back to cp936/gbk (unless a gb18030 encoding has been installed). Use -encoding binary if this isn't suitable and you need to do your own processing of the raw data.

    Namespace punk::fileline::lib

    Secondary functions that are part of the API

    -
    lib::range_spans_chunk_boundaries start end chunksize
    +
    lib::range_spans_chunk_boundaries start end chunksize

    Takes start and end offset, generally representing bytes or character indices, and computes a list of boundaries at multiples of the chunksize that are spanned by the start and end range.

    @@ -367,17 +383,17 @@ or

    These are ansi functions imported from punk::ansi - or no-ops if that package is unavailable

    See punk::ansi for documentation

    -
    ansi::a
    +
    ansi::a
    -
    ansi::a+
    +
    ansi::a+
    -
    ansi::stripansi
    +
    ansi::stripansi