Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/bindtags?V=12
QUERY_STRINGV=12
CONTENT_TYPE
DOCUMENT_URI/revision/bindtags
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.69.58.4
REMOTE_PORT55302
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR18.221.53.209
HTTP_CF_RAY876e0acd9bc2111e-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_IP18.221.53.209
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 bindtags {bindtags - Determine which [binding]s apply to a [window], and order of evaluation



http://www.purl.org/tcl/home/man/tcl8.4/TkCmd/bindtags.htm
   [http://www.tcl.tk/man/tcl/TkCmd/bindtags.htm%|%man page]:   
Used to define the binding hierarchy for [Widget]s. See [A tiny input manager] for a usage example.

[RS] gave a great description of bindtags: he called them "bundles of bindings" or something to that effect. Widgets have a list of such "bundles" associated with them. Every time an event happens over that widget, each "bundle" is checked in turn, and if there is a binding matching the event, it is fired. If the binding does a [break] no more "bundles" are considered. Otherwise, each additional bundle goes through the same processing in turn.
** Examples **
By default, each widget has a set of bindtags that includes the specific widget, the widget class, the toplevel window for that widget, and the special word "all". So, for example, to attach a binding to all widgets you can associate the binding with the tag "all" rather than a specific widget.

<<discussion>>
Used to define the binding hierarchy for [Widget]s.
'''Uppercase entry''': Here is a little example that diverts lowercase letter keys to their uppercase variants (other characters come through unharmed) - for the "; break" bit I had to quote the binding body, instead of listifying it as one normally should:
[RS] gave a great description of bindtags: he called them "bundles of bindings"
 foreach i {a b c d e f g h i j k l m n o p q r s t u v w x y z} {
     bind Upcase $i "event generate %W [string toupper $i]; break"
 } ;# RS
 # Usage example, associate the bindtags to a widget:
 pack [entry .e]
 bindtags    .e [concat Upcase [bindtags .e]]
By default, each widget has a set of bindtags that includes the specific
----
** Example:  Uppercase Entry ** 
Prettify this chat conversation:
Here is a little example that diverts lowercase letter keys to their uppercase
'''vr:''' WRT bindtags, can you explain how to preserve the original code bound to that event using bindtags?
======
'''vr:''' also, why should I be binding to the buttonrelease event?

'''suchenwi:''' Simply: if you have custom bindings, bind them to a bindtag, not a widget name; place that bindtag (with the '''bindtags''' command) in the binding sequence of the widget(s) in question.
"... [KHIM] is a good example.  Any widget that wants KHIM's services can add
'''suchenwi:''' eval bindtags $myWidget myBindings [[bindtags $mywidget]]

'''suchenwi:''' puts everything that you bind to myBindings before all other bindings of myWidget (but they are still executed, if yours doesn't [break])


----
"... [KHIM] is a good example.  Any widget that wants KHIM's services can add 'khim' to its list of bindtags, and get a whole lot of <Key> bindings

        bindtags $text [linsert [bindtags $text] 1 khim]


----
In March, 2006 an article on bindtags appears on tclscripting.com [http://www.tclscripting.com/articles/mar06/article2.html]

<<discussion>>
----
!!!!!!
[Tk syntax help] -
[Arts and Crafts of Tcl-Tk Programming] -
%| [Category Command] | [Category Introspection] |%
!!!!!!} regexp2} CALL {my render bindtags {bindtags - Determine which [binding]s apply to a [window], and order of evaluation



http://www.purl.org/tcl/home/man/tcl8.4/TkCmd/bindtags.htm
   [http://www.tcl.tk/man/tcl/TkCmd/bindtags.htm%|%man page]:   
Used to define the binding hierarchy for [Widget]s. See [A tiny input manager] for a usage example.

[RS] gave a great description of bindtags: he called them "bundles of bindings" or something to that effect. Widgets have a list of such "bundles" associated with them. Every time an event happens over that widget, each "bundle" is checked in turn, and if there is a binding matching the event, it is fired. If the binding does a [break] no more "bundles" are considered. Otherwise, each additional bundle goes through the same processing in turn.
** Examples **
By default, each widget has a set of bindtags that includes the specific widget, the widget class, the toplevel window for that widget, and the special word "all". So, for example, to attach a binding to all widgets you can associate the binding with the tag "all" rather than a specific widget.

<<discussion>>
Used to define the binding hierarchy for [Widget]s.
'''Uppercase entry''': Here is a little example that diverts lowercase letter keys to their uppercase variants (other characters come through unharmed) - for the "; break" bit I had to quote the binding body, instead of listifying it as one normally should:
[RS] gave a great description of bindtags: he called them "bundles of bindings"
 foreach i {a b c d e f g h i j k l m n o p q r s t u v w x y z} {
     bind Upcase $i "event generate %W [string toupper $i]; break"
 } ;# RS
 # Usage example, associate the bindtags to a widget:
 pack [entry .e]
 bindtags    .e [concat Upcase [bindtags .e]]
By default, each widget has a set of bindtags that includes the specific
----
** Example:  Uppercase Entry ** 
Prettify this chat conversation:
Here is a little example that diverts lowercase letter keys to their uppercase
'''vr:''' WRT bindtags, can you explain how to preserve the original code bound to that event using bindtags?
======
'''vr:''' also, why should I be binding to the buttonrelease event?

'''suchenwi:''' Simply: if you have custom bindings, bind them to a bindtag, not a widget name; place that bindtag (with the '''bindtags''' command) in the binding sequence of the widget(s) in question.
"... [KHIM] is a good example.  Any widget that wants KHIM's services can add
'''suchenwi:''' eval bindtags $myWidget myBindings [[bindtags $mywidget]]

'''suchenwi:''' puts everything that you bind to myBindings before all other bindings of myWidget (but they are still executed, if yours doesn't [break])


----
"... [KHIM] is a good example.  Any widget that wants KHIM's services can add 'khim' to its list of bindtags, and get a whole lot of <Key> bindings

        bindtags $text [linsert [bindtags $text] 1 khim]


----
In March, 2006 an article on bindtags appears on tclscripting.com [http://www.tclscripting.com/articles/mar06/article2.html]

<<discussion>>
----
!!!!!!
[Tk syntax help] -
[Arts and Crafts of Tcl-Tk Programming] -
%| [Category Command] | [Category Introspection] |%
!!!!!!}} CALL {my revision bindtags} CALL {::oo::Obj3995765 process revision/bindtags} CALL {::oo::Obj3995763 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