Error processing request

Parameters

CONTENT_LENGTH0
REQUEST_METHODGET
REQUEST_URI/revision/A+bigger+spreadsheet?V=9
QUERY_STRINGV=9
CONTENT_TYPE
DOCUMENT_URI/revision/A+bigger+spreadsheet
DOCUMENT_ROOT/var/www/nikit/nikit/nginx/../docroot
SCGI1
SERVER_PROTOCOLHTTP/1.1
HTTPSon
REMOTE_ADDR172.69.6.16
REMOTE_PORT14868
SERVER_PORT4443
SERVER_NAMEwiki.tcl-lang.org
HTTP_HOSTwiki.tcl-lang.org
HTTP_CONNECTIONKeep-Alive
HTTP_ACCEPT_ENCODINGgzip, br
HTTP_X_FORWARDED_FOR3.143.228.40
HTTP_CF_RAY87bf2b418c3f616d-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.143.228.40
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 {A bigger spreadsheet} ----\n\[GWM\]\ A\ fairly\ complete\ spreadsheet\ I\ am\ calling\ TXl.\ Allows\ formulae\ to\ be\ edited,\ user\ extendable\ functions\ etc.\nOnce\ run,\ click\ on\ cell\ c6\ and\ modify\ the\ formula\ to\ 22/7.0\ to\ reevaluate\ the\ linked\ cells\ c7-c9.\ And\ so\ on.\nNote\ the\ special\ way\ of\ entering\ the\ functions\ mean\ and\ sum\ which\ are\ converted\ to\ the\ internal\ format.\n\nThis\ code\ has\ now\ been\ extended\ \[TekSel\]to\ read\ a\ \[SYLK\]\ format\ file\ and\ handle\ more\ complex\ data.\n\n======\n\ \ package\ require\ Tk\n\ \ #\ TekSel\ A\ spreadsheet\ with\ options\ to\ set/change\ formulae.\n\ \ #\ The\ basic\ data\ structure\ of\ a\ cell\ is\ an\ array:\n\ \ #\ a\ Tk\ label\ with\ a\ formula,\ a\ value,\ a\ list\ of\ cells\ referred\ to\ by\ this\ cell.\n\ \ #\ An\ entry\ area\ for\ editing\ formula.\n\ \ #\ The\ list\ of\ traces\ causes\ referring\ cells\ to\ reevaluate.\n\ \ \ \ proc\ changeformula\ \{vn\ newv\}\ \{\ \;#\ change\ variable\ vn\ to\ new\ formula\n\ \ \ \ \ \ \ \ uplevel\ #0\ set\ \$\{vn\}(formula)\ \[subst\ -nocommands\ \$newv\]\n\ \ \ \ \ \ \ \ foreach\ trac\ \[uplevel\ #0\ set\ \$\{vn\}(links)\]\ \{\ #\ unset\ traces\ on\ cell.\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ eval\ trace\ remove\ \$trac\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ uplevel\ #0\ set\ \$\{vn\}(links)\ \\\"\\\"\ \;#\ clear\ record\ of\ cell\ links\n\ \ \ \ \ \ \ \ set\ form\ \[uplevel\ #0\ subst\ \$\$\{vn\}(formula)\]\ \;#\ the\ formula\n\ \ \ \ \ \ \ \ foreach\ var\ \[regsub\ -all\ \{\[-+/\\*()\]\}\ \$form\ \{\ \}\]\ \{\ \;#\ set\ watch\ on\ each\ variable\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ if\ variable\ in\ formula\ changes\ then\ change\ this\ result\ (&\ so\ on)\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if\ \{\[uplevel\ #0\ info\ vars\ \$var\]!=\"\"\}\ \{\ \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ cmd\ \"variable\ ::\$var\ \{write\}\ \\\"evaluate\ \$vn\\\"\"\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ eval\ trace\ add\ \$cmd\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uplevel\ #0\ lappend\ \$\{vn\}(links)\ \[list\ \$cmd\]\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ evaluate\ \$vn\n\ \ \ \ \}\n\ \ \ \ proc\ evaluate\ \{vn\ args\}\ \{\n\ \ \ \ \ \ \ \ set\ vtop\ \[uplevel\ #0\ subst\ \$\$\{vn\}(formula)\]\n\ \ \ \ \ \ \ \ foreach\ var\ \[uplevel\ #0\ set\ vlist\]\ \{\ \;#\ replace\ variables\ by\ formula\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ vtop\ \[regsub\ -all\ \$var\ \$vtop\ \[uplevel\ #0\ set\ \$\{var\}(value)\]\]\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ #\ evaluate\ the\ formula\ from\ \[A\ little\ calculator\]\n\ \ \ \ \ \ \ \ catch\ \{expr\ \[string\ map\ \{/\ *1.0/\}\ \[uplevel\ #0\ expr\ \$vtop\]\]\}\ res\n\ \ \ \ \ \ \ \ uplevel\ #0\ set\ \$\{vn\}(value)\ \[list\ \$res\]\n\ \ \ \ return\ \$res\n\ \ \}\n\ \ proc\ showformula\ \{where\ tick\ var\ cell\}\ \{\ \ \;#\ where\ is\ the\ input\ entry\ area.\ cell\ is\ where\ to\ copy\ formula\ from\n\ \ \ \ #\ copy\ formula\ from\ var\ to\ change\ formula\ area.\n\ \ \ \ \$where\ delete\ 0\ end\;\ \$where\ insert\ 0\ \[uplevel\ #0\ set\ \$\{var\}(formula)\]\n\ \ \ \ #\ Change\ effect\ of\ Update\ button\ to\ send\ \"where\"\ to\ var\n\ \ \ \ \$tick\ config\ -command\ \"changeformula\ \$var\ \\\[\$where\ get\\\]\"\n\ \ \}\n\ \ #\n\ \ #\ create\ the\ cells.\ Lets\ call\ them\ A1,\ A2...\ b1,b2\ etc\ like\ many\ other\ spreadsheets\n\ \ set\ vlist\ \{\}\ \;#\ list\ of\ cell\ names\n\ \ pack\ \[frame\ .enterform\]\n\ \ pack\ \[button\ .enterform.tick\ -text\ \"Update\"\ -relief\ raised\ -width\ 8\]\ -side\ left\n\ \ pack\ \[entry\ .enterform.input\ -width\ 72\]\ -side\ left\n\ \ pack\ \[frame\ .rowtitle\]\n\ \ pack\ \[label\ .rowtitle.about\ -text\ \"TXl\"\ -width\ 4\]\ -side\ left\n\ \ foreach\ column\ \{a\ b\ c\ d\ e\ f\ g\ h\}\ \{\n\ \ \ \ \ \ \ \ pack\ \[label\ .rowtitle.\$column\ -text\ \$column\ -width\ 16\]\ -side\ left\n\ \ \}\n\ \ foreach\ row\ \{1\ 2\ 3\ 4\ 5\ 6\ 7\ 8\ 9\ 10\ 11\ 12\ 13\ 14\ 15\}\ \{\;#\n\ \ \ \ pack\ \[frame\ .row\$row\]\n\ \ \ \ pack\ \[label\ .row\$row.r\$row\ -text\ \$row\ -width\ 4\]\ -side\ left\n\ \ \ \ foreach\ column\ \{a\ b\ c\ d\ e\ f\ g\ h\}\ \{\n\ \ \ \ \ \ \ \ set\ vname\ \$column\$row\n\ \ \ \ \ \ \ \ variable\ \$vname\n\ \ \ \ \ \ \ \ lappend\ vlist\ \$vname\n\ \ \ \ \ \ \ \ set\ \$\{vname\}(formula)\ 0.0\n\ \ \ \ \ \ \ \ set\ \$\{vname\}(value)\ 0.0\n\ \ \ \ \ \ \ \ set\ \$\{vname\}(links)\ \{\}\n\ \ \ \ \ \ \ \ pack\ \[label\ .row\$row.\$column\ -textvar\ \$\{vname\}(value)\ -relief\ raised\ -width\ 16\]\ -side\ left\n\ \ \ \ \ \ \ \ bind\ .row\$row.\$column\ <ButtonRelease>\ \"showformula\ .enterform.input\ \\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ .enterform.tick\ \$vname\ .row\$row.\$column\"\n\ \ \ \ \}\n\ \ \}\n\ \ foreach\ row\ \{1\ 2\ 3\ 4\}\ \{\n\ \ \ \ foreach\ column\ \{a\ b\ c\ d\ e\}\ \{\n\ \ \ \ \ \ \ \ set\ cprev\ \[format\ %c\ \[expr\ \[scan\ \$column\ %c\]-1\]\]\n\ \ \ \ \ \ \ \ set\ cnext\ \[format\ %c\ \[expr\ \[scan\ \$column\ %c\]+1\]\]\n\ \ \ \ \ \ \ \ set\ vname\ \$column\$row\n\ \ \ \ \ \ \ \ if\ \{\$row==1\}\ \{\ set\ f\ 1\n\ \ \ \ \ \ \ \ \}\ elseif\ (\$row==4)\ \{set\ f\ 2\n\ \ \ \ \ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if\ \{\$column==\"a\"||\$column==\"e\"\}\ \{set\ f\ 1\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ f\ \".25*(\$\{cprev\}\$row+\$\{cnext\}\$row\"\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ append\ f\ \"+\$\{column\}\[expr\ \{\$row-1\}\]+\$\{column\}\[expr\ \{\$row+1\}\])\"\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ changeformula\ \$vname\ \$f\n\ \ \ \ \}\n\ \ \}\n\ \ #\ some\ math\ functions:\n\ \ proc\ pi\ \{\}\ \{\ return\ \ 3.1415926535897\}\n\ \ changeformula\ a10\ \"\[pi\]\"\n\ \ changeformula\ c6\ \"\[pi\]/4\"\n\ \ changeformula\ b7\ \"sin(1)\"\n\ \ changeformula\ b8\ \"sin(.1)\"\n\ \ changeformula\ b9\ \"sin(.01)\"\n\ \ changeformula\ c7\ \"sin(c6)\"\n\ \ changeformula\ c8\ \"sin(c6*.1)\"\n\ \ changeformula\ c9\ \"sin(c6*.01)\"\n\ \ #\ Examples\ of\ extending\ the\ functions\ available:\n\ \ proc\ range\ \{cstart\ cend\}\ \{\ \;#\ return\ list\ of\ variables\ in\ range\ start\ to\ end\n\ \ \ \ \ \ \ \ set\ col\ \[string\ index\ \$cstart\ 0\]\n\ \ \ \ \ \ \ \ while\ \{\$col\ <=\ \[string\ index\ \$cend\ 0\]\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ row\ \[string\ index\ \$cstart\ 1\]\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ while\ \{\$row\ <=\[string\ index\ \$cend\ 1\]\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lappend\ range\ \$col\$row\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ incr\ row\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ col\ \[format\ %c\ \[expr\ \[scan\ \$col\ %c\]+1\]\]\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ return\ \$range\n\ \ \}\n\ \ proc\ sum\ \{cstart\ cend\}\ \{\ #\ sum\ converts\ to\ sum\ of\ cell\ names.\n\ \ \ \ \ \ \ \ foreach\ vn\ \[range\ \$cstart\ \$cend\]\ \{\ append\ res\ \"+\$vn\"\}\n\ \ \ \ \ \ \ \ return\ \"(\$\{res\})\"\n\ \ \}\n\ \ proc\ mean\ \{cstart\ cend\}\ \{\ #\ mean\ sum\ of\ cell\ names\ divide\ by\ Ncells.\n\ \ \ \ \ \ \ \ set\ n\ 0\n\ \ \ \ \ \ \ \ foreach\ vn\ \[range\ \$cstart\ \$cend\]\ \{\ append\ res\ \"+\$vn\"\ \;\ \ incr\ n\}\n\ \ \ \ \ \ \ \ return\ \"((\$\{res\})/\[expr\ double(\$n)\])\"\n\ \ \}\n\ \ changeformula\ a7\ \"\[mean\ e1\ e4\]\"\n\ \ changeformula\ a8\ \"\[sum\ e1\ e4\]\"\n\ \ changeformula\ a9\ \"\[mean\ a1\ e4\]\"\n\n\n<<categories>>\ Application\ |\ Glossary regexp2} CALL {my render {A bigger spreadsheet} ----\n\[GWM\]\ A\ fairly\ complete\ spreadsheet\ I\ am\ calling\ TXl.\ Allows\ formulae\ to\ be\ edited,\ user\ extendable\ functions\ etc.\nOnce\ run,\ click\ on\ cell\ c6\ and\ modify\ the\ formula\ to\ 22/7.0\ to\ reevaluate\ the\ linked\ cells\ c7-c9.\ And\ so\ on.\nNote\ the\ special\ way\ of\ entering\ the\ functions\ mean\ and\ sum\ which\ are\ converted\ to\ the\ internal\ format.\n\nThis\ code\ has\ now\ been\ extended\ \[TekSel\]to\ read\ a\ \[SYLK\]\ format\ file\ and\ handle\ more\ complex\ data.\n\n======\n\ \ package\ require\ Tk\n\ \ #\ TekSel\ A\ spreadsheet\ with\ options\ to\ set/change\ formulae.\n\ \ #\ The\ basic\ data\ structure\ of\ a\ cell\ is\ an\ array:\n\ \ #\ a\ Tk\ label\ with\ a\ formula,\ a\ value,\ a\ list\ of\ cells\ referred\ to\ by\ this\ cell.\n\ \ #\ An\ entry\ area\ for\ editing\ formula.\n\ \ #\ The\ list\ of\ traces\ causes\ referring\ cells\ to\ reevaluate.\n\ \ \ \ proc\ changeformula\ \{vn\ newv\}\ \{\ \;#\ change\ variable\ vn\ to\ new\ formula\n\ \ \ \ \ \ \ \ uplevel\ #0\ set\ \$\{vn\}(formula)\ \[subst\ -nocommands\ \$newv\]\n\ \ \ \ \ \ \ \ foreach\ trac\ \[uplevel\ #0\ set\ \$\{vn\}(links)\]\ \{\ #\ unset\ traces\ on\ cell.\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ eval\ trace\ remove\ \$trac\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ uplevel\ #0\ set\ \$\{vn\}(links)\ \\\"\\\"\ \;#\ clear\ record\ of\ cell\ links\n\ \ \ \ \ \ \ \ set\ form\ \[uplevel\ #0\ subst\ \$\$\{vn\}(formula)\]\ \;#\ the\ formula\n\ \ \ \ \ \ \ \ foreach\ var\ \[regsub\ -all\ \{\[-+/\\*()\]\}\ \$form\ \{\ \}\]\ \{\ \;#\ set\ watch\ on\ each\ variable\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ #\ if\ variable\ in\ formula\ changes\ then\ change\ this\ result\ (&\ so\ on)\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if\ \{\[uplevel\ #0\ info\ vars\ \$var\]!=\"\"\}\ \{\ \n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ cmd\ \"variable\ ::\$var\ \{write\}\ \\\"evaluate\ \$vn\\\"\"\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ eval\ trace\ add\ \$cmd\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ uplevel\ #0\ lappend\ \$\{vn\}(links)\ \[list\ \$cmd\]\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ evaluate\ \$vn\n\ \ \ \ \}\n\ \ \ \ proc\ evaluate\ \{vn\ args\}\ \{\n\ \ \ \ \ \ \ \ set\ vtop\ \[uplevel\ #0\ subst\ \$\$\{vn\}(formula)\]\n\ \ \ \ \ \ \ \ foreach\ var\ \[uplevel\ #0\ set\ vlist\]\ \{\ \;#\ replace\ variables\ by\ formula\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ vtop\ \[regsub\ -all\ \$var\ \$vtop\ \[uplevel\ #0\ set\ \$\{var\}(value)\]\]\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ #\ evaluate\ the\ formula\ from\ \[A\ little\ calculator\]\n\ \ \ \ \ \ \ \ catch\ \{expr\ \[string\ map\ \{/\ *1.0/\}\ \[uplevel\ #0\ expr\ \$vtop\]\]\}\ res\n\ \ \ \ \ \ \ \ uplevel\ #0\ set\ \$\{vn\}(value)\ \[list\ \$res\]\n\ \ \ \ return\ \$res\n\ \ \}\n\ \ proc\ showformula\ \{where\ tick\ var\ cell\}\ \{\ \ \;#\ where\ is\ the\ input\ entry\ area.\ cell\ is\ where\ to\ copy\ formula\ from\n\ \ \ \ #\ copy\ formula\ from\ var\ to\ change\ formula\ area.\n\ \ \ \ \$where\ delete\ 0\ end\;\ \$where\ insert\ 0\ \[uplevel\ #0\ set\ \$\{var\}(formula)\]\n\ \ \ \ #\ Change\ effect\ of\ Update\ button\ to\ send\ \"where\"\ to\ var\n\ \ \ \ \$tick\ config\ -command\ \"changeformula\ \$var\ \\\[\$where\ get\\\]\"\n\ \ \}\n\ \ #\n\ \ #\ create\ the\ cells.\ Lets\ call\ them\ A1,\ A2...\ b1,b2\ etc\ like\ many\ other\ spreadsheets\n\ \ set\ vlist\ \{\}\ \;#\ list\ of\ cell\ names\n\ \ pack\ \[frame\ .enterform\]\n\ \ pack\ \[button\ .enterform.tick\ -text\ \"Update\"\ -relief\ raised\ -width\ 8\]\ -side\ left\n\ \ pack\ \[entry\ .enterform.input\ -width\ 72\]\ -side\ left\n\ \ pack\ \[frame\ .rowtitle\]\n\ \ pack\ \[label\ .rowtitle.about\ -text\ \"TXl\"\ -width\ 4\]\ -side\ left\n\ \ foreach\ column\ \{a\ b\ c\ d\ e\ f\ g\ h\}\ \{\n\ \ \ \ \ \ \ \ pack\ \[label\ .rowtitle.\$column\ -text\ \$column\ -width\ 16\]\ -side\ left\n\ \ \}\n\ \ foreach\ row\ \{1\ 2\ 3\ 4\ 5\ 6\ 7\ 8\ 9\ 10\ 11\ 12\ 13\ 14\ 15\}\ \{\;#\n\ \ \ \ pack\ \[frame\ .row\$row\]\n\ \ \ \ pack\ \[label\ .row\$row.r\$row\ -text\ \$row\ -width\ 4\]\ -side\ left\n\ \ \ \ foreach\ column\ \{a\ b\ c\ d\ e\ f\ g\ h\}\ \{\n\ \ \ \ \ \ \ \ set\ vname\ \$column\$row\n\ \ \ \ \ \ \ \ variable\ \$vname\n\ \ \ \ \ \ \ \ lappend\ vlist\ \$vname\n\ \ \ \ \ \ \ \ set\ \$\{vname\}(formula)\ 0.0\n\ \ \ \ \ \ \ \ set\ \$\{vname\}(value)\ 0.0\n\ \ \ \ \ \ \ \ set\ \$\{vname\}(links)\ \{\}\n\ \ \ \ \ \ \ \ pack\ \[label\ .row\$row.\$column\ -textvar\ \$\{vname\}(value)\ -relief\ raised\ -width\ 16\]\ -side\ left\n\ \ \ \ \ \ \ \ bind\ .row\$row.\$column\ <ButtonRelease>\ \"showformula\ .enterform.input\ \\\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ .enterform.tick\ \$vname\ .row\$row.\$column\"\n\ \ \ \ \}\n\ \ \}\n\ \ foreach\ row\ \{1\ 2\ 3\ 4\}\ \{\n\ \ \ \ foreach\ column\ \{a\ b\ c\ d\ e\}\ \{\n\ \ \ \ \ \ \ \ set\ cprev\ \[format\ %c\ \[expr\ \[scan\ \$column\ %c\]-1\]\]\n\ \ \ \ \ \ \ \ set\ cnext\ \[format\ %c\ \[expr\ \[scan\ \$column\ %c\]+1\]\]\n\ \ \ \ \ \ \ \ set\ vname\ \$column\$row\n\ \ \ \ \ \ \ \ if\ \{\$row==1\}\ \{\ set\ f\ 1\n\ \ \ \ \ \ \ \ \}\ elseif\ (\$row==4)\ \{set\ f\ 2\n\ \ \ \ \ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ if\ \{\$column==\"a\"||\$column==\"e\"\}\ \{set\ f\ 1\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\ else\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ f\ \".25*(\$\{cprev\}\$row+\$\{cnext\}\$row\"\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ append\ f\ \"+\$\{column\}\[expr\ \{\$row-1\}\]+\$\{column\}\[expr\ \{\$row+1\}\])\"\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ changeformula\ \$vname\ \$f\n\ \ \ \ \}\n\ \ \}\n\ \ #\ some\ math\ functions:\n\ \ proc\ pi\ \{\}\ \{\ return\ \ 3.1415926535897\}\n\ \ changeformula\ a10\ \"\[pi\]\"\n\ \ changeformula\ c6\ \"\[pi\]/4\"\n\ \ changeformula\ b7\ \"sin(1)\"\n\ \ changeformula\ b8\ \"sin(.1)\"\n\ \ changeformula\ b9\ \"sin(.01)\"\n\ \ changeformula\ c7\ \"sin(c6)\"\n\ \ changeformula\ c8\ \"sin(c6*.1)\"\n\ \ changeformula\ c9\ \"sin(c6*.01)\"\n\ \ #\ Examples\ of\ extending\ the\ functions\ available:\n\ \ proc\ range\ \{cstart\ cend\}\ \{\ \;#\ return\ list\ of\ variables\ in\ range\ start\ to\ end\n\ \ \ \ \ \ \ \ set\ col\ \[string\ index\ \$cstart\ 0\]\n\ \ \ \ \ \ \ \ while\ \{\$col\ <=\ \[string\ index\ \$cend\ 0\]\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ row\ \[string\ index\ \$cstart\ 1\]\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ while\ \{\$row\ <=\[string\ index\ \$cend\ 1\]\}\ \{\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ lappend\ range\ \$col\$row\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ incr\ row\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ set\ col\ \[format\ %c\ \[expr\ \[scan\ \$col\ %c\]+1\]\]\n\ \ \ \ \ \ \ \ \}\n\ \ \ \ \ \ \ \ return\ \$range\n\ \ \}\n\ \ proc\ sum\ \{cstart\ cend\}\ \{\ #\ sum\ converts\ to\ sum\ of\ cell\ names.\n\ \ \ \ \ \ \ \ foreach\ vn\ \[range\ \$cstart\ \$cend\]\ \{\ append\ res\ \"+\$vn\"\}\n\ \ \ \ \ \ \ \ return\ \"(\$\{res\})\"\n\ \ \}\n\ \ proc\ mean\ \{cstart\ cend\}\ \{\ #\ mean\ sum\ of\ cell\ names\ divide\ by\ Ncells.\n\ \ \ \ \ \ \ \ set\ n\ 0\n\ \ \ \ \ \ \ \ foreach\ vn\ \[range\ \$cstart\ \$cend\]\ \{\ append\ res\ \"+\$vn\"\ \;\ \ incr\ n\}\n\ \ \ \ \ \ \ \ return\ \"((\$\{res\})/\[expr\ double(\$n)\])\"\n\ \ \}\n\ \ changeformula\ a7\ \"\[mean\ e1\ e4\]\"\n\ \ changeformula\ a8\ \"\[sum\ e1\ e4\]\"\n\ \ changeformula\ a9\ \"\[mean\ a1\ e4\]\"\n\n\n<<categories>>\ Application\ |\ Glossary} CALL {my revision {A bigger spreadsheet}} CALL {::oo::Obj3129503 process revision/A+bigger+spreadsheet} CALL {::oo::Obj3129501 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