# static!orange.3a dfault theme for jIRCii # - wonderful mIRC script written by webba in 1997. # - theme ported by neuken (major help from `butane) using the dfault.sos from the original script # - the original font used was Fixedsys (Fixedsys Excelsior 2.00 for jIRCii) but since it may not # be installed on all systems, Courier New was used as a default. /sfont will allow for the # switching of 5 different fonts (assuming they are installed). each of the fonts can be # downloaded in the script/themes section from http://jirc.hick.org. # # usage: /load so.irc # usage: /sfont <1-5> [size (optional)] # $nnn = "\c14[\c04!\c07so\c04!\c14]\c15"; $rrr = "\c14i\c15!\c16o\c15"; setProperty("ui.sbarlines",1); setProperty("statusbar.color","-12632256"); if (getProperty("statusbar.bgtype", 0) == 0) { setProperty("statusbar.bgtype", 1); } setProperty("statusbar",-1); setProperty("ui.font","Courier New-PLAIN-13"); echo("$nnn use \c16/\c14sfont\c15 to switch between fixed-width fonts"); set ACTION { return "\c13* $nick $1-"; } set ACTION_INACTIVE { return "\c13* $nick $+ / $+ $0 $1-"; } set CHANNEL_CREATED { return "$nnn \c07ts\c14:\c15 $1 was formed on $created"; } set CHANNEL_JOIN { return "$nnn \c07join\c14: [\c16 $nick \c14(\c15 $+ $address $+ \c16/\c15 $+ $target $+ \c14) ]"; } set CHANNEL_KICK { return "$nnn \c07kick\c14: [\c00 $nick \c14(\c15kicked $1 $+ \c16/\c15 $+ $0 $+ \c14) ]\c16:\c15 $2-"; } set CHANNEL_MODE { return "$nnn \c07mode\c14: [\c16 $source \c14(\c15 $+ $parms $+ \c16/\c15 $+ $target $+ \c14) ]"; } set CHANNEL_NAMES { return; } set CHANNEL_PART { return "$nnn \c07part\c14: [\c16 $nick \c14(\c15 $+ $address $+ \c16/\c15 $+ $target $+ \c14) ]"; } set CHANNEL_TEXT { return "\c14[\c15 $[9]nick $+ \c14 ]\c15 $1-"; } set CHANNEL_TEXT_INACTIVE { return "\c14[\c16 $[9]nick $+ \c14/\c15 $+ $0 $+ \c14 ]\c15 $1-"; } set CHANNEL_TOPIC_CHANGED { return "$nnn \c07topic\c14: [\c16 $nick \c14(\c15 $+ $parms $+ \c14) ]"; } set CHANNEL_TOPIC_IS { return "$nnn \c07topic\c14: [\c16 $0 \c14(\c15 $+ $parms $+ \c14) ]"; } set CHANNEL_TOPIC_SETBY { return "$nnn \c07topic\c14: [\c16 $1 \c14(\c15by\c16\:\c15 " . getToken(tokenize("$2","!"),0) . "\c14) ]"; } set CHAT_OPEN { return; } set CHATMSG { return "\c14[\c15 $[9]0 \c14(\c15dcc\c14) ]\c15 $1-"; } on CONNECT { echoStatus("\c7QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"); echoStatus("\c7QQQQ \c0s\c14tati\c11c o\c14rang\c0e \c7QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"); echoStatus("\c7QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"); echoStatus("\c7QQQQQQQQQQQQQQQQQ???\"\"\"``````\c8___ \c7``\"?QQQQQQQQQQ???7\"\"77??QQQQQQQQQQQQQQQQQ"); echoStatus("\c7QQQQQQQQQ??\"\"``\c8__,,,yyy##\$\$\$\$\$\$\$\$\$\$ \c7'??7\"```\c8__.,,,yyyyy,._ \c7``?QQQQQQQQQQQQ"); echoStatus("\c7QQQQQ?\"`\c8,,y#?\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$?` \c7`\c8,,y#?\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$y, \c7?QQQQQQQQQQ"); echoStatus("\c7QQQ?`\c8,j\$\$\$\$\$\$\$\$?\"``\c7,,,\c8``\"?\$\$\$\$\$\$\$\$\$,j\$\$\$\$\$\$\$\$?7\"````\"7?\$\$\$\$\$\$\$L. \c7?QQQQQQQQ"); echoStatus("\c7QQ? \c8,\$\$\$\$\$\$\$\$\$` \c7qQQQQQo \c8,j\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$\$?`\c7,,qQQQQqq, \c8'?\$\$\$\$\$\$; \c7'?QQQQQQ"); echoStatus("\c7QQ: \c8\$\$\$\$\$\$\$\$\$\$L,,\c7`\"\"\"`\c8,y#\$\$\$???\"\"``\$\$\$\$\$\$\$\$  \c7qQQQQQQQQQQq \c8'?\$\$\$\$\$L  \c7?QQQQQ"); echoStatus("\c7QQL \c8'7\$\$\$\$\$\$\$\$\$\$\$\$&##yyy,,.__     `7\$\$\$\$\$\$l  \c7QQQQQQQQQQQQQ, \c8?\$\$\$\$\$; \c7'?QQQQ"); echoStatus("\c7QQQ\"`\c8  ``\"\"'''77???\$\$\$\$\$\$\$\$\$\$\$\$\$?\$#L\$\$\$\$\$\$\$; \c7?QQQQQQQQQQQQQ, \c8?\$\$\$\$\$; \c7:QQQQ"); echoStatus("\c7QQQ \c8Lyyyy##yyy\$j,,+-- \c7,,, \c8```\"7?\$\$\$\$\$\$\$\$\$\$\$L \c7'QQQQQQQQQQQQQQ \c8'\$\$\$\$\$\$  \c7QQQQ"); echoStatus("\c7QQQ \c8\$\$\$\$\$\$\$\$\$\$\$: \c7,qqqqQQQQQQqq,\c8`?\$\$\$\$\$\$\$\$\$\$\$: \c7'?QQQQQQQQQQQQ: \c8\$\$\$\$\$\$  \c7QQQQ"); echoStatus("\c7QQQ \c8\$\$\$\$\$\$\$\$\$\$\$L, \c7?QQQQQQQQQQ?` \c8\$\$\$\$\$? `?\$\$\$\$L,\c7'?QQQQQQQQQQ? \c8;\$\$\$\$\$? \c7;QQQQ"); echoStatus("\c7QQQ \c8|\$\$\$\$\$\$\$\$\$\$\$\$y,  \c7''\"\"\"``` \c8,j\$\$\$\$` \c7,Q,\c8`\"?\$\$\$y,\c7'\"??QQQQ?`\c8,,\$\$\$\$\$` \c7,QQQQQ"); echoStatus("\c7QQQ \c8:\$???\"\"```:'\"?\$\$L#yyjjjyy#\$\$7\"` \c7,qQQQQq,\c8`'7?\$\$L#yy,,,yy#\$\$7\"` \c7,qQQQQQQ"); echoStatus("\c7QQQ \c8.| \c7,,qqQQqqq,,,\c8``'''\"\"\"``` \c7_,,qQQQQQQQQQQQq,,\c8``'''\"\"\"``` \c7,,qqQQQQQQQQQ"); echoStatus("\c7QQQ,,qqQQQQQQQQQQQQQQqqqqqqqqQQQQQQQQQQQQQQQQQQQQQQQqqqqqqQQQQQQQQQQQQQQQQ"); echoStatus("\c7QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"); echoStatus("\c7QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQ"); } set CTCP_REPLY { $stuff = "$2-"; if ($pt ne "") { $stuff = "$pt"; } return "$rrr \c07reply\c14: [\c16 $nick \c14(\c15 $+ $address $+ \c14) ] [\c15 $1 $stuff \c14]"; } set CTCP_REQUEST { local ('$reqt'); if ($1 eq "PING" && -isnumber $2) { $reqt = "PING"; } else { $reqt = $1; if ($2 ne "") { $reqt = uc($reqt) " $2-"; } } return "$rrr \c07ctcp\c14: [\c16 $nick \c14(\c15 $+ $address $+ \c16/\c15 $+ $target $+ \c14) ]\c16:\c15 $reqt"; } set DCC_REQUEST { if ($2 eq "CHAT") { return "$rrr \c07chat\c14: [\c16 $nick \c14(\c15 $+ $address $+ \c14) ] [\c15 " . longip("$4") . " \c14(\c15 $+ $target $+ \c14) ]"; } if ($2 eq "SEND") { return "$rrr \c07get\c14: [\c16 $nick \c14(\c15 $+ $address $+ \c14) ] [\c15 " . longip("$4") . " \c14(\c15 $+ $3 $+ \c16/\c15" . formatBytes("$6") . "\c14) ]"; } } set FORMATTED_NAMES { return "" . formatNick($nick, $2, left("$[10]nick", 10)) . ""; } set FORMATTED_NAMES_HEADER { return; } sub fM { if ($1 isop $2) { return "\c16@\c15 $+ $[10]1"; } if ($1 isvoice $2) { return "\c16+\c15 $+ $[10]1"; } if ($1 ishalfop $2) { return "\c16%\c15 $+ $[10]1"; } return "\c15 $[10]1"; } #from bitchx.irc sub formatNick { if ($1 isop $2) { return "\c16@\c15 $+ $3"; } if ($1 isvoice $2) { return "\c16+\c15 $+ $3"; } if ($1 ishalfop $2) { return "\c16%\c15 $+ $3"; } return "\c15 $3"; } #eof bitchx.irc set IDENT_REQUEST { return "$nnn ident request from $0"; } set INVITE { return "$nnn \c07invite\c14: [\c16 $nick \c14(\c15 $+ $address $+ \c16/\c15 $+ $parms $+ \c14) ]"; } set IRC_ATTEMPT_CONNECT { return "$nnn attempting to connect to " . $0; } set IRC_CONNECT { return "$nnn connected to " . getServerHost(); } set IRC_DISCONNECT { return "$nnn disconnected from " . getServerHost() . ": $parms"; } set IRC_RECONNECT { return "$nnn attempting to reconnect to " . getServerHost(); } set JOIN_SYNC { call("sc $1"); return "$nnn \c07synch\c14:\c15 join to $1 synched in $sync $+ s"; } set NOTICE { if ($nick eq "") { return "$nnn \c07server\c14:\c15 $2-"; } if ($1 eq "DCC") { if (($2 eq "Chat") || ($2 eq "Send")) { return; } } return "\c16-\c14[\c16 $nick \c14(\c15 $+ $address $+ \c14) ]\c16-\c15 $parms"; } set NOTIFY_SIGNOFF { return "$nnn \c07notify\c14: [\c16 $nick \c14() ]\c15 left IRC"; } set NOTIFY_SIGNON { return "$nnn \c07notify\c14: [\c16 $nick \c14(\c15 $+ $address $+ \c14) ]\c15"; } set NUMERIC { return "$nnn $parms"; } set PRIVACTION { return "\c13* $nick $1-"; } set PRIVMSG { if (-iswindow "$nick") { return "\c14[\c15 $[9]nick \c14]\c15 $parms"; } return "\c14[\c15 $nick \c14(\c15 $+ $address $+ \c14) ]\c16:\c15 $parms"; } set RECEIVE_COMPLETE { return "$nnn \c07get\c14: [\c16 $nick \c14(\c15" . getDCCAddress(getDCCConnection($this)) . "\c14) ]\c16:\c15 " . getDCCFileName(getDCCConnection($this)) . " \c07cps\c14:\c15 " . formatBytes(getTransferRate(getDCCConnection($this))) . "/s"; } set RECEIVE_FAILED { return "$nnn \c07get fail\c14: [\c16 $nick \c14(\c15" . getDCCFileName(getDCCConnection($this)) . "\c16/\c15" . formatBytes(getTransferRate(getDCCConnection($this))) . "/s\c14) ]"; } set RECEIVE_START { return; } set REPL_001 { return; } set REPL_002 { return; } set REPL_003 { return; } set REPL_004 { return; } set REPL_005 { return; } set REPL_250 { return; } set REPL_251 { return "$nnn users: " . ($3 + $6) . " servers: $9"; } set REPL_252 { return "$nnn opers: $1"; } set REPL_253 { return; } set REPL_254 { return "$nnn channels: $1"; } set REPL_255 { return "$nnn local clients: $3 servers: $6"; } set REPL_265 { return; } set REPL_266 { return; } set REPL_301 { return "$nnn \c16| \c15away \c14|\c15 $2-"; } set REPL_302 { return; } set REPL_305 { return "$nnn you are no longer marked away"; } set REPL_306 { return "$nnn you are now marked away"; } set REPL_307 { return; } #adapted from bitchx.irc on REPL_311 { if (-isSetT "active.whois") { echo(parseSet("SO_WHOIS_HEADER","whois",$1)); echo(parseSet("SO_REPL_311_1",$1,"$2 $3")); echo(parseSet("SO_REPL_311_2",$5-)); } else { echoStatus(parseSet("SO_WHOIS_HEADER","whois",$1)); echoStatus(parseSet("SO_REPL_311_1",$1,"$2 $3")); echoStatus(parseSet("SO_REPL_311_2",$5-)); } } #eof bitchx.irc set REPL_311 { return; } on REPL_312 { echo(parseSet("SO_REPL_312_1",$2)); echo(parseSet("SO_REPL_312_2",$3-)); } set REPL_312 { return; } set REPL_313 { return "$nnn \c16| \c15oper \c14|\c15 $1 is an adept at finding *that* spot."; } #adapted from bitchx.irc on REPL_314 { if (-isSetT "active.whois") { echo(parseSet("SO_WHOIS_HEADER","whowas",$1)); echo(parseSet("SO_REPL_311_1",$1,"$2 $3")); echo(parseSet("SO_REPL_311_2",$5-)); } else { echoStatus(parseSet("SO_WHOIS_HEADER","whowas",$1)); echoStatus(parseSet("SO_REPL_311_1",$1,"$2 $3")); echoStatus(parseSet("SO_REPL_311_2",$5-)); } } #eof bitchx.irc set REPL_314 { return; } set REPL_315 { return; } set REPL_317 { return "$nnn \c16| \c15idle \c14|\c15 " . duration($2); } set REPL_318 { return "$nnn \c16+------\c14+\c15-\c14- -- -"; } set REPL_319 { return "$nnn \c16| \c15chan \c14|\c15 $2-"; } set REPL_320 { return; } set REPL_321 { return; } set REPL_322 { return; } set REPL_323 { return; } set REPL_324 { return; } set REPL_330 { return; } set REPL_338 { return; } set REPL_341 { return "$nnn \c07invited\c14: [\c16 $1 \c14(\c15 $+ $2 $+ \c14) ]"; } set REPL_352 { return; } on REPL_353 { return; } set REPL_364 { return; } set REPL_365 { return; } set REPL_366 { return; } set REPL_369 { return "$nnn \c16+------\c14+\c15-\c14- -- -"; } set REPL_372 { return; } set REPL_375 { return; } set REPL_376 { return; } set REPL_378 { return; } on REPL_401 { echo(parseSet("SO_REPL_401",$1)); echo(parseSet("SO_REPL_401_2")); } set REPL_401 { return; } set REPL_403 { return "$nnn \c07error\c14: [\c15 $1 \c14(\c15no such channel\c14) ]"; } set REPL_404 { return "$nnn \c07error\c14: [\c15 $2 \c14(\c15can't send to channel\c14) ]"; } on REPL_406 { echo(parseSet("SO_REPL_401",$1)); echo(parseSet("SO_REPL_401_2")); } set REPL_406 { return; } set REPL_433 { return "$nnn \c07error\c14: [\c15 $2 \c14(\c15nick in use\c14) ]"; } set REPL_442 { return "$nnn \c07error\c14: [\c15 $2 \c14(\c15not on channel\c14) ]"; } set REPL_473 { return "$nnn \c07error\c14: [\c15 $2 \c14(\c15banned\c14) ]"; } set REPL_474 { return "$nnn \c07error\c14: [\c15 $2 \c14(\c15invite only\c14) ]"; } set REPL_475 { return "$nnn \c07error\c14: [\c15 $2 \c14(\c15bad key\c14) ]"; } set REPL_481 { return "$nnn \c07error\c14: [\c15 $2 \c14(\c15not an operator\c14) ]"; } set REPL_482 { return "$nnn \c07error\c14: [\c15 $2 \c14(\c15not chanop\c14) ]"; } #from `butane on REQUEST { if (uc($1) eq "VERSION") { sendReply($nick, "VERSION","jIRCii!" . versionString() . " [ \bs\btati\uc\b!\bo\urang\be\b.\b3\ba (\bd\bfault) ]"); if (-isSetT "active.ctcp") { echo(parseSet("CTCP_REQUEST",%localData)); } else { echoStatus(parseSet("CTCP_REQUEST",%localData)); } halt; } } #eof `butane set RESOLVED_HOST { if ($2- ne "") { return "$nnn resolved $0 to $1"; } return "$nnn unable to resolve $0"; } set RESOLVED_LOCALINFO { return "$nnn resolved local host to $0"; } set RESUME_FAILED { return; } set RESUME_REQUEST { return; } set RESUME_REQUEST_ERROR { return; } set RESUME_SUCCEEDED { return; } set SBAR_LEFT { local('$temp'); $temp .= "" . formatNick("$me","$query","$me") . "\c14[\c15 $+ $mymode $+ \c14]\c15"; if ($query eq $null) { $temp .= " on " . getServerHost() . "\c14[\c15" . getServerPort() . "\c14]\c15"; } else if ($me ison $query) { $temp .= " on $query $+ \c14[\c15" . getMode("$query") . "\c14]\c16:\c15 u\c14[\c15" . size(getUsers("$query")) . "\c14]\c15 o\c14[\c15" . size(getOps("$query")) . "\c14]\c15 v\c14[\c15" . size(getVoiced("$query")) . "\c14]\c15 h\c14[\c15" . size(getHalfOps("$query")) . "\c14]\c15"; } else { $temp .= " in query \c14[\c15 $+ $query $+ \c15]\c14"; } return "\c14[!so!]\c15 $temp"; } set SBAR_RIGHT { return "$time $+ \c16/\c15lag\c14[\c15 $+ $lag $+ s\c14] "; } alias SC { $win = iff("$1","$1","$active"); if (!-ischannel "$win") { return; } $temp = "-" x (43 - strlen("$win")); echo("$win","$nnn \c14.---\c16[\c15 $win \c16]\c14-" . $temp . "."); @nicks = getUsers("$win"); for ($x = 0; $x < size(@nicks); $x += 4) { ($nick1, $nick2, $nick3, $nick4) = subarray(@nicks,$x,4 + $x); echo("$win","$nnn \c14| " . fM("$nick1","$win") . "\c14\. " . fM("$nick2","$win") . "\c14\. " . fM("$nick3","$win") . "\c14\. " . fM("$nick4","$win") . "\c14|"); } echo ("$win","$nnn \c14'" . $temp . "-\c16[\c15 $win \c16]\c14---'"); } alias SCAN { call("sc $1"); } set SEND_ACTION { return "\c13* $me $parms"; } set SEND_ACTION_INACTIVE { return "\c13* $me $+ / $+ $0 $parms"; } set SEND_ACTION_PRIV { return "\c13* -> $me $+ / $+ $0 $parms"; } set SEND_COMPLETE { return "$nnn \c07send\c14: [\c16 $nick \c14(\c15" . getDCCAddress(getDCCConnection($this)) . "\c14) ]\c16:\c15 " . getDCCFileName(getDCCConnection($this)) . " \c07cps\c14:\c15 " . formatBytes(getTransferRate(getDCCConnection($this))) . "/s"; } set SEND_CTCP { local ('$send'); if ($1 eq "PING") { $send = "$1"; } else { $send = "$1 $2-"; } return "$rrr \c14[\c16 ctcp \c14(\c15 $+ $0 $+ \c14) ]\c15 $send"; } set SEND_FAILED { return "$nnn \c07send fail\c14: [\c16 $nick \c14(\c15" . getDCCFileName(getDCCConnection($this)) . "\c16/\c15" . formatBytes(getTransferRate(getDCCConneciton($this))) . "/s\c14) ]"; } set SEND_MSG { if (-iswindow "$target") { if (getCurrentWindow() ne "$target") { echo("\c14[\c16 msg \c14(\c15 $+ $0 $+ \c14) ]\c16:\c15 $parms"); } return "\c14[\c16 $[9]me \c14]\c15 $parms"; } return "\c14[\c16 msg \c14(\c15 $+ $0 $+ \c14) ]\c16:\c15 $parms"; } set SEND_NOTICE { return "\c14[\c16 not \c14(\c15 $+ $0 $+ \c14) ]\c16:\c15 $parms"; } set SEND_START { return; } set SEND_TEXT { return "\c14[\c16 $[9]me \c14]\c15 $parms"; } set SEND_TEXT_INACTIVE { return "\c14[\c15 $me $+ \c14:\c15 $+ $target \c14]\c15 $parms"; } set SEND_WALL { return "\c15[\c07so\c05-\c15wall\c15/\c16 $+ $0 $+ \c15] $1-"; } set SEND_WALLEX { return "\c15[\c07so\c04-\c15exclude\c15/\c16 $+ $0 $+ \c15] $1-"; } set SERVER_ERROR { return "$nnn \c07server error\c14:\c15 $parms"; } alias SO_LOAD { $f = getProperty("so.font"); if ($f ne "") { call("sfont $f"); } } set SO_REPL_311_1 { return "$nnn \c16| \c15addy \c14|\c15 $1 $+ \c14@\c15 $+ $2"; } set SO_REPL_311_2 { return "$nnn \c16| \c15name \c14|\c15 $0-"; } set SO_REPL_312_1 { return "$nnn \c16| \c15serv \c14|\c15 $0"; } set SO_REPL_312_2 { return "$nnn \c16| \c15note \c14|\c15 $0-"; } set SO_REPL_401 { return "$nnn \c16+------\c14|\c15 error:\c16 $0 \c14|\c16-------\c15----\c14--- \c15---\c14- \c15-\c14---- -"; } set SO_REPL_401_2 { return "$nnn \c16| \c14|\c15 no such nick/channel"; } set SO_WHOIS_HEADER { return "$nnn \c16+------\c14|\c15 $0 $+ \c16 $1 \c14|\c16-------\c15----\c14--- \c15---\c14- \c15-\c14---- -"; } alias SFONT { $temp = tokenize("x!APL385 Unicode!Courier New!Fixedsys Excelsior 2.00!Lucida ConsoleP!Terminus","!"); $size = tokenize("x 13 13 15 14 15"); if ((-isnumber "$1") && ("$1" > 0) && ("$1" <= 5)) { $font = getToken($temp,"$1") . "-PLAIN-" . iff(-isnumber $2,"$2",getToken($size,"$1")); setProperty("ui.font","$font"); setProperty("so.font","$1-"); return; } echo("$nnn \c07usage\c14:\c16 /\c14sfont\c15 <1-5> [size (optional)]") for ($x = 1; $x <= 5; $x = $x + 1) { $font = getToken($temp,"$x"); echo("$nnn $x $+ \. $[24]font \c14[\c15 default size\c14:\c15 " . getToken($size,"$x") . " \c14]"); } } call("SO_LOAD"); alias SV { say("jIRCii!" . versionString() . " [ \bs\btati\uc\b!\bo\urang\be\b.\b3\ba (\bd\bfault) ]"); } set TIMESTAMP { return; } on UNLOAD { setProperty("ui.font","Courier New-PLAIN-13"); } set USER_MODE { return "$nnn \c07mode\c14: [\c16 $target \c14(\c15 $+ $parms $+ \c16/\c15 $+ $target $+ \c14) ]"; } set USER_NICK { return "$nnn \c07nick\c14: [\c16 $nick \c14(\c15changes to $1 $+ \c14) ]"; } set USER_QUIT { return "$nnn \c07quit\c14: [\c16 $nick \c14(\c15 $+ $address $+ \c14) ]\c16:\c15 $parms"; }