Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/SnitXUrxvt?V=2
QUERY_STRINGV=2
CONTENT_TYPE
DOCUMENT_URI/revision/SnitXUrxvt
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.69.59.177
REMOTE_PORT46802
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR3.149.26.176
HTTP_CF_RAY87ac4f698e191098-ORD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_ACCEPT*/*
HTTP_USER_AGENTMozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; ClaudeBot/1.0; [email protected])
HTTP_CF_CONNECTING_IP3.149.26.176
HTTP_CDN_LOOPcloudflare
HTTP_CF_IPCOUNTRYUS

Body


Error

Unknow state transition: LINE -> END

-code

1

-level

0

-errorstack

INNER {returnImm {Unknow state transition: LINE -> END} {}} CALL {my render_wikit SnitXUrxvt {**Widget wrapper  on Linux Systems for easy embedding of the urxvt Terminal**

An easy wrapper for the lightweight surf webbrowser on Linux systems to embed an htmlviewer into Tcl/Tk applications .
Requires surf and xprop tools. Works on X but not on Wayland as Wayland does not support the Xembed protocol.

*** Links ***
    * Urxvt: https://wiki.archlinux.org/index.php/Rxvt-unicode


[WikiDBImage SnitXUrxvt.png]

Source Code:

======

 package require Tk
 package require snit
 package provide SnitXUrxvt 0.1

 snit::widget SnitXUrxvt {
    option -multi 1,1
    option -rxvtargs ""
    constructor {args} {
        $self configurelist $args
        if {$options(-multi) eq "1,2" || $options(-multi) eq "1,3"} {
            set pw1 [panedwindow $win.pw -orient horizontal]
            set st1 [$self term $win.pw.st1] 
            set pw2 [panedwindow  $win.pw.pw2 -orient vertical]
            set st2 [$self term $win.pw.pw2.st2] 
            set st3 [$self term $win.pw.pw2.st3] 
            if {$options(-multi) eq "1,3"} {
                set st4 [$self term $win.pw.pw2.st4] 
            }
            pack $pw1 -side left -expand yes -fill both
            
            $pw1 add $st1 $pw2
            if {$options(-multi) eq "1,3"} {
                $pw2 add $st2 $st3 $st4
            } elseif {$options(-multi) eq "1,2"}   {
                $pw2 add $st2 $st3
            }
        } elseif {$options(-multi) eq "1"}  {
            set st1 [$self term $win.st1] 
            pack $st1 -side left -fill both -expand true
        }
    }
    method term {w} {
        frame $w -container 1
        $w configure -width 100 -height 100
        set pid [exec urxvt -rv -embed [scan [winfo id $w] %x] {*}$options(-rxvtargs) &]    
        bind $w <Destroy> [list exec kill $pid]
        return $w
    }
 }

 if {$argv0 eq [info script]} {
    if {[llength $argv] <= 1 } {
        SnitXUrxvt .urxvt -multi 1,3 -rxvtargs "-fade 10 -cr red -sb -rv +bl"
        pack .urxvt -side top -fill both -expand true
    }
 }


======

** Discussion **

[DDG] If you just need a embedded Terminal you can just avoid snit.

======
package require Tk

proc urxvterm {w} {
    frame $w -container 1
    $w configure -width 100 -height 100
    set pid [exec urxvt -rv -embed [scan [winfo id $w] %x] &]    
    bind $w <Destroy> [list exec kill $pid]
    return $w
}

pack [urxvterm .term] -side top -fill both -expand yes

=====

<<categories>> Application | Terminal | Snit Widgets | Snit} regexp2} CALL {my render SnitXUrxvt {**Widget wrapper  on Linux Systems for easy embedding of the urxvt Terminal**

An easy wrapper for the lightweight surf webbrowser on Linux systems to embed an htmlviewer into Tcl/Tk applications .
Requires surf and xprop tools. Works on X but not on Wayland as Wayland does not support the Xembed protocol.

*** Links ***
    * Urxvt: https://wiki.archlinux.org/index.php/Rxvt-unicode


[WikiDBImage SnitXUrxvt.png]

Source Code:

======

 package require Tk
 package require snit
 package provide SnitXUrxvt 0.1

 snit::widget SnitXUrxvt {
    option -multi 1,1
    option -rxvtargs ""
    constructor {args} {
        $self configurelist $args
        if {$options(-multi) eq "1,2" || $options(-multi) eq "1,3"} {
            set pw1 [panedwindow $win.pw -orient horizontal]
            set st1 [$self term $win.pw.st1] 
            set pw2 [panedwindow  $win.pw.pw2 -orient vertical]
            set st2 [$self term $win.pw.pw2.st2] 
            set st3 [$self term $win.pw.pw2.st3] 
            if {$options(-multi) eq "1,3"} {
                set st4 [$self term $win.pw.pw2.st4] 
            }
            pack $pw1 -side left -expand yes -fill both
            
            $pw1 add $st1 $pw2
            if {$options(-multi) eq "1,3"} {
                $pw2 add $st2 $st3 $st4
            } elseif {$options(-multi) eq "1,2"}   {
                $pw2 add $st2 $st3
            }
        } elseif {$options(-multi) eq "1"}  {
            set st1 [$self term $win.st1] 
            pack $st1 -side left -fill both -expand true
        }
    }
    method term {w} {
        frame $w -container 1
        $w configure -width 100 -height 100
        set pid [exec urxvt -rv -embed [scan [winfo id $w] %x] {*}$options(-rxvtargs) &]    
        bind $w <Destroy> [list exec kill $pid]
        return $w
    }
 }

 if {$argv0 eq [info script]} {
    if {[llength $argv] <= 1 } {
        SnitXUrxvt .urxvt -multi 1,3 -rxvtargs "-fade 10 -cr red -sb -rv +bl"
        pack .urxvt -side top -fill both -expand true
    }
 }


======

** Discussion **

[DDG] If you just need a embedded Terminal you can just avoid snit.

======
package require Tk

proc urxvterm {w} {
    frame $w -container 1
    $w configure -width 100 -height 100
    set pid [exec urxvt -rv -embed [scan [winfo id $w] %x] &]    
    bind $w <Destroy> [list exec kill $pid]
    return $w
}

pack [urxvterm .term] -side top -fill both -expand yes

=====

<<categories>> Application | Terminal | Snit Widgets | Snit}} CALL {my revision SnitXUrxvt} CALL {::oo::Obj2086476 process revision/SnitXUrxvt} CALL {::oo::Obj2086474 process}

-errorcode

NONE

-errorinfo

Unknow state transition: LINE -> END
    while executing
"error $msg"
    (class "::Wiki" method "render_wikit" line 6)
    invoked from within
"my render_$default_markup $N $C $mkup_rendering_engine"
    (class "::Wiki" method "render" line 8)
    invoked from within
"my render $name $C"
    (class "::Wiki" method "revision" line 31)
    invoked from within
"my revision $page"
    (class "::Wiki" method "process" line 56)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4