invalid command name "hgetvars" while executing "hgetvars" (in namespace eval "::request" script line 3) invoked from within "namespace eval ::request $script" ("::try" body line 12)OUTPUT BUFFER:
puts -nonewline "" hgetvars if {![var exists b]} { headers numeric 400 puts "Mailbox not specified.
" return } if {![var exists mid]} { headers numeric 400 puts "Message-Id not specified.
" return } if {[catch {open /home/smirnov/Mail/$VARS(b)} F]} { headers numeric 404 puts -error "$VARS(b) $F" puts "Could not open $VARS(b)
" return } set idfound 0 set inheader 0 while {[gets $F line] != -1} { if {$inheader} { switch -regexp -- $line { {***:(?i)^Message-Id: <} { regexp -nocase \ {Message-Id: <([^>]+)>} \ $line junk mid if {$mid == $VARS(mid)} { set idfound 1 } } {^$} { set inheader 0 } } } else { switch -regexp -- $line { {^From } { if $idfound break set full {} set inheader 1 } } } append full $line \n } close $F if {!$idfound} { headers numeric 404 puts "Could not find ``$VARS(mid)'' in $VARS(b)
" return } if {[var exists text]} { # Output raw-text version of the message: headers set X-Misha text-only headers type text/plain puts $full return } set title $VARS(b) if {[regexp -nocase {\nSubject: *([^\n]+)\n} $full junk subject]} { append title ": $subject" } puts -nonewline "" puts $title puts -nonewline " " set full [string map {< < > > @ @} $full] set refs [regexp -inline -nocase -indices -all \ {(In-Reply-To|References): +([^\n]+) *\n} $full] if {[var exists d]} { foreach e $refs { puts "``$e: [string range \ $full [lindex $e 0] [lindex $e 1]]''\n" } } set shift 0 foreach {junk junk mids} $refs { set urls {} set begin [expr [lindex $mids 0] + $shift] set end [expr [lindex $mids 1] + $shift] foreach mid [split \ [string range $full $begin $end]] { # < and > are both of length 4: set mid [string range $mid 4 end-4] set mid [string map {@ @} $mid] # Some chars, which may be valid in Message-Id: # need escaping in a URL: set emid [string map {+ %2B $ %24 & %26} $mid] if {[var exists d]} { puts "Id: $mid\n" } regsub {mid=[^&]+} $ENVS(REQUEST_URI) "mid=$emid" url lappend urls "<$mid>" } set urls [join $urls] incr shift [expr [string length $urls] - $end + $begin - 1] incr begin -1 incr end set full [string range $full 0 \ $begin]$urls[string range $full $end end] } if { [var exists d] && [ array exists ENVS ] } { puts "