Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/bindtags?V=6
QUERY_STRINGV=6
CONTENT_TYPE
DOCUMENT_URI/revision/bindtags
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.70.38.111
REMOTE_PORT14700
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip
HTTP_CF_IPCOUNTRYUS
HTTP_X_FORWARDED_FOR3.81.89.248
HTTP_CF_RAY6b966646f89e5ce8-IAD
HTTP_X_FORWARDED_PROTOhttps
HTTP_CF_VISITOR{"scheme":"https"}
HTTP_USER_AGENTCCBot/2.0 (https://commoncrawl.org/faq/)
HTTP_ACCEPTtext/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
HTTP_ACCEPT_LANGUAGEen-US,en;q=0.5
HTTP_CF_CONNECTING_IP3.81.89.248
HTTP_CDN_LOOPcloudflare

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 bindings apply to a window, and order of evaluation

'''bindtags''' ''window ?tagList?''

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 Widgets. 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.

----
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])

----

[Tk syntax help] -
[Arts and Crafts of Tcl-Tk Programming] -
[Category Command] -
[Category Introspection]} regexp2} CALL {my render bindtags {bindtags - Determine which bindings apply to a window, and order of evaluation

'''bindtags''' ''window ?tagList?''

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 Widgets. 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.

----
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])

----

[Tk syntax help] -
[Arts and Crafts of Tcl-Tk Programming] -
[Category Command] -
[Category Introspection]}} CALL {my revision bindtags} CALL {::oo::Obj37753927 process revision/bindtags} CALL {::oo::Obj37753925 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 51)
    invoked from within
"$server process [string trim $uri /]"

-errorline

4