invalid command name "dt_package"
while executing
"dt_package textutil::string "
(in namespace eval "::request" script line 18)
invoked from within
"namespace eval ::request $script"
("::try" body line 12)
OUTPUT BUFFER:
# -*- tcl -*-
#
# -- Core support for text engines.
#
# Copyright (c) 2003-2019 Andreas Kupries
# Freely redistributable.
################################################################
if {0} {
catch {rename proc proc__} msg ; puts_stderr >>$msg
proc__ proc {cmd argl body} {
puts_stderr "proc $cmd $argl ..."
uplevel [list proc__ $cmd $argl $body]
}
}
dt_package textutil::string ; # for adjust
dt_package textutil::repeat
dt_package textutil::adjust
if {0} {
puts_stderr ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
rename proc {}
rename proc__ proc
puts_stderr ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
}
proc parray_stderr {a {pattern *}} {
upvar 1 $a array
if {![array exists array]} {
error "\"$a\" isn't an array"
}
set maxl 0
foreach name [lsort [array names array $pattern]] {
if {[string length $name] > $maxl} {
set maxl [string length $name]
}
}
set maxl [expr {$maxl + [string length $a] + 2}]
foreach name [lsort [array names array $pattern]] {
set nameString [format %s(%s) $a $name]
puts_stderr " [format "%-*s = {%s}" $maxl $nameString $array($name)]"
}
}
# # ## ### ##### ########
##
dt_source _text_utils.tcl
# Formatting utilities
dt_source _text_margin.tcl
# RMargin, LMI
dt_source _text_state.tcl
# On, Off, IsOff
dt_source _text_para.tcl
# Text, Text?, TextClear, TextPlain (-> IsOff)
dt_source _text_cstack.tcl
# ContextReset, ContextPush, ContextPop (-> CAttrCurrent, ContextSet)
dt_source _text_ccore.tcl
# ContextSetup, ContextSet, ContextNew, ContextCommit, CAttrName, CAttrCurrent,
# CAttrRef, CAttrUnset, CAttrSet, CAttrAppend, CAttrIncr, CAttrGet, CAttrHas
dt_source _text_bullets.tcl
# DIB, IBullet (-> CAttrRef)
# DEB, EBullet (-> CAttrRef)
dt_source _text_dlist.tcl
# DListClear, Section, Subsection, CloseParagraph (-> Text?, TextClear, CAttrCurrent)
# PostProcess
# - SECT (-> SectTitle)
# - SUBSECT (-> SubsectTitle)
# - PARA (-> TEXT context accessors)
# # ## ### ##### ########
##
proc TextInitialize {} {
DListClear
TextClear
ContextReset
Off
ContextSetup
# Root context
ContextNew Base {
MarginReset
PrefixReset
WPrefixReset
VerbatimOff
ListNone
BulletReset
ItemReset
EnumReset
}
return
}
# # ## ### ##### ########
## `text` formatting
proc SectTitle {lb title} {
upvar 1 $lb lines
#lappend lines ""
lappend lines $title
lappend lines [RepeatM = $title]
return
}
proc SubsectTitle {lb title} {
upvar 1 $lb lines
#lappend lines ""
lappend lines $title
lappend lines [RepeatM - $title]
return
}
proc Strong {text} { SplitLine $text _Strong }
proc Em {text} { SplitLine $text _Em }
proc _Strong {text} { return *${text}* }
proc _Em {text} { return _${text}_ }
proc SplitLine {text cmd} {
#puts_stderr AAA/SLI=[string map [list \1 \\1 \t \\t { } \\s] <<[join [split $text \n] >>\n<<]>>]
if {![string match *\n* $text]} {
foreach {lead content} [LeadSplit $text] break
return ${lead}[uplevel 1 [list $cmd $content]]
}
set r {}
foreach line [split $text \n] {
foreach {lead content} [LeadSplit $line] break
if {$content == {}} {
lappend r {}
continue
}
lappend r ${lead}[uplevel 1 [list $cmd $content]]
}
set text [string trimright [join $r \n]]\n
#puts_stderr AAA/SLE=[string map [list \1 \\1 \t \\t { } \\s] <<[join [split $text \n] >>\n<<]>>]
return $text
}
proc LeadSplit {line} {
regexp {^([ \t]*)(.*)([ \t]*)$} $line -> lead content _
list $lead $content
}
# # ## ### ##### ########
## Bulleting
#
# itembullet = index of the bullet to use in the next itemized list
# enumbullet = index of the bullet to use in the next enumerated list
proc EnumReset {} { CAttrSet enumbullet 0 }
proc ItemReset {} { CAttrSet itembullet 0 }
# # ## ### ##### ########
##
proc text_plain_text {text} { TextPlain $text }
proc text_postprocess {text} { PostProcess $text }
#return
# Debugging
proc text_postprocess {text} {
if {[set code [catch {
PostProcess $text
} res]]} {
global errorInfo errorCode
puts_stderr
puts_stderr $errorCode
puts_stderr $errorInfo
return -code $code -errorinfo $errorInfo -errorcode $errorCode $msg
}
return $res
}