| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670367136723673367436753676367736783679368036813682368336843685368636873688368936903691369236933694369536963697369836993700370137023703370437053706370737083709371037113712371337143715371637173718371937203721372237233724372537263727372837293730373137323733373437353736373737383739374037413742374337443745374637473748374937503751375237533754375537563757375837593760376137623763376437653766376737683769377037713772377337743775377637773778377937803781378237833784378537863787378837893790379137923793379437953796379737983799380038013802380338043805380638073808380938103811381238133814381538163817381838193820382138223823382438253826382738283829383038313832383338343835383638373838383938403841384238433844384538463847384838493850385138523853385438553856385738583859386038613862386338643865386638673868386938703871387238733874387538763877387838793880388138823883388438853886388738883889389038913892389338943895389638973898389939003901390239033904390539063907390839093910391139123913391439153916391739183919392039213922392339243925392639273928392939303931393239333934393539363937393839393940394139423943394439453946394739483949395039513952395339543955395639573958395939603961396239633964396539663967396839693970397139723973397439753976397739783979398039813982398339843985398639873988398939903991399239933994399539963997399839994000400140024003400440054006400740084009401040114012401340144015401640174018401940204021402240234024402540264027402840294030403140324033403440354036403740384039404040414042404340444045404640474048404940504051405240534054405540564057405840594060406140624063406440654066406740684069407040714072407340744075407640774078407940804081408240834084408540864087408840894090409140924093409440954096409740984099410041014102410341044105410641074108410941104111411241134114411541164117411841194120412141224123412441254126412741284129413041314132413341344135413641374138413941404141414241434144414541464147414841494150415141524153415441554156415741584159416041614162416341644165416641674168416941704171417241734174417541764177417841794180418141824183418441854186418741884189419041914192419341944195419641974198419942004201420242034204420542064207420842094210421142124213421442154216421742184219422042214222422342244225422642274228422942304231423242334234423542364237423842394240424142424243424442454246424742484249425042514252425342544255425642574258425942604261426242634264426542664267426842694270427142724273427442754276427742784279428042814282428342844285428642874288428942904291429242934294429542964297429842994300430143024303430443054306430743084309431043114312431343144315431643174318431943204321432243234324432543264327432843294330433143324333433443354336433743384339434043414342434343444345434643474348434943504351435243534354435543564357435843594360436143624363436443654366436743684369437043714372437343744375437643774378437943804381438243834384438543864387438843894390439143924393439443954396439743984399440044014402440344044405440644074408440944104411441244134414 |
- <!DOCTYPE html>
- <html>
- <head>
- <meta http-equiv='content-type' content='text/html; charset=utf-8'>
- <meta name='viewport' content='width=device-width, initial-scale=1.0'>
- <style type='text/css'>
- body {font-family:Consolas;font-size:12pt}
- a {text-decoration:none}
- a:link {color:#06b}
- a:visited {color:#6b0}
- a:hover {text-decoration:underline}
- a:active {color:#b06}
- </style>
- <body bgcolor='#000000'>
- </head>
- <pre>
- <span style='background-color:#000'><span style='color:#FFF'>
- <a href='#ACTION'> ACTION</a> <a href='#ALIAS'> ALIAS</a> <a href='#ALL'> ALL</a> <a href='#BELL'> BELL</a> <a href='#BREAK'> BREAK</a>
- <a href='#BUFFER'> BUFFER</a> <a href='#BUTTON'> BUTTON</a> <a href='#CASE'> CASE</a> <a href='#CAT'> CAT</a> <a href='#CHARACTERS'> CHARACTERS</a>
- <a href='#CHAT'> CHAT</a> <a href='#CLASS'> CLASS</a> <a href='#COLORS'> COLORS</a> <a href='#COMMANDS'> COMMANDS</a> <a href='#COORDINATES'> COORDINATES</a>
- <a href='#CONFIG'> CONFIG</a> <a href='#CONTINUE'> CONTINUE</a> <a href='#CR'> CR</a> <a href='#CURSOR'> CURSOR</a> <a href='#DAEMON'> DAEMON</a>
- <a href='#DEBUG'> DEBUG</a> <a href='#DEFAULT'> DEFAULT</a> <a href='#DELAY'> DELAY</a> <a href='#DRAW'> DRAW</a> <a href='#ECHO'> ECHO</a>
- <a href='#EDIT'> EDIT</a> <a href='#EDITING'> EDITING</a> <a href='#ELSE'> ELSE</a> <a href='#ELSEIF'> ELSEIF</a> <a href='#END'> END</a>
- <a href='#ESCAPE CODES'> ESCAPE CODES</a> <a href='#EVENT'> EVENT</a> <a href='#FOREACH'> FOREACH</a> <a href='#FORMAT'> FORMAT</a> <a href='#FUNCTION'> FUNCTION</a>
- <a href='#GAG'> GAG</a> <a href='#GREETING'> GREETING</a> <a href='#GREP'> GREP</a> <a href='#HELP'> HELP</a> <a href='#HIGHLIGHT'> HIGHLIGHT</a>
- <a href='#HISTORY'> HISTORY</a> <a href='#IF'> IF</a> <a href='#IGNORE'> IGNORE</a> <a href='#INDEX'> INDEX</a> <a href='#INFO'> INFO</a>
- <a href='#KEYPAD'> KEYPAD</a> <a href='#KILL'> KILL</a> <a href='#LINE'> LINE</a> <a href='#LIST'> LIST</a> <a href='#LISTS'> LISTS</a>
- <a href='#LOCAL'> LOCAL</a> <a href='#LOG'> LOG</a> <a href='#LOOP'> LOOP</a> <a href='#MACRO'> MACRO</a> <a href='#MAP'> MAP</a>
- <a href='#MAPPING'> MAPPING</a> <a href='#MATH'> MATH</a> <a href='#MATHEMATICS'> MATHEMATICS</a> <a href='#MESSAGE'> MESSAGE</a> <a href='#METRIC SYSTEM'> METRIC SYSTEM</a>
- <a href='#MOUSE'> MOUSE</a> <a href='#MSDP'> MSDP</a> <a href='#MSLP'> MSLP</a> <a href='#NOP'> NOP</a> <a href='#PARSE'> PARSE</a>
- <a href='#PATH'> PATH</a> <a href='#PATHDIR'> PATHDIR</a> <a href='#PCRE'> PCRE</a> <a href='#PORT'> PORT</a> <a href='#PROMPT'> PROMPT</a>
- <a href='#READ'> READ</a> <a href='#REGEXP'> REGEXP</a> <a href='#REPEAT'> REPEAT</a> <a href='#REPLACE'> REPLACE</a> <a href='#RETURN'> RETURN</a>
- <a href='#RUN'> RUN</a> <a href='#SCAN'> SCAN</a> <a href='#SCREEN'> SCREEN</a> <a href='#SCREEN READER'> SCREEN READER</a> <a href='#SCRIPT'> SCRIPT</a>
- <a href='#SEND'> SEND</a> <a href='#SESSION'> SESSION</a> <a href='#SESSIONNAME'> SESSIONNAME</a> <a href='#SHOWME'> SHOWME</a> <a href='#SNOOP'> SNOOP</a>
- <a href='#SPEEDWALK'> SPEEDWALK</a> <a href='#SPLIT'> SPLIT</a> <a href='#SSL'> SSL</a> <a href='#STATEMENTS'> STATEMENTS</a> <a href='#SUBSTITUTE'> SUBSTITUTE</a>
- <a href='#SUBSTITUTIONS'> SUBSTITUTIONS</a> <a href='#SUSPEND'> SUSPEND</a> <a href='#SWITCH'> SWITCH</a> <a href='#SYSTEM'> SYSTEM</a> <a href='#TAB'> TAB</a>
- <a href='#TEXTIN'> TEXTIN</a> <a href='#TICKER'> TICKER</a> <a href='#TIME'> TIME</a> <a href='#VARIABLE'> VARIABLE</a> <a href='#WHILE'> WHILE</a>
- <a href='#WRITE'> WRITE</a> <a href='#ZAP'> ZAP</a>
- <a name='ACTION'></a>
- </span><span style='color:#5F5'> ACTION
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>message</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The #action command can be used to respond with one or several
- commands to a specific message send by the server. The %1-%99
- variables are substituted from the message and can be used in the
- command part of the action.
- If the message starts with a ~ color codes must be matched. You can
- enable #config {convert meta} on to display meta characters.
- For more information on pattern matching see the section on PCRE.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {%1 tells you '%2'} {tell %1 I'm afk.}
- Actions can be triggered by the #show command. If you don't want a
- #show to get triggered use: #line ignore #show {text}
- Actions are ordered alphabetically and only one action can trigger at
- a time. To change the order you can assign a priority, which defaults
- to 5, with a lower number indicating a higher priority. The priority
- can be a floating point number and should be between 1 and 9.
- To remove an action with %* as the message, use #unaction {%%*} or
- #unaction {\%*}. Alternatively you could wrap the action inside a
- class, and kill that class when you no longer need the action.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove an action with the #unaction command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#PCRE'>pcre</a>, <a href='#GAG'>gag</a>, <a href='#HIGHLIGHT'>highlight</a>, <a href='#PROMPT'>prompt</a> and <a href='#SUBSTITUTE'>substitute</a>.
- <a name='ALIAS'></a>
- </span><span style='color:#5F5'> ALIAS
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #alias </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The #alias command can be used to shorten up long or oftenly used
- commands. The %1-99 variables are substituted from the arguments when
- using an alias and represent the 1st till 99th word which can be used
- in the commands part of the alias. If %0 is used it will contain all
- arguments. The priority part is optional and determines the priority
- of the alias, it defaults to 5.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {k} {kill %1;kick}
- Typing 'k orc' would result in attacking the orc followed by a kick.
- You can create multi-word aliases by using variables in the name
- section.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {k %1 with %2} {draw %2;attack %1;slash %1 with %2;
- kick at %2;strike %1 with %2}
- Using the above alias you could type k blue smurf with battle axe
- To have an alias that matches all user input, use %* as the name.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {%*} {#show You wrote: %0}
- Aliases are ordered alphabetically and only one alias can trigger at
- a time. To change the order you can assign a priority, which defaults
- to 5, with a lower number indicating a higher priority. The priority
- can be a floating point number.
- To remove an alias with %* as the name, use #unalias {%%*} or #unalias
- {\%*}. Alternatively you can wrap the alias inside a class, and kill
- that class when you no longer need the alias.
- For more information on pattern matching see the section on PCRE.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove an alias with the #unalias command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CURSOR'>cursor</a>, <a href='#HISTORY'>history</a>, <a href='#KEYPAD'>keypad</a>, <a href='#MACRO'>macro</a>, <a href='#SPEEDWALK'>speedwalk</a> and <a href='#TAB'>tab</a>.
- <a name='ALL'></a>
- </span><span style='color:#5F5'> ALL
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #all </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- If you have multiple sessions in one terminal you can use #all to
- execute the command with all sessions, excluding the startup session.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #all quit
- Sends 'quit' to all sessions.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
- <a name='BELL'></a>
- </span><span style='color:#5F5'> BELL
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #bell </span><span style='color:#FFF'>{</span><span style='color:#AAA'>flash</span><span style='color:#FFF'>|</span><span style='color:#AAA'>focus</span><span style='color:#FFF'>|</span><span style='color:#AAA'>margin</span><span style='color:#FFF'>|</span><span style='color:#AAA'>ring</span><span style='color:#FFF'>|</span><span style='color:#AAA'>volume</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The #bell command without an argument will ring the terminal bell.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {Bubba tells you} {#bell}
- If you aren't watching the screen this could be useful if you don't
- want to miss out on a conversation with Bubba. Alternatively you can
- use #system to play a sound file.
- Some terminals will allow you to use VT100 Operating System Commands
- to change the terminal's bell behavior which can be used to flash the
- taskbar icon and or focus the window on receival of a bell.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {Bubba tells you} {#screen save title;#screen set title Tell!;
- #bell ring;#delay 10 #screen load title}
- The above example will save your window title, change the title to
- 'Tell!', ring the bell, next reset the window title after 10 seconds.
- It's possible to set the terminal to pop to the foreground upon
- ringing of the alarm bell.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #bell focus on;#bell ring;#bell focus off
- It's possible to adjust the alarm bell volume on some terminals.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #loop {1} {8} {cnt} {#line substitute variables
- #delay {$cnt} {#show Volume $cnt: #bell volume $cnt;#bell}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#SCREEN'>screen</a>
- <a name='BREAK'></a>
- </span><span style='color:#5F5'> BREAK
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #break
- The break command can be used inside the #else, #elseif, #if, #foreach,
- #loop, #parse, #switch, and #while statements. When #break is found,
- tintin will stop executing the statement it is currently in and move on
- to the next.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #while {1} {#math cnt $cnt + 1;#if {$cnt == 20} {#break}}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#STATEMENTS'>statements</a>
- <a name='BUFFER'></a>
- </span><span style='color:#5F5'> BUFFER
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #buffer </span><span style='color:#FFF'>{</span><span style='color:#AAA'>home</span><span style='color:#FFF'>|</span><span style='color:#AAA'>up</span><span style='color:#FFF'>|</span><span style='color:#AAA'>down</span><span style='color:#FFF'>|</span><span style='color:#AAA'>end</span><span style='color:#FFF'>|</span><span style='color:#AAA'>lock</span><span style='color:#FFF'>|</span><span style='color:#AAA'>find</span><span style='color:#FFF'>|</span><span style='color:#AAA'>get</span><span style='color:#FFF'>|</span><span style='color:#AAA'>clear</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The buffer command has various options to manipulate your scrollback
- buffer.
- The size of the scrollback buffer can be configured using #config
- buffer_size <size>. The size must be either 100, 1000, 10000, 100000
- or 1000000 lines.
- While scrolling through the scrollback buffer incoming text is not
- displayed, this can be disabled using #config scroll_lock off. The
- scroll lock is automatically disabled when manual input is received,
- subsequently #buffer up and down only work properly when used in a
- macro or mouse event.
- </span><span style='color:#FFF'>#buffer {clear} {[lower bound]} {[upper bound]}
- </span><span style='color:#AAA'>
- Without an argument this will clear the entire scrollback buffer.
- Otherwise it will clear the given range.
- Positive numbers are measured from the start of the scrollback buffer,
- negative numbers from the end.
- </span><span style='color:#FFF'>#buffer {down} [lines]
- </span><span style='color:#AAA'>
- Moves your scrollback buffer down one page and displays the page. If
- a line number is provided it will scroll down the given number of
- lines.
- </span><span style='color:#FFF'>#buffer {end}
- </span><span style='color:#AAA'>
- Moves you to the end of your scrollback buffer and displays the page.
- Disables scroll lock mode. Most useful when used in a #macro.
- </span><span style='color:#FFF'>#buffer {find} {[number]} {<string>} {[variable]}
- </span><span style='color:#AAA'>
- Moves the buffer to the given string which can contain a regular
- expression. Optionally you can provide the number of matches to skip,
- allowing you to jump further back in the buffer.
- A positive number searches from the start of the buffer, a negative
- number from the end. If you provide a variable the location will be
- stored and no jump takes place.
- </span><span style='color:#FFF'>#buffer {get} {<variable>} {<lower bound>} {[upper bound]}
- </span><span style='color:#AAA'>
- Allows you to store one or several lines from your scrollback buffer
- (including color codes) into a variable. The lower and upper bound
- must be between 1 and the size of the buffer. If the upper bound is
- omitted the given line is stored as a standard variable. If an upper
- bound is given the lines between the two bounds are stored as a list.
- Positive numbers are measured from the start of the scrollback buffer,
- negative numbers from the end.
- </span><span style='color:#FFF'>#buffer {home}
- </span><span style='color:#AAA'>
- Moves you to the top of your scrollback buffer and displays the page.
- Enables scroll lock mode. Most useful when used in a #macro.
- </span><span style='color:#FFF'>#buffer {info} {[save]} {[variable]}
- </span><span style='color:#AAA'>
- Display buffer info, optionally save the data to a variable.
- </span><span style='color:#FFF'>#buffer {jump} {<location>}
- </span><span style='color:#AAA'>
- Moves the buffer to the given location. A positive number jumps from
- the start of the buffer, a negative number from the end.
- </span><span style='color:#FFF'>#buffer {lock} {on|off}
- </span><span style='color:#AAA'>
- Toggles the lock on the scrollback buffer. When locked, newly incoming
- text won't be displayed, any command will disable the lock, though
- several buffer commands will re-enable the lock. When unlocking it'll
- move you to the end of your scrollback buffer and display the page.
- </span><span style='color:#FFF'>#buffer {refresh}
- </span><span style='color:#AAA'>
- Marks the buffer as needing to be refreshed, only useful while in
- vertical split mode.
- </span><span style='color:#FFF'>#buffer {up} [lines]
- </span><span style='color:#AAA'>
- Moves your scrollback buffer up one page and displays the page.
- Enables scroll lock mode. Most useful when used in a #macro. You
- can use #buffer {up} {1} to move the scrollback buffer up 1 line.
- </span><span style='color:#FFF'>#buffer {write} {<filename>}
- </span><span style='color:#AAA'>
- Writes the scrollback buffer to the given file.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #macro {\e[F} {#buffer end}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ECHO'>echo</a>, <a href='#GREP'>grep</a>, <a href='#MACRO'>macro</a>, <a href='#SHOWME'>showme</a> and <a href='#SCREEN'>screen</a>.
- <a name='BUTTON'></a>
- </span><span style='color:#5F5'> BUTTON
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #button </span><span style='color:#FFF'>{</span><span style='color:#AAA'>square</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The #button command can be used to respond with one or several
- commands to a mouse click received within the specified square.
- The click coordinates are stored in %0-%3 and can be used in the
- command part of the button.
- The square part should exists of two coordinates defining the
- upper left and bottom right corner using row, col, row, col syntax.
- The square arguments should be separated by spaces, semi-colons or
- braces.
- By default the button is set to respond to a mouse button press, to
- respond to other button presses you must add a 5th argument to the
- square that defines the button press type. You can enable #info
- button on to see button events and their type as they happen.
- The priority part is optional and determines the priority of the
- button, it defaults to 5.
- You must enable #config {mouse tracking} on for buttons to work.
- This command draws no visible button, you'll have to do so separately
- if needed.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #button {1;1;2;2} {#show You clicked the upper left corner.}
- Buttons are ordered alphabetically and only one button can trigger at
- a time. To change the order you can assign a priority, which defaults
- to 5, with a lower number indicating a higher priority. The priority
- can be a floating point number.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: To see button clicks trigger use #info button on.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a button with the #unbutton command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#DELAY'>delay</a>, <a href='#EVENT'>event</a> and <a href='#TICKER'>ticker</a>.
- <a name='CASE'></a>
- </span><span style='color:#5F5'> CASE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #case </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>arguments</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The case command must be used within the #switch command. When the
- conditional argument of the case command matches the conditional
- argument of the switch command the body of the case is executed.
- When comparing strings both the switch and case arguments must be
- surrounded in quotes.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>:
- #function {reverse_direction}
- {
- #switch {"%1"}
- {
- #case {"north"} {#return south};
- #case {"east"} {#return west};
- #case {"south"} {#return north};
- #case {"west"} {#return east};
- #case {"up"} {#return down};
- #case {"down"} {#return up}
- }
- }
- This function returns the reverse direction. @reverse_direction{north}
- would return south.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#DEFAULT'>default</a>, <a href='#STATEMENTS'>statements</a> and <a href='#SWITCH'>switch</a>.
- <a name='CAT'></a>
- </span><span style='color:#5F5'> CAT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #cat </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The cat command will concatinate the argument to the given variable.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
- <a name='CHARACTERS'></a>
- </span><span style='color:#5F5'> CHARACTERS
- </span><span style='color:#AAA'>
- The following special characters are defined:
- # The hashtag is the default character for starting a command and is
- subsequently known as the command character or tintin character.
- When loading a command file the command character is set to the
- first character in the file. The character can also be redefined
- using #config.
- ; The semi-colon is used as the command separator and can be used to
- separate two commands. Multiple commands can be strung together as
- well. Trailing semi-colons are ignored when reading a script file
- as this is a common error.
- { } Curly brackets aka braces are used for separating multi word command
- arguments, nesting commands, and nesting variables. Braces cannot
- easily be escaped and must always be used in pairs.
- " " Quote characters are used for strings in the #math, #if, #switch,
- and #case commands. It is however suggested to use a set of braces
- { } to define strings instead, particularly when checking strings
- that may contain quotes.
- ! The exclamation sign is used to repeat commands, see #help history.
- The character can be redefined using #config.
- \ An input line starting with a backslash is send verbatim if you are
- connected to a server. This character can be configured with
- #config, and is itself send verbatim when the verbatim config mode
- is enabled.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#COLORS'>colors</a>, <a href='#ESCAPE'>escape</a>, <a href='#FUNCTION'>function</a>, <a href='#MATHEMATICS'>mathematics</a>, <a href='#PCRE'>pcre</a> and <a href='#VARIABLE'>variable</a>.
- <a name='CHAT'></a>
- </span><span style='color:#5F5'> CHAT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #chat </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
- </span><span style='color:#AAA'>
- The #chat command is used to create peer to peer connections to other
- clients, typically for the purpose of chatting and sending files.
- This is a decentralized chat system, meaning you have to exchange ip
- addresses and port numbers with other users in order to connect to
- them.
- </span><span style='color:#FFF'>#chat {init} {port}
- </span><span style='color:#AAA'> #chat initialize launches your chat server. The port number is
- optional, and by default 4050 is used as your port. After using
- this command other people can connect to your chat server using
- your ip address and port number, and in turn you can connect to
- other people.
- </span><span style='color:#FFF'>#chat {name} {name}
- </span><span style='color:#AAA'> By default your name is set to TinTin, but most servers will
- reject you if there is already someone with the name TinTin
- connected, so one of the first things you'd want to do is
- change your chat name. Your name can include color codes. Some
- names aren't accepted by tt++ chat servers, like the name 'all'
- and names longer than 20 characters.
- </span><span style='color:#FFF'>#chat {message} {buddy|all} {text}
- </span><span style='color:#AAA'> This is the main command used for communication. If you use
- #chat message all, the message is marked as public and send to
- everyone you are connected to.
- </span><span style='color:#FFF'>#chat {accept} {buddy} {boost}
- </span><span style='color:#AAA'> Accept a file transfer from a buddy. The boost is optional and
- must be a value between 1 and 1000.
- </span><span style='color:#FFF'>#chat {call} {address} {port}
- </span><span style='color:#AAA'> #chat call is used to connect to another chat server. If you
- omit the port argument the default port (4050) is used.
- </span><span style='color:#FFF'>#chat {cancel} {buddy} Cancel a file transfer
- #chat {color} {color names} Set the default color
- #chat {decline} {buddy} Decline a file transfer
- #chat {dnd} Decline new connections
- #chat {download} {directory} Set your download directory
- #chat {emote} {buddy|all} {text} Send an emote message
- #chat {forward} {buddy} Forward all chat messages
- #chat {forwardall} {buddy} Forward all session output
- #chat {filestat} {buddy} Show file transfer data
- #chat {group} {buddy} {name} Assign a chat group
- #chat {ignore} {buddy} Ignores someone
- #chat {info} Displays your info
- #chat {ip} {address} Changes your IP address
- #chat {paste} {buddy|all} {text} Pastes a block of text
- #chat {peek} {buddy} Show one's public connections
- #chat {ping} {buddy} Display response time
- #chat {private} {buddy|all} Make a connection private
- #chat {public} {buddy|all} Make a connection public
- #chat {reply} {text} Reply to last private message
- #chat {request} {buddy} Request one's public connections
- #chat {send} {buddy|all} {text} Sends a raw data string
- #chat {sendfile} {buddy} {filename} Start a file transfer
- #chat {serve} {buddy} Forward all public chat messages
- #chat {uninitialize} Uninitialize the chat port.
- #chat {who} Show all connections
- </span><span style='color:#AAA'> #chat who shows all people you are connected to. The first
- column shows a reference number for the connection, which can be
- used instead of the connection's name when sending someone a message
- The second column shows the connection's name. The third column
- shows flags set for the connection, (P)rivate, (I)gnore, (S)erve,
- (F)orward to user, and (f)orward from user. The next columns show
- ip, port, and client name.
- </span><span style='color:#FFF'>#chat {zap} {buddy} Close a connection
- Related</span><span style='color:#AAA'>: <a href='#PORT'>port</a>
- <a name='CLASS'></a>
- </span><span style='color:#5F5'> CLASS
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #class </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>optionkill</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>arg</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>#class {<name>} {assign} {<argument>}
- </span><span style='color:#AAA'> Will execute argument with the given class opened.
- </span><span style='color:#FFF'>#class {<name>} {clear}
- </span><span style='color:#AAA'> Will delete all triggers associated with the given class.
- </span><span style='color:#FFF'>#class {<name>} {close}
- </span><span style='color:#AAA'> Close the given class, opening the last open class, if any.
- </span><span style='color:#FFF'>#class {<name>} {kill}
- </span><span style='color:#AAA'> Will clear, close, and remove the class.
- </span><span style='color:#FFF'>#class {<name>} {list}
- </span><span style='color:#AAA'> List all triggers associated with the given class.
- </span><span style='color:#FFF'>#class {<name>} {load}
- </span><span style='color:#AAA'> Will load the saved copy of the class from memory.
- </span><span style='color:#FFF'>#class {<name>} {open}
- </span><span style='color:#AAA'> Open a class, closing a previously opened class. All triggers
- added afterwards are assigned to this class.
- </span><span style='color:#FFF'>#class {<name>} {read} {<filename>
- </span><span style='color:#AAA'> Will open the class, read the file, and close afterwards.
- </span><span style='color:#FFF'>#class {<name>} {save}
- </span><span style='color:#AAA'> Will save all triggers of the given class to memory.
- </span><span style='color:#FFF'>#class {<name>} {size} {<variable>}
- </span><span style='color:#AAA'> Will store the size of the class in a variable.
- </span><span style='color:#FFF'>#class {<name>} {write} {<filename>}
- </span><span style='color:#AAA'> Will write all triggers of the given class to file.
- Keep in mind that the kill and read option are very fast allowing
- them to be used to enable and disable classes.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #class extra kill;#class extra read extra.tin
- Deletes all triggers of 'extra' class if any. Read 'extra.tin' file,
- all triggers loaded will be assigned to the fresh new 'extra' class.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CONFIG'>config</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a>, <a href='#KILL'>kill</a>, <a href='#LINE'>line</a> and <a href='#MESSAGE'>message</a>.
- <a name='COLORS'></a>
- </span><span style='color:#5F5'> COLORS
- </span><span style='color:#FFF'>Syntax</span><span style='color:#AAA'>: <xyz> with x, y, z being parameters
- Parameter 'x': VT100 code
- 0 - Reset all colors and codes to default
- 1 - Bold
- 2 - Dim
- 3 - Italic
- 4 - Underscore
- 5 - Blink
- 7 - Reverse
- 8 - Skip (use previous code)
- Parameter 'y': Foreground color
- Parameter 'z': Background color
- 0 - Black 5 - Magenta
- 1 - Red 6 - Cyan
- 2 - Green 7 - White
- 3 - Yellow 8 - Skip
- 4 - Blue 9 - Default
- For xterm 256 colors support use <aaa> to <fff> for RGB foreground
- colors and <AAA> to <FFF> for RGB background colors. For the grayscale
- foreground colors use <g00> to <g23>, for grayscale background colors
- use <G00> to <G23>.
- The tertiary colors are as follows:
- <acf> - Azure <afc> - Jade
- <caf> - Violet <cfa> - Lime
- <fac> - Pink <fca> - Orange
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show <acf>Azure <afc>Jade <caf>Violet
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show <cfa>Lime <fac>Pink <fca>Orange
- For 12 bit truecolor use <F000> to <FFFF> for foreground colors and
- <B000> to <BFFF> for background colors.
- For 24 bit truecolor use <F000000> to <FFFFFFF> for foreground
- colors and <B000000> to <BFFFFFF> for background colors.
- If the color code exceeds your configured color mode it will be
- downgraded to the closest match.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COORDINATES'>coordinates</a>, <a href='#ESCAPE'>escape</a>, <a href='#MATHEMATICS'>mathematics</a> and <a href='#PCRE'>pcre</a>.
- <a name='COMMANDS'></a>
- </span><span style='color:#5F5'> COMMANDS
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #commands </span><span style='color:#FFF'>{</span><span style='color:#AAA'>regex</span><span style='color:#FFF'>}
- </span><span style='color:#AAA'>
- Shows all commands or all commands matching the given search
- string.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#HELP'>help</a>, <a href='#INFO'>info</a> and <a href='#STATEMENTS'>statements</a>.
- <a name='COORDINATES'></a>
- </span><span style='color:#5F5'> COORDINATES
- </span><span style='color:#AAA'>
- When the 0,0 coordinate is in the upper left corner TinTin++ uses
- a y,x / row,col notation, starting at 1,1. Subsequently -1,-1
- will indicate the bottom right corner. This type of argument is
- used by the #showme command.
- When the 0,0 coordinate is in the bottom left corner tintin uses
- a standard x,y notation. This type of argument is used by the
- #map jump command.
- The vast majority of tintin commands use y,x / row,col notation,
- primarily because that is the notation used by the VT100 standard
- used for terminal emulation.
- </span><span style='color:#5F5'>Squares
- </span><span style='color:#AAA'>
- A square argument takes 2 coordinates. The first coordinate defines
- the upper left corner, the last coordinate defines the bottom
- right corner. The upper left corner of the terminal is defined as
- 1,1 and the bottom right corner as -1,-1. This type of argument is
- used by #draw, #button and #map offset.
- </span><span style='color:#5F5'>Panes
- </span><span style='color:#AAA'>
- A pane argument takes 4 size values, which are: top pane, bottom
- pane, left pane, right pane. When a negative value is provided the
- size is the maximum size, minus the value. This type of argument
- is used by the #split command.
- </span><span style='color:#5F5'>Ranges
- </span><span style='color:#AAA'>
- A range argument takes 2 values known as the upper bound and lower
- bound. The upper bound (first value) defines the start of the
- range, the lower bound (second value) the end. The first index of
- a range is defined as 1. When a negative value is provides the last
- index is defined as -1. This type of argument is used by #buffer
- and #variable.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COLORS'>colors</a>, <a href='#ESCAPE'>escape</a>, <a href='#MATHEMATICS'>mathematics</a> and <a href='#PCRE'>pcre</a>.
- <a name='CONFIG'></a>
- </span><span style='color:#5F5'> CONFIG
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #config </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- This allows you to configure various settings, the settings can be
- written to file with the #write command.
- If you configure the global session (the one you see as you start up
- tintin) all sessions started will inherite these settings.
- It's advised to make a configuration file to read on startup if you
- do not like the default settings.
- Use #config without an argument to see your current configuration as
- well as a brief explanation of each config option.
- The following config options are not listed by default:
- #CONFIG {CHILD LOCK} {ON|OFF} Enable or disable command input.
- #CONFIG {CONVERT META} {ON|OFF} Shows color codes and key bindings.
- #CONFIG {DEBUG TELNET} {ON|OFF} Shows telnet negotiations y/n.
- #CONFIG {LOG LEVEL} {LOW|HIGH} LOW logs server output before triggers.
- #CONFIG {INHERITANCE} {ON|OFF} Session trigger inheritance y/n.
- #CONFIG {MCCP} {ON|OFF} Enable or disable MCCP support.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a> and <a href='#LINE'>line</a>.
- <a name='CONTINUE'></a>
- </span><span style='color:#5F5'> CONTINUE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #continue
- The continue command can be used inside the #FOREACH, #LOOP, #PARSE,
- #WHILE and #SWITCH commands. When #CONTINUE is found, tintin will go
- to the end of the command and proceed as normal, which may be to
- reiterate the command.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #loop 1 10 cnt {#if {$cnt % 2 == 0} {#continue} {say $cnt}}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#FOREACH'>foreach</a>, <a href='#LIST'>list</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
- <a name='CR'></a>
- </span><span style='color:#5F5'> CR
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #cr
- Sends a carriage return to the session. Useful for aliases that need
- extra carriage returns.
- This command is obsolete as you can accomplish the same using #send
- without an argument or #send {}.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORALL'>forall</a>
- <a name='CURSOR'></a>
- </span><span style='color:#5F5'> CURSOR
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #cursor </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Typing #cursor without an option will show all available cursor
- options, their default binding, and an explanation of their function.
- The cursor command's primarly goal is adding customizable input editing
- with macros. Subsequently many cursor commands only work properly when
- used within a macro or event.
- </span><span style='color:#FFF'>#cursor flag
- </span><span style='color:#AAA'>EOL end of line character(s)
- ECHO local echo
- OVERTYPE overtype mode
- </span><span style='color:#FFF'>#cursor macro
- </span><span style='color:#AAA'>PRESERVE do not erase the macro from the macro input buffer
- RESET erase the macro input buffer
- </span><span style='color:#FFF'>#cursor tab
- </span><span style='color:#AAA'>CASELESS makes tab completion caseless
- COMPLETE makes tab completion work while editing
- DICTIONARY performs tab completion on the dictionary
- LIST performs tab completion on the tab completion list
- SCROLLBACK performs tab completion on the scrollback buffer
- BACKWARD specifies tab completion to go backward
- FORWARD specifies tab completion to go forward
- Multiple options can/must be specified at once.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALIAS'>alias</a>, <a href='#HISTORY'>history</a>, <a href='#KEYPAD'>keypad</a>, <a href='#MACRO'>macro</a>, <a href='#SPEEDWALK'>speedwalk</a> and <a href='#TAB'>tab</a>.
- <a name='DAEMON'></a>
- </span><span style='color:#5F5'> DAEMON
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #daemon </span><span style='color:#FFF'>{</span><span style='color:#AAA'>attach</span><span style='color:#FFF'>|</span><span style='color:#AAA'>detach</span><span style='color:#FFF'>|</span><span style='color:#AAA'>kill</span><span style='color:#FFF'>|</span><span style='color:#AAA'>list</span><span style='color:#FFF'>} [</span><span style='color:#AAA'>name</span><span style='color:#FFF'>]
- </span><span style='color:#AAA'>#daemon provides functionality similar to that of the screen and tmux
- utilities.
- </span><span style='color:#FFF'>#daemon attach [name]
- </span><span style='color:#AAA'> The attach option will try to find a daemonized tintin instance and
- take over control. The name argument is optional.
- </span><span style='color:#FFF'>#daemon detach [name]
- </span><span style='color:#AAA'> The detach option will daemonize tintin, turning it into a background
- process. The name argument is optional and is useful if you have
- several daemonized tt++ instances running so you can keep them apart.
- </span><span style='color:#FFF'>#daemon kill [name]
- </span><span style='color:#AAA'> Kills all daemons or daemons with matching name.
- </span><span style='color:#FFF'>#daemon list [name]
- </span><span style='color:#AAA'> List all daemons or daemons with matching name.
- You can launch tintin and attach the first daemonized instance using
- tt++ -R. To attach a named instance use tt++ -R<name>.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#SCRIPT'>script</a>, <a href='#SYSTEM'>system</a> and <a href='#RUN'>run</a>.
- <a name='DEBUG'></a>
- </span><span style='color:#5F5'> DEBUG
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #debug </span><span style='color:#FFF'>{</span><span style='color:#AAA'>listname</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>on</span><span style='color:#FFF'>|</span><span style='color:#AAA'>off</span><span style='color:#FFF'>|</span><span style='color:#AAA'>log</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Toggles a list on or off. With no argument it shows your current
- settings, as well as the list names that you can debug.
- If you for example set ACTIONS to ON you will get debug information
- whenever an action is triggered.
- #debug {listname} {log} will silently write debugging information to
- the log file, you must be logging in order for this to work.
- Not every list has debug support yet.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a>, <a href='#KILL'>kill</a> and <a href='#MESSAGE'>message</a>.
- <a name='DEFAULT'></a>
- </span><span style='color:#5F5'> DEFAULT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #default </span><span style='color:#FFF'>{</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The default command can only be used within the switch command. When
- the conditional argument of non of the case commands matches the switch
- command's conditional statement the default command is executed.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CASE'>case</a>, <a href='#DEFAULT'>default</a>, <a href='#ELSE'>else</a>, <a href='#ELSEIF'>elseif</a>, <a href='#IF'>if</a>, <a href='#SWITCH'>switch</a> and <a href='#REGEXP'>regexp</a>.
- <a name='DELAY'></a>
- </span><span style='color:#5F5'> DELAY
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #delay </span><span style='color:#FFF'>{</span><span style='color:#AAA'>seconds</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>command</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #delay </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>command</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>seconds</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Delay allows you to have tintin wait the given amount of seconds
- before executing the given command.
- Nanosecond floating point precision is allowed. Delays will fire in
- 0.01 second intervals.
- Named delays are treated as one-shot tickers, see #help tick.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #delay {1} {#show last};#show first
- This will print 'first', and 'last' around one second later.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: If you want to remove a delay with the #undelay command you can add
- a name as the first argument, be aware this changes the syntax. If
- the name is a number keep in mind that delays with the same numeric
- name will not be overwritten
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#EVENT'>event</a> and <a href='#TICKER'>ticker</a>.
- <a name='DRAW'></a>
- </span><span style='color:#5F5'> DRAW
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #draw </span><span style='color:#FFF'>[</span><span style='color:#AAA'>line color</span><span style='color:#FFF'>] [</span><span style='color:#AAA'>options</span><span style='color:#FFF'>] <</span><span style='color:#AAA'>type</span><span style='color:#FFF'>> <</span><span style='color:#AAA'>square</span><span style='color:#FFF'>> {</span><span style='color:#AAA'>text</span><span style='color:#FFF'>}
- </span><span style='color:#AAA'>
- The draw commands allows you to draw various types of lines and shapes
- on the screen. The types with a brief description are provided when you
- type #draw without an argument.
- The <square> arguments should exists of two coordinates defining the
- upper left and bottom right corner using row, col, row, col syntax.
- The square arguments can be negative, in which case the coordinates
- are calculated from the opposite side of the screen. In the case the
- screen is 80 columns wide using #draw box 1 60 10 70 will be the
- equivalent of #draw box 1 -21 10 -11, but with different screen
- widths the boxes would be drawn in different places.
- You can prefix the option with a color code or color name to color the
- lines and shapes.
- You can further prefix the option as following:
- ASCII will draw in ASCII mode.
- BALIGN will bottom align text.
- BLANKED will blank the lines and corners.
- BOTTOM will draw on the bottom side if possible.
- BOXED will draw a box along the square.
- BUMPED will precede the draw with an enter.
- CALIGN will center text.
- CIRCLED will circle the corners.
- CONVERT will draw text with meta conversion.
- CROSSED will cross the corners.
- CURSIVE will draw text with cursive letters.
- FAT will draw text with fat letters.
- FILLED will fill circles and jewels.
- FOREGROUND will draw even if session is not active.
- GRID will draw TABLE as a grid.
- HORIZONTAL will draw horizontal if possible.
- HUGE will draw text in huge letters.
- JEWELED will diamond the corners.
- JOINTED will draw corners.
- LALIGN will left align text.
- LEFT will draw on the left side if possible.
- NUMBERED will draw numbers instead of lines.
- PRUNED will prune the corners.
- RALIGN will right align text.
- RIGHT will draw on the right side if possible.
- ROUNDED will round the corners.
- SANSSERIF will draw text with sansserif letters.
- SCALED will fit the square to the text size.
- SCROLL will draw in the scrolling region.
- SHADOWED will shadow HUGE text.
- TALIGN will top align text too large to fit.
- TEED will tee the corners.
- TOP will draw on the top side if possible.
- TRACED will trace HUGE text.
- TUBED will draw tubes instead of lines.
- UALIGN will unwrap and rewrap text.
- UNICODE will draw in unicode mode.
- VERTICAL will draw vertical if possible.
- The following types are available.
- [HORIZONTAL] </span><span style='color:#FFF'>BAR</span><span style='color:#AAA'> {<MIN>;<MAX>;[COLOR]}
- will draw a bar, use two 256 color codes for a color gradient.
- [ASCII|UNICODE|HUGE] </span><span style='color:#FFF'>BOX</span><span style='color:#AAA'> {[TEXT1]} {[TEXT2]}
- will draw a box.
- [BOXED|FOREGROUND] </span><span style='color:#FFF'>BUFFER
- </span><span style='color:#AAA'> will draw the scrollback buffer.
- [BLANKED|CIRCLED|CROSSED|JEWELED|ROUNDED|TEED|PRUNED] </span><span style='color:#FFF'>CORNER
- </span><span style='color:#AAA'> will draw a corner.
- [BLANKED|HORIZONTAL|NUMBERED|TUBED|VERTICAL] </span><span style='color:#FFF'>LINE</span><span style='color:#AAA'> {[TEXT]}
- will draw a line.
- [BOXED] </span><span style='color:#FFF'>MAP
- </span><span style='color:#AAA'> will draw the map
- </span><span style='color:#FFF'>RAIN</span><span style='color:#AAA'> {<VARIABLE>} {[SPAWN]} {[FADE]} {[LEGEND]}
- will draw digital rain.
- [JOINTED|TOP|LEFT|BOTTOM|RIGHT] </span><span style='color:#FFF'>SIDE
- </span><span style='color:#AAA'> will draw one or more sides of a box.
- [GRID] </span><span style='color:#FFF'>TABLE</span><span style='color:#AAA'> {[LIST1]} {[LIST2]}
- will draw a table.
- [CURSIVE|FAT|HUGE|SANSSERIF] </span><span style='color:#FFF'>TILE</span><span style='color:#AAA'> {[TEXT1]} {[TEXT2]}
- will draw a tile
- All draw types take an optional text argument as long as a valid
- square with enough space has been defined. Text is automatically
- word wrapped and text formatting can be customized with the
- CALIGN, LALIGN, RALIGN, and UALIGN options.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #draw Blue box 1 1 3 20 {Hello world!}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUFFER'>buffer</a>, <a href='#ECHO'>echo</a>, <a href='#GREP'>grep</a> and <a href='#SHOWME'>showme</a>.
- <a name='ECHO'></a>
- </span><span style='color:#5F5'> ECHO
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #echo </span><span style='color:#FFF'>{</span><span style='color:#AAA'>format</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument1</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument2</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>etc</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Echo command displays text on the screen with formatting options. See
- the help file for the format command for more information.
- The echo command does not trigger actions.
- As with the #show command you can split the {format} argument up into
- two braced arguments, in which case the 2nd argument is the row number.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #echo {The current date is %t.} {%Y-%m-%d %H:%M:%S}
- #echo {[%38s][%-38s]} {Hello World} {Hello World}
- #echo {{this is %s on the top row} {1}} {printed}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUFFER'>buffer</a>, <a href='#FORMAT'>format</a>, <a href='#GREP'>grep</a> and <a href='#SHOWME'>showme</a>.
- <a name='EDIT'></a>
- </span><span style='color:#5F5'> EDIT
- #edit </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} [</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>]</span><span style='color:#AAA'>
- The edit command can be used to turn the default line editor into a
- text editor.
- </span><span style='color:#FFF'>#edit create <arguments></span><span style='color:#AAA'>
- Create an editor, initialize using the provided arguments.
- </span><span style='color:#FFF'>#edit load <variable></span><span style='color:#AAA'>
- Create an editor, initialize using the provided list variable.
- </span><span style='color:#FFF'>#edit read <filename></span><span style='color:#AAA'>
- Create an editor, initialize using the provided file.
- </span><span style='color:#FFF'>#edit resume</span><span style='color:#AAA'>
- Resume editing after a suspension.
- </span><span style='color:#FFF'>#edit save <variable></span><span style='color:#AAA'>
- Save the editor to the provided variable.
- </span><span style='color:#FFF'>#edit suspend</span><span style='color:#AAA'>
- Suspend editing, similar to pressing enter except that no
- events are triggered.
- </span><span style='color:#FFF'>#edit write <filename</span><span style='color:#AAA'>
- Write the editor content to file.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #edit create {bli}{bla}{blo}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CURSOR'>cursor</a> and <a href='#MACRO'>macro</a>.
- <a name='EDITING'></a>
- </span><span style='color:#5F5'> EDITING
- </span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>alt b </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor backward word </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>alt f </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor forward word </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl a </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor home </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl b </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor backward </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl c </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl d </span><span style='color:#0AA'>││</span><span style='color:#FFF'>delete or exit </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl e </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor end </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl f </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor forward </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl g </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl h </span><span style='color:#0AA'>││</span><span style='color:#FFF'>backspace </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl i </span><span style='color:#0AA'>││</span><span style='color:#FFF'>tab </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl j </span><span style='color:#0AA'>││</span><span style='color:#FFF'>enter </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl k </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line right </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl l </span><span style='color:#0AA'>││</span><span style='color:#FFF'>redraw input </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl m </span><span style='color:#0AA'>││</span><span style='color:#FFF'>enter </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl n </span><span style='color:#0AA'>││</span><span style='color:#FFF'>input history next </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl o </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl p </span><span style='color:#0AA'>││</span><span style='color:#FFF'>input history prev </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl q </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl r </span><span style='color:#0AA'>││</span><span style='color:#FFF'>input history search </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl s </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl t </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer lock </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl u </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line left </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl v </span><span style='color:#0AA'>││</span><span style='color:#FFF'>convert meta characters </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl w </span><span style='color:#0AA'>││</span><span style='color:#FFF'>delete word left </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl x </span><span style='color:#0AA'>││</span><span style='color:#FFF'> </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl y </span><span style='color:#0AA'>││</span><span style='color:#FFF'>paste </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl z </span><span style='color:#0AA'>││</span><span style='color:#FFF'>suspend </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>arrow left </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor left </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>arrow right </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor right </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>arrow up </span><span style='color:#0AA'>││</span><span style='color:#FFF'>previous input line </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>arrow down </span><span style='color:#0AA'>││</span><span style='color:#FFF'>next input line </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl arrow left </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor left word </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl arrow right </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor right word </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>backspace </span><span style='color:#0AA'>││</span><span style='color:#FFF'>backspace </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>alt backspace </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line left </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl backspace </span><span style='color:#0AA'>││</span><span style='color:#FFF'>clear line </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>delete </span><span style='color:#0AA'>││</span><span style='color:#FFF'>delete </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl delete </span><span style='color:#0AA'>││</span><span style='color:#FFF'>delete word right </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>end </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor end </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl end </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer end </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>enter </span><span style='color:#0AA'>││</span><span style='color:#FFF'>enter </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>shift-enter </span><span style='color:#0AA'>││</span><span style='color:#FFF'>soft enter </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>home </span><span style='color:#0AA'>││</span><span style='color:#FFF'>cursor home </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>ctrl home </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer home </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>page up </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer up </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>page down </span><span style='color:#0AA'>││</span><span style='color:#FFF'>scroll buffer down </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>┌─────────────────────────┐┌────────────────────────────────────────────┐</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>tab </span><span style='color:#0AA'>││</span><span style='color:#FFF'>complete word forward </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>├─────────────────────────┤├────────────────────────────────────────────┤</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>│</span><span style='color:#FFF'>shift-tab </span><span style='color:#0AA'>││</span><span style='color:#FFF'>complete word backward </span><span style='color:#0AA'>│</span><span style='color:#AAA'>
- </span><span style='color:#0AA'>└─────────────────────────┘└────────────────────────────────────────────┘</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CURSOR'>cursor</a>, <a href='#EDIT'>edit</a> and <a href='#MACRO'>macro</a>.
- <a name='ELSE'></a>
- </span><span style='color:#5F5'> ELSE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #else </span><span style='color:#FFF'>{</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The else statement should follow an #IF or #ELSEIF statement and is
- only called if the proceeding #IF or #ELSEIF is false.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #if {1d2 == 1} {smile};#else {grin}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CASE'>case</a>, <a href='#DEFAULT'>default</a>, <a href='#ELSEIF'>elseif</a>, <a href='#IF'>if</a>, <a href='#SWITCH'>switch</a> and <a href='#REGEXP'>regexp</a>.
- <a name='ELSEIF'></a>
- </span><span style='color:#5F5'> ELSEIF
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #elseif </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The elseif statement should follow an #IF or #ELSEIF statement and is
- only called when the statement is true and the proceeding #IF and
- #ELSEIF statements are false.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #if {1d3 == 1} {smirk};#elseif {1d2 == 1} {snicker}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CASE'>case</a>, <a href='#DEFAULT'>default</a>, <a href='#ELSE'>else</a>, <a href='#IF'>if</a>, <a href='#SWITCH'>switch</a> and <a href='#REGEXP'>regexp</a>.
- <a name='END'></a>
- </span><span style='color:#5F5'> END
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #end {<message>}
- Terminates tintin and return to unix. On most systems, ctrl-c has
- the same result.
- The message is optional and is printed before tintin exits. When
- using #end {\} tintin will terminate silently.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ZAP'>zap</a>
- <a name='ESCAPE CODES'></a>
- </span><span style='color:#5F5'> ESCAPE CODES
- </span><span style='color:#AAA'> You may use the escape character \ for various special characters.
- \a beep the terminal.
- \c send a control character, \ca for ctrl-a.
- \e start an escape sequence.
- \f send a form feed.
- \n send a line feed.
- \r send a carriage return.
- \t send a horizontal tab.
- \x print an 8 bit character using hexadecimal, \xFF for example.
- \x7B send the '{' character.
- \x7D send the '}' character.
- \u print a 16 bit unicode character, \uFFFD for example.
- \u{} print a 8-21 bit unicode character, \u{2AF21} for example.
- \U print a 21 bit unicode character, \U02AF21 for example.
- \v send a vertical tab
- Ending a line with \ will stop tintin from appending a line feed.
- To escape arguments in an alias or action use %%0 %%1 %%2 etc.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COLORS'>colors</a>, <a href='#COORDINATES'>coordinates</a>, <a href='#MATHEMATICS'>mathematics</a> and <a href='#PCRE'>pcre</a>.
- <a name='EVENT'></a>
- </span><span style='color:#5F5'> EVENT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #event </span><span style='color:#FFF'>{</span><span style='color:#AAA'>event type</span><span style='color:#FFF'>}</span><span style='color:#AAA'> </span><span style='color:#FFF'>{</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Events allow you to create triggers for predetermined client events.
- Use #event without an argument to see a list of possible events with
- a brief description. Use #event %* to see the current list of defined
- events. Use #info {events} {on} to see events get thrown.
- Events, like triggers in general, are case sensitive and event names
- must be defined using all upper case letters. Only one event can be
- defined for each event type.
- To enable mouse events use #config mouse_tracking on, to see mouse
- events use #config mouse_tracking info.
- </span><span style='color:#5F5'>CATCH EVENTS
- </span><span style='color:#FFF'>CATCH <EVENT>
- </span><span style='color:#AAA'> Some events can be prefixed with CATCH to interrupt default
- behavior.
- </span><span style='color:#5F5'>CLASS EVENTS
- </span><span style='color:#FFF'>CLASS ACTIVATED [CLASS], CLASS_CLEAR [CLASS], CLASS CREATED [CLASS],
- CLASS DEACTIVATED [CLASS], CLASS DESTROYED [CLASS],
- CLASS_LOAD [CLASS]
- </span><span style='color:#AAA'> %0 class name
- </span><span style='color:#5F5'>GAG EVENTS
- </span><span style='color:#FFF'>GAG <EVENT>
- </span><span style='color:#AAA'> Some events can be prefixed with GAG to gag default system
- messages.
- </span><span style='color:#5F5'>INPUT EVENTS</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>EDIT STARTED, EDIT FINISHED
- </span><span style='color:#AAA'> %0 name %1 lines %2 size %3 data
- </span><span style='color:#FFF'>RECEIVED KEYPRESS, PROCESSED KEYPRESS
- </span><span style='color:#AAA'> %0 character %1 unicode index %2 edit row %3 edit column
- </span><span style='color:#FFF'>RECEIVED INPUT [NAME]
- </span><span style='color:#AAA'> %0 raw text
- </span><span style='color:#FFF'>RECEIVED INPUT CHARACTER
- </span><span style='color:#AAA'> %0 character %1 unicode index %2 size %3 width
- SEND OUTPUT %0 raw text %1 size
- SENT OUTPUT %0 raw text %1 size
- </span><span style='color:#5F5'>MAP EVENTS
- </span><span style='color:#FFF'>END OF PATH, END OF RUN, MAP UPDATED VTMAP
- </span><span style='color:#AAA'> These events have no additional arguments.
- </span><span style='color:#FFF'>MAP CREATE EXIT, MAP DELETE EXIT
- </span><span style='color:#AAA'> %0 vnum %1 exit name %2 exit cmd %3 exit vnum
- </span><span style='color:#FFF'>MAP CREATE ROOM, MAP DELETE ROOM
- </span><span style='color:#AAA'> %0 vnum %1 name
- </span><span style='color:#FFF'>MAP ENTER MAP, MAP EXIT MAP
- </span><span style='color:#AAA'> %0 vnum
- </span><span style='color:#FFF'>MAP ENTER ROOM [VNUM]
- </span><span style='color:#AAA'> %0 new vnum %1 old vnum %2 direction
- </span><span style='color:#FFF'>MAP EXIT ROOM [VNUM]
- </span><span style='color:#AAA'> %0 old vnum %1 new vnum %2 direction
- </span><span style='color:#FFF'>MAP FOLLOW MAP
- </span><span style='color:#AAA'> %0 old vnum %1 new vnum %2 exit name
- </span><span style='color:#FFF'>MAP REGION <MOUSE>, MAP ROOM <MOUSE>
- </span><span style='color:#AAA'> %0 row %1 col %2 -row %3 -col %5 vnum %6 info
- </span><span style='color:#5F5'>MOUSE EVENTS</span><span style='color:#AAA'>
- DOUBLE-CLICKED <MOUSE> %0 row %1 col %2 -row %3 -col %4 word %5 line
- LONG-CLICKED <MOUSE> %0 row %1 col %2 -row %3 -col %4 word %5 line
- MOVED <MOUSE> %0 row %1 col %2 -row %3 -col %4 word %5 line
- PRESSED <MOUSE> %0 row %1 col %2 -row %3 -col %4 word %5 line
- SHORT-CLICKED <MOUSE> %0 row %1 col %2 -row %3 -col %4 word %5 line
- RELEASED <MOUSE> %0 row %1 col %2 -row %3 -col %4 word %5 line
- SCROLLED <MOUSE> %0 row %1 col %2 -row %3 -col %4 word %5 line
- TRIPLE-CLICKED <MOUSE> %0 row %1 col %2 -row %3 -col %4 word %5 line
- </span><span style='color:#FFF'>MAP <MOUSE EVENT>
- </span><span style='color:#AAA'> Mouse events can be prefixed with MAP to only trigger when the mouse
- event occurs inside the VT100 map region.
- </span><span style='color:#FFF'>SWIPED [DIR]
- </span><span style='color:#AAA'> %0 dir %1 button %2 row %3 col %4 -row %5 -col
- %6 row %7 col %8 -row %9 -col %10 rows %11 cols
- </span><span style='color:#5F5'>OUTPUT EVENTS
- </span><span style='color:#FFF'>BUFFER UPDATE, DISPLAY UPDATE
- </span><span style='color:#AAA'> These events have no additional arguments.
- RECEIVED LINE %0 raw text %1 plain text
- RECEIVED OUTPUT %0 raw text
- RECEIVED PROMPT %0 raw text %1 plain text
- </span><span style='color:#5F5'>PORT EVENTS
- </span><span style='color:#FFF'>CHAT MESSAGE, PORT MESSAGE
- </span><span style='color:#AAA'> %0 raw text %1 plain text
- </span><span style='color:#FFF'>PORT CONNECTION </span><span style='color:#AAA'>%0 name %1 ip %2 port
- </span><span style='color:#FFF'>PORT DISCONNECTION </span><span style='color:#AAA'>%0 name %1 ip %2 port
- </span><span style='color:#FFF'>PORT LOG MESSAGE </span><span style='color:#AAA'>%0 name %1 ip %2 port %3 data %4 plain data
- </span><span style='color:#FFF'>PORT RECEIVED MESSAGE </span><span style='color:#AAA'>%0 name %1 ip %2 port %3 data %4 plain data
- </span><span style='color:#5F5'>SCAN EVENTS</span><span style='color:#AAA'>
- SCAN CSV HEADER %0 all args %1 arg1 %2 arg2 .. %99 arg99
- SCAN CSV LINE %0 all args %1 arg1 %2 arg3 .. %99 arg99
- SCAN TSV HEADER %0 all args %1 arg1 %2 arg3 .. %99 arg99
- SCAN TSV LINE %0 all args %1 arg1 %2 arg3 .. %99 arg99
- </span><span style='color:#5F5'>SCREEN EVENTS</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>SCREEN FOCUS
- </span><span style='color:#AAA'> %0 focus (0 or 1)
- SCREEN LOCATION %0 rows %1 cols %2 height %3 width
- </span><span style='color:#FFF'>SCREEN MOUSE LOCATION
- </span><span style='color:#AAA'> %0 row %1 col %2 -row %3 -col %4 pix row %5 pix col
- %6 -pix row %7 -pix col %8 location
- SCREEN RESIZE %0 rows %1 cols %2 height %3 width
- SCREEN SPLIT %0 top row %1 top col %2 bot row %3 bot col
- SCREEN UNSPLIT %0 top row %1 top col %2 bot row %3 bot col
- </span><span style='color:#5F5'>SESSION EVENTS</span><span style='color:#AAA'>
- SESSION ACTIVATED %0 name
- SESSION CONNECTED %0 name %1 host %2 ip %3 port %4 file
- SESSION CREATED %0 name %1 host %2 ip %3 port %4 file
- SESSION DEACTIVATED %0 name
- SESSION DISCONNECTED %0 name %1 host %2 ip %3 port
- SESSION TIMED OUT %0 name %1 host %2 ip %3 port
- </span><span style='color:#5F5'>SYSTEM EVENTS</span><span style='color:#AAA'>
- DAEMON ATTACHED %0 file %1 pid
- DAEMON DETACHED %0 file %1 pid
- PROGRAM START %0 startup arguments
- PROGRAM TERMINATION %0 goodbye message
- READ ERROR %0 filename %1 error message
- READ FILE %0 filename
- WRITE ERROR %0 filename %1 error message
- WRITE FILE %0 filename
- SYSTEM CRASH %0 message
- SYSTEM ERROR %0 name %1 system msg %2 error %3 error msg
- UNKNOWN COMMAND %0 raw text
- SIGUSR %0 signal
- </span><span style='color:#5F5'>TELNET EVENTS
- </span><span style='color:#FFF'>IAC <EVENT>
- </span><span style='color:#AAA'> IAC TELNET events are made visable using #config telnet info.
- </span><span style='color:#FFF'>IAC SB GMCP [MODULE] %0 module %1 data %2 plain data
- IAC SB MSSP %0 variable %1 data
- IAC SB MSDP %0 variable %1 data %2 plain data
- IAC SB MSDP [VAR] %0 variable %1 data %2 plain data
- IAC SB NEW-ENVIRON %0 variable %1 data %2 plain data
- IAC SB ZMP <VAR> %0 variable %1 data
- IAC SB <VAR> %0 variable %1 raw data %2 plain data
- </span><span style='color:#5F5'>TIME EVENTS
- </span><span style='color:#FFF'>DATE <MONTH-DAY OF MONTH> [HOUR:MINUTE], DAY [DAY OF MONTH],
- HOUR [HOUR], MONTH [DAY OF MONTH], TIME <HOUR:MINUTE>[:SECOND],
- WEEK [DAY OF WEEK], YEAR [YEAR]
- </span><span style='color:#AAA'> %0 year %1 month %2 day of week %3 day of month %4 hour
- %5 minute %6 second
- </span><span style='color:#5F5'>VARIABLE EVENTS</span><span style='color:#AAA'>
- VARIABLE UPDATE <VAR> %0 name %1 new value %2 path
- VARIABLE UPDATED <VAR> %0 name %1 new value %2 path
- </span><span style='color:#5F5'>VT100 EVENTS</span><span style='color:#AAA'>
- VT100 SCROLL REGION %0 top row %1 bot row %2 rows %3 cols %4 wrap
- To see all events trigger use #event info on. Since this can get
- rather spammy it's possible to gag event info messages.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #event {SESSION CONNECTED} {#read mychar.tin}
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove an event with the #unevent command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUTTON'>button</a>, <a href='#DELAY'>delay</a> and <a href='#TICKER'>ticker</a>.
- <a name='FOREACH'></a>
- </span><span style='color:#5F5'> FOREACH
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #foreach </span><span style='color:#FFF'>{</span><span style='color:#AAA'>list</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- For each item in the provided list the foreach statement will update
- the given variable and execute the command part of the statement. List
- elements must be separated by braces or semicolons.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #foreach {bob;tim;kim} {name} {tell $name Hello}
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #foreach {{bob}{tim}{kim}} {name} {tell $name Hello}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#LIST'>list</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
- <a name='FORMAT'></a>
- </span><span style='color:#5F5'> FORMAT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #format </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>format</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument1</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument2</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>etc</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Allows you to store a string into a variable in the exact same way
- C's sprintf works with a few enhancements and limitations like a
- maximum of 30 arguments.
- If you use #format inside an alias or action you must escape %1s as
- %+1s or %%1s or %\1s so the %1 isn't substituted by the trigger.
- #format {test} {%+9s} {string} pad string with up to 9 spaces
- #format {test} {%-9s} {string} post pad string with up to 9 spaces
- #format {test} {%.8s} {string} copy at most 8 characters
- #format {test} {%a} {number} print corresponding charset character
- #format {test} {%c} {string} use a highlight color name
- #format {test} {%d} {number} print a number with integer formatting
- #format {test} {%f} {string} perform floating point math
- #format {test} {%g} {number} perform thousand grouping on {number}
- #format {test} {%h} {string} turn text into a header line
- #format {test} {%l} {string} lowercase text
- #format {test} {%m} {string} perform mathematical calculation
- #format {test} {%n} {name} capitalize the first letter
- #format {test} {%p} {string} strip leading and trailing spaces
- #format {test} {%r} {string} reverse text, hiya = ayih
- #format {test} {%s} {string} print given string
- #format {test} {%t} {format} display time with strftime format
- optional {{format}{time}} syntax
- #format {test} {%u} {string} uppercase text
- #format {list} {%w} {string} store word wrapped text in {list}
- optional {{string}{width}} syntax
- #format {test} {%x} {hex} print corresponding charset character
- #format {test} {%A} {char} store corresponding character value
- #format {test} {%D} {hex} convert hex to decimal in {test}
- #format {hash} {%H} {string} store a 64 bit string hash in {hash}
- #format {test} {%L} {string} store the string length in {test}
- #format {test} {%M} {number} convert number to metric in {test}
- #format {test} {%S} {string} store the number of spelling errors
- #format {time} {%T} {} store the epoch time in {time}
- #format {time} {%U} {} store the micro epoch time in {time}
- #format {test} {%X} {dec} convert dec to hexadecimal in {test}
- #format {test} {%%} a literal % character
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See #help TIME for help on the %t argument.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CAT'>cat</a>, <a href='#ECHO'>echo</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a>, <a href='#TIME'>time</a> and <a href='#VARIABLE'>variable</a>.
- <a name='FUNCTION'></a>
- </span><span style='color:#5F5'> FUNCTION
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #function </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>operation</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Functions allow you to execute a script within a line of text, and
- replace the function call with the line of text generated by the
- function.
- Be aware that each function should use the #return command at the
- end of the function with the result, or set the {result} variable.
- To use a function use the @ character before the function name.
- The function arguments should be placed between braces behind the
- function name with argument separated by semicolons.
- Functions can be escaped by adding additional @ signs.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #function test #return 42;#showme @@test{}
- The function itself can use the provided arguments which are stored
- in %1 to %99, with %0 holding all arguments.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #function {rnd} {#math {result} {1 d (%2 - %1 + 1) + %1 - 1}}
- #show A random number between 100 and 200: @rnd{100;200}
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #function gettime {#format result %t %H:%M}
- #show The current time is @gettime{}
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a function with the #unfunction command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORMAT'>format</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
- <a name='GAG'></a>
- </span><span style='color:#5F5'> GAG
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #gag </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Removes any line that contains the string.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help action', for more information about triggers.
- There are a system messages that can be gagged using gag events.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a gag with the #ungag command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ACTION'>action</a>, <a href='#HIGHLIGHT'>highlight</a>, <a href='#PROMPT'>prompt</a> and <a href='#SUBSTITUTE'>substitute</a>.
- <a name='GREETING'></a>
- </span><span style='color:#5F5'> GREETING
- </span><span style='color:#0AA'> ####################################################################
- #</span><span style='color:#AAA'> </span><span style='color:#0AA'>#
- #</span><span style='color:#AAA'> T I N T I N + + 2.02.13b </span><span style='color:#0AA'>#
- #</span><span style='color:#AAA'> </span><span style='color:#0AA'>#
- #</span><span style='color:#AAA'> Code by Peter Unold, Bill Reis, and Igor van den Hoven </span><span style='color:#0AA'>#
- #</span><span style='color:#AAA'> </span><span style='color:#0AA'>#
- ####################################################################
- <a name='GREP'></a>
- </span><span style='color:#5F5'> GREP
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #grep </span><span style='color:#FFF'>[</span><span style='color:#AAA'>page</span><span style='color:#FFF'>] {</span><span style='color:#AAA'>search string</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- This command allows you to search for matching lines in your scroll
- back buffer. The amount of matches shown equals your screen size. If
- you want to search back further use the optional page number. You can
- use wildcards for better search results. Be aware the search string
- is case sensitive, which can be disabled by using %i.
- By default grep searches from the end of the scrollback buffer to the
- beginning, this can be reversed by using a negative page number.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #grep Bubba tells you
- This will show all occasions where bubba tells you something.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUFFER'>buffer</a>, <a href='#ECHO'>echo</a> and <a href='#SHOWME'>showme</a>.
- <a name='HELP'></a>
- </span><span style='color:#5F5'> HELP
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #help </span><span style='color:#FFF'>{</span><span style='color:#AAA'>subject</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Without an argument #help will list all available help subjects.
- Using #help %* will display all help entries.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#COMMANDS'>commands</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a>, <a href='#MESSAGE'>message</a> and <a href='#STATEMENTS'>statements</a>.
- <a name='HIGHLIGHT'></a>
- </span><span style='color:#5F5'> HIGHLIGHT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #highlight </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>color names</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The highlight command is used to allow you to highlight strings of text.
- Available color options are:
- reset - resets the color state to default
- light - turns the color light in 16 color mode.
- dark - turns the color dark in 16 color mode.
- underscore - underscores the text.
- blink - makes the text blink.
- reverse - reverse foreground and background color.
- b - makes next color the background color.
- Available color names are:
- <F06B> - azure <F08F> - Azure
- <F00B> - blue <F00F> - Blue
- <F0BB> - cyan <F0FF> - Cyan
- <F000> - ebony <F666> - Ebony
- <F0B0> - green <F0F0> - Green
- <F0B6> - jade <F0F8> - Jade
- <F6B0> - lime <F8F0> - Lime
- <FB0B> - magenta <FF0F> - Magenta
- <FB60> - orange <FF80> - Orange
- <FB06> - pink <FF08> - Pink
- <FB00> - red <FF00> - Red
- <F888> - silver <FDDD> - Silver
- <F860> - tan <FDB0> - Tan
- <F60B> - violet <F80F> - Violet
- <FBBB> - white <FFFF> - White
- <FBB0> - yellow <FFF0> - Yellow
- The %1-99 variables can be used as 'wildcards' that will match with any
- text. They are useful for highlighting a complete line. The %0 variable
- should never be used in highlights.
- You may start the string to highlight with a ^ to only highlight text
- if it begins the line.
- Besides color names also <abc> color codes can be used.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #high {Valgar} {reverse blink}
- Prints every occurrence of 'Valgar' in blinking reverse video.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #high {^You %1} {bold cyan}
- Boldfaces any line that starts with 'You' in cyan.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #high {Bubba} {red underscore b green}
- Highlights the name Bubba as red underscored text on green background.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help action', for more information about triggers.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help substitute', for more advanced color substitution.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: This command only works with ANSI/VT100 terminals or emulators.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a highlight with the #unhighlight command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ACTION'>action</a>, <a href='#GAG'>gag</a>, <a href='#PROMPT'>prompt</a> and <a href='#SUBSTITUTE'>substitute</a>.
- <a name='HISTORY'></a>
- </span><span style='color:#5F5'> HISTORY
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>delete</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Delete the last command.
- #history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>insert</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>command</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Insert a command.
- #history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>list</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Display the entire command history.
- #history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>read</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Read a command history from file.
- #history </span><span style='color:#FFF'>{</span><span style='color:#AAA'>write</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>}</span><span style='color:#AAA'> Write a command history to file.
- Without an argument all available options are shown.
- By default all commands are saved to the history list and the history
- list is saved between sessions in the ~/.tintin/history.txt file.
- You can set the character to repeat a command in the history with the
- #config {REPEAT CHAR} {<character>} configuration option, by default
- this is set to the exclamation mark.
- You can use ! by itself to repeat the last command, or !<text> to
- repeat the last command starting with the given text.
- You can use #config {REPEAT ENTER} {ON} to repeat the last command
- when you press enter on an empty line.
- You can press ctrl-r to enter an interactive regex enabled history
- search mode, or by issuing #cursor {history search}.
- TinTin++ tries to bind the arrow up and down keys to scroll through
- the history list by default. You can bind these with a macro yourself
- using #cursor {history next} and #cursor {history prev}. Many #cursor
- commands only work properly when bound with a macro.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALIAS'>alias</a>, <a href='#CURSOR'>cursor</a>, <a href='#KEYPAD'>keypad</a>, <a href='#MACRO'>macro</a>, <a href='#SPEEDWALK'>speedwalk</a> and <a href='#TAB'>tab</a>.
- <a name='IF'></a>
- </span><span style='color:#5F5'> IF
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #if </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands if true</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The #if command is one of the most powerful commands added since
- TINTIN III. It works similar to an if statement in other languages,
- and is based on the way C handles its conditional statements.
- When an #if command is encountered, the conditional statement is
- evaluated, and if TRUE (any non-zero result) the commands are executed.
- The if statement is only evaluated if it is read, so you must nest
- the if statement inside another statement (most likely an #action
- command). The conditional is evaluated exactly the same as in the
- #math command, only instead of storing the result, the result is used
- to determine whether to execute the commands.
- To handle the case where an if statement is false it can be followed
- by the #else command.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {%0 gives you %1 gold coins.} {#if {%1 > 5000} {thank %0}}
- If someone gives you more than 5000 coins, thank them.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {k} {#if {"%0" == ""} {kill $target};#else {kill %0}}
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help math', for more information.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CASE'>case</a>, <a href='#DEFAULT'>default</a>, <a href='#ELSE'>else</a>, <a href='#ELSEIF'>elseif</a>, <a href='#SWITCH'>switch</a> and <a href='#REGEXP'>regexp</a>.
- <a name='IGNORE'></a>
- </span><span style='color:#5F5'> IGNORE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #ignore </span><span style='color:#FFF'>{</span><span style='color:#AAA'>listname</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>on</span><span style='color:#FFF'>|</span><span style='color:#AAA'>off</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Toggles a list on or off. With no arguments it shows your current
- settings, as well as the list names that you can ignore.
- If you for example set ACTIONS to OFF actions will no longer trigger.
- Not every list can be ignored.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#DEBUG'>debug</a>, <a href='#INFO'>info</a>, <a href='#KILL'>kill</a> and <a href='#MESSAGE'>message</a>.
- <a name='INDEX'></a>
- </span><span style='color:#5F5'> INDEX
- </span><span style='color:#AAA'> On this page you'll find an introduction to using TinTin++. Additional
- information can be found in the individual help sections.
- </span><span style='color:#5F5'>
- Starting and Ending
- </span><span style='color:#AAA'>
- The syntax for starting TinTin++ is: ./tt++ [command file]
- Read more about the command file in the files section below. Remember
- one thing though. All actions, aliases, substitutions, etc, defined
- when starting up TinTin++ are inherited by all sessions.
- If you want to exit TinTin++ type '#end' or press ctrl-d on an empty
- line.
- For the WinTin++ users, if you want to paste text use shift-insert,
- text is automatically copied upon selection. This is typical Linux
- behavior, but it can take some getting used to.
- </span><span style='color:#5F5'>
- Basic features
- </span><span style='color:#AAA'>
- I'll start by explaining some of the very basic and important features:
- All TinTin++ commands starts with a '#'.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #help -- #help is a client command, and isn't send to the server.
- All TinTin++ commands can be abbreviated when typed.
- #he -- Typing #he is the same as typing #help though it's suggested to
- use at least 3 letter abbreviations just in case another command is
- added that starts with 'he'.
- All commands can be separated with a ';'.
- n;l dragon;s;say Dan Dare is back! -- do these 4 commands
- There are 3 ways ';'s can be overruled.
- \say Hello ;) -- Lines starting with a '\' aren't parsed by TinTin++.
- say Hello \;) -- The escape character can escape 1 letter.
- #config verbatim on -- Everything is send as is except '#' commands.
- </span><span style='color:#5F5'>
- Connecting to a server
- </span><span style='color:#FFF'>
- Command</span><span style='color:#AAA'>: #session </span><span style='color:#FFF'>{</span><span style='color:#AAA'>session name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>server address</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>port</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Example: #session someone tintin.sourceforge.net 4321
- You can have more than one session, in which case you can switch
- between sessions typing #<session name>.
- You can get a list of all sessions by typing: #session. The current
- active session is marked with (active). Snooped sessions with
- (snooped). MCCP sessions (compression) with (mccp 2) and (mccp 3).
- </span><span style='color:#5F5'>
- Split
- </span><span style='color:#FFF'>
- Command</span><span style='color:#AAA'>: #split
- The split command will create a separated input and output area.
- Using the #prompt command you can capture the prompt and place it on
- the split line. To get rid of the split interface you can use #unsplit
- which will restore the terminal settings to default.
- </span><span style='color:#5F5'>
- Alias
- </span><span style='color:#FFF'>
- Command</span><span style='color:#AAA'>: #alias </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The syntax of the #alias command is almost like alias in csh.
- Use this command to define aliases. The variables %0, %1.. %9 contain
- the arguments to the aliased command as follows:
- the %0 variable contains ALL the arguments.
- the %1 variable contains the 1st argument
- ....
- the %9 variable contains the 9th argument
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias greet say Greetings, most honorable %1
- If you want an alias to execute more commands, you must use braces.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias ws </span><span style='color:#FFF'>{</span><span style='color:#AAA'>wake;stand</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- To delete an alias use the #unalias command.
- WARNING! TinTin++ doesn't baby sit, and hence does not check for
- recursive aliases! You can avoid recursion by escaping the entire
- line.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias put \put %1 in %2
- Or by using the send command.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias put #send put %1 in %2
- </span><span style='color:#5F5'> Action
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>action-text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Use this command to define an action to take place when a particular
- text appears on your screen. There are 99 variables you can use as
- wildcards in the action-text.
- These variables are %1, %2, %3 .... %9, %10, %11 ... %97, %98, %99.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>You are hungry</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>get bread bag;eat bread</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>%1 has arrived.</span><span style='color:#FFF'>}</span><span style='color:#AAA'> shake %1 -- shake hands with people arriving.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>%1 tells you '%2'</span><span style='color:#FFF'>}
- {</span><span style='color:#AAA'>tell bob %1 told me '%2'</span><span style='color:#FFF'>}</span><span style='color:#AAA'> -- forward tells.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>tells you</span><span style='color:#FFF'>}</span><span style='color:#AAA'> #bell -- beep on tell.
- You can have TinTin++ ignore actions if you type '#ignore actions on'.
- You can see what commands TinTin++ executes when an action triggers
- by typing '#debug actions on'.
- You can remove actions with the #unaction command.
- </span><span style='color:#5F5'>
- Highlight
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #highlight </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>color</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- This command works a bit like #action. The purpose of this command is
- to substitute text from the server with color you provide. This command
- is a simplified version of the #substitute command.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #high </span><span style='color:#FFF'>{</span><span style='color:#AAA'>Snowy</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>light yellow</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #high </span><span style='color:#FFF'>{</span><span style='color:#AAA'>%*Snowy%*</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>light yellow</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Use #unhigh to delete highlights.
- Speedwalk
- If you type a command consisting ONLY of letters and numbers n, e, s,
- w, u, d - then this command can be interpreted as a serie of movement
- commands.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: ssw2n -- go south, south, west, north, north
- If you have problems with typing some commands that actually ONLY
- consists of these letters, then type them in CAPS. For example when
- checking the NEWS or when asked to enter NEW as your name.
- You must enable speedwalking with: #config speedwalk on/off.
- </span><span style='color:#5F5'>
- Ticker
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #ticker </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>seconds</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The name can be whatever you want it to be, and is only required for
- the unticker command. The commands will be executed every x amount of
- seconds, which is specified in the interval part.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #tick </span><span style='color:#FFF'>{</span><span style='color:#AAA'>tick</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>#delay 50 #show 10 SECONDS TO TICK!;#show TICK!!!</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>60</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- This creates a ticker with the name </span><span style='color:#FFF'>{</span><span style='color:#AAA'>tick</span><span style='color:#FFF'>}</span><span style='color:#AAA'> which will print TICK!!!,
- as well as print a warning when the next tick will occure.
- You can remove tickers with #untick
- </span><span style='color:#5F5'>
- Command files
- </span><span style='color:#AAA'>
- When you order TinTin++ to read a command file, it parses all the text
- in the file. You can use command files to keep aliases/actions in,
- login to a server (name, password etc..) and basically all kinds of
- commands.
- You can make the command files with either a text editor (suggested),
- or use the #write command to write out a file.
- Commands for files:
- #read filename -- read and execute the file.
- #write filename -- write all actions/aliases/substitutes/etc known for
- the current session to a file.
- </span><span style='color:#5F5'>
- Repeating Commands
- </span><span style='color:#AAA'>
- You can repeat a command, the syntax is: #number command
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #5 cackle -- if you just killed bob the wizard.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #10 </span><span style='color:#FFF'>{</span><span style='color:#AAA'>buy bread;put bread bag</span><span style='color:#FFF'>}</span><span style='color:#AAA'> -- repeat these 2 commands 10 times.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #100 ooc w00t w00t!!!!! -- nochannel yourself.
- </span><span style='color:#5F5'>
- History
- </span><span style='color:#AAA'>
- TinTin++ has a limited subset of the csh history features.
- ! -- repeat the last command
- !cast -- repeat the last command starting with cast
- ctrl-r -- enter the reverse history search mode.
- </span><span style='color:#5F5'>
- Map commands
- </span><span style='color:#AAA'>
- TinTin++ has a powerful highly configurable automapper. Whenever
- you type n/ne/e/se/s/sw/w/nw/n/u/d tt++ tries to keep track of your
- movement.
- Commands for map:
- #map create -- create a map.
- #map goto 1 -- go to the first room in the map, created by default.
- #map map -- display the map.
- #map undo -- undo your last map alteration.
- #map write <filename> -- save the map to file.
- #map read <filename> -- load a map from file.
- There are many other map options and it's beyond the scope of this
- help section to explain everything there is to know, but I'll give
- a set of commands that will get most people started.
- #map create
- #split 12 1
- #map flag unicode on
- #map flag vt on
- #map goto 1
- These commands will create a 12 row vt100 split section at the top of
- your screen where a map drawn using unicode characters is displayed.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action </span><span style='color:#FFF'>{</span><span style='color:#AAA'>There is no exit in that direction.</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>#map undo</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The map will be automatically created as you move around.
- </span><span style='color:#5F5'>
- Help
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #help </span><span style='color:#FFF'>{</span><span style='color:#AAA'>subject</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The help command is your friend and contains the same helpfiles
- inside TinTin++ as are available on the website. If you type #help
- without an argument you will see the various available help subjects
- which try to explain the TinTin++ commands and features in greater
- detail.
- </span><span style='color:#5F5'>
- Enjoy</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COLORS'>colors</a>, <a href='#COORDINATES'>coordinates</a>, <a href='#EDITING'>editing</a>, <a href='#ESCAPE_CODES'>escape_codes</a>, <a href='#GREETING'>greeting</a>, <a href='#KEYPAD'>keypad</a>, <a href='#LISTS'>lists</a>, <a href='#MAPPING'>mapping</a>, <a href='#MATHEMATICS'>mathematics</a>, <a href='#SCREEN_READER'>screen_reader</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SPEEDWALK'>speedwalk</a>, <a href='#STATEMENTS'>statements</a>, <a href='#SUSPEND'>suspend</a> and <a href='#TIME'>time</a>.
- <a name='INFO'></a>
- </span><span style='color:#5F5'> INFO
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #info </span><span style='color:#FFF'>{</span><span style='color:#AAA'>listname</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>LIST</span><span style='color:#FFF'>|</span><span style='color:#AAA'>ON</span><span style='color:#FFF'>|</span><span style='color:#AAA'>OFF</span><span style='color:#FFF'>|</span><span style='color:#AAA'>SAVE</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Without an argument info displays the settings of every tintin list.
- By providing the name of a list and the LIST option it shows all
- triggers/variables associated with that list. With the SAVE option
- this data is written to the info variable.
- #info arguments will show matched trigger arguments.
- #info big5toutf will show the big5 to utf8 translation table.
- #info cpu will show information about tintin's cpu usage.
- #info environ will show the environment variables.
- #info input will show information about the input line.
- #info matches will show matched command arguments.
- #info mccp will show information about data compression.
- #info memory will show information about the memory stack.
- #info stack will show the low level debugging stack.
- #info session will show information on the session.
- #info sessions will show information on all sessions.
- #info system will show some system information.
- #info tokenizer will show information about the script stack.
- #info unicode will show information on the provided character.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#KILL'>kill</a> and <a href='#MESSAGE'>message</a>.
- <a name='KEYPAD'></a>
- </span><span style='color:#5F5'> KEYPAD
- </span><span style='color:#AAA'>When TinTin++ starts up it sends \e= to the terminal to enable the terminal's
- application keypad mode, which can be disabled using #show {\e>}
- </span><span style='color:#FFF'> Configuration A Configuration B Configuration C</span><span style='color:#0AA'>
- ╭─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────╮ ╭─────┬─────┬─────┬─────╮
- │</span><span style='color:#FFF'>num</span><span style='color:#0AA'> │</span><span style='color:#FFF'>/</span><span style='color:#0AA'> │</span><span style='color:#FFF'>*</span><span style='color:#0AA'> │</span><span style='color:#FFF'>-</span><span style='color:#0AA'> │ │</span><span style='color:#FFF'>num</span><span style='color:#0AA'> │</span><span style='color:#FFF'>/</span><span style='color:#0AA'> │</span><span style='color:#FFF'>*</span><span style='color:#0AA'> │</span><span style='color:#FFF'>-</span><span style='color:#0AA'> │ │</span><span style='color:#FFF'>Num</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp/</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp*</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp-</span><span style='color:#0AA'> │
- ├─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┤
- │</span><span style='color:#FFF'>7</span><span style='color:#0AA'> │</span><span style='color:#FFF'>8</span><span style='color:#0AA'> │</span><span style='color:#FFF'>9</span><span style='color:#0AA'> │</span><span style='color:#FFF'>+</span><span style='color:#0AA'> │ │</span><span style='color:#FFF'>Home</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Up</span><span style='color:#0AA'> │</span><span style='color:#FFF'>PgUp</span><span style='color:#0AA'> │</span><span style='color:#FFF'>+</span><span style='color:#0AA'> │ │</span><span style='color:#FFF'>nkp7</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp8</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp9</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp+</span><span style='color:#0AA'> │
- ├─────┼─────┼─────┤ │ ├─────┼─────┼─────┤ │ ├─────┼─────┼─────┤ │
- │</span><span style='color:#FFF'>4</span><span style='color:#0AA'> │</span><span style='color:#FFF'>5</span><span style='color:#0AA'> │</span><span style='color:#FFF'>6</span><span style='color:#0AA'> │ │ │</span><span style='color:#FFF'>Left</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Cntr</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Right</span><span style='color:#0AA'>│ │ │</span><span style='color:#FFF'>nkp4</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp5</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp6</span><span style='color:#0AA'> │ │
- ├─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┤ ├─────┼─────┼─────┼─────┤
- │</span><span style='color:#FFF'>1</span><span style='color:#0AA'> │</span><span style='color:#FFF'>2</span><span style='color:#0AA'> │</span><span style='color:#FFF'>3</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Enter</span><span style='color:#0AA'>│ │</span><span style='color:#FFF'>End</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Down</span><span style='color:#0AA'> │</span><span style='color:#FFF'>PgDn</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Enter</span><span style='color:#0AA'>│ │</span><span style='color:#FFF'>nkp1</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp2</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp3</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkpEn</span><span style='color:#0AA'>│
- ├─────┴─────┼─────┤ │ ├─────┴─────┼─────┤ │ ├─────┴─────┼─────┤ │
- │</span><span style='color:#FFF'>0</span><span style='color:#0AA'> │</span><span style='color:#FFF'>.</span><span style='color:#0AA'> │ │ │</span><span style='color:#FFF'>Ins</span><span style='color:#0AA'> │</span><span style='color:#FFF'>Del</span><span style='color:#0AA'> │ │ │</span><span style='color:#FFF'>nkp0</span><span style='color:#0AA'> │</span><span style='color:#FFF'>nkp.</span><span style='color:#0AA'> │ │
- ╰───────────┴─────┴─────╯ ╰───────────┴─────┴─────╯ ╰───────────┴─────┴─────╯
- </span><span style='color:#AAA'>
- With keypad mode disabled numlock on will give you configuration A, and numlock
- off will give you configuration B. With keypad mode enabled you'll get
- configuration C.
- </span><span style='color:#FFF'>Terminals that support keypad mode
- </span><span style='color:#AAA'>Linux Console, PuTTY, Eterm, aterm.
- </span><span style='color:#FFF'>Terminals that do not support keypad mode
- </span><span style='color:#AAA'>RXVT on Cygwin, Windows Console, Gnome Terminal, Konsole.
- </span><span style='color:#FFF'>Peculiar Terminals
- </span><span style='color:#AAA'>RXVT requires turning off numlock to enable configuration C.
- Xterm may require disabling Alt/NumLock Modifiers (num-lock) in the ctrl-left
- click menu. Or edit ~/.Xresources and add XTerm*VT100.numLock:false
- Mac OS X Terminal requires enabling 'strict vt100 keypad behavior' in
- Terminal -> Window Settings -> Emulation.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#COLORS'>colors</a>, <a href='#COORDINATES'>coordinates</a>, <a href='#ESCAPE'>escape</a>, <a href='#MATHEMATICS'>mathematics</a> and <a href='#PCRE'>pcre</a>.
- <a name='KILL'></a>
- </span><span style='color:#5F5'> KILL
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #kill </span><span style='color:#FFF'>{</span><span style='color:#AAA'>list</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>pattern</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Without an argument, the kill command clears all lists. Useful if
- you don't want to exit tintin to reload your command files.
- With one argument a specific list can be cleared.
- With two arguments the triggers in the chosen list that match the
- given pattern will be removed.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #kill alias %*test*
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a> and <a href='#MESSAGE'>message</a>.
- <a name='LINE'></a>
- </span><span style='color:#5F5'> LINE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #line </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- </span><span style='color:#5F5'>Line options that alter the argument.
- </span><span style='color:#FFF'>#line strip <argument>
- </span><span style='color:#AAA'> Argument is executed with all color codes stripped.
- </span><span style='color:#FFF'>#line substitute <options> <argument>
- </span><span style='color:#AAA'> Argument is executed using the provided substitutions, available
- options are: arguments, braces, colors, escapes, functions, secure,
- and variables.
- </span><span style='color:#5F5'>Line options that alter how the line is executed.
- </span><span style='color:#FFF'>#line background <argument>
- </span><span style='color:#AAA'> Prevent new session activation.
- </span><span style='color:#FFF'>#line capture <variable> <argument.
- </span><span style='color:#AAA'> Argument is executed and output stored in <variable>.
- </span><span style='color:#FFF'>#line convert <argument>
- </span><span style='color:#AAA'> Argument is executed with escaped meta characters.
- </span><span style='color:#FFF'>#line debug <argument>
- </span><span style='color:#AAA'> Argument is executed in debug mode.
- </span><span style='color:#FFF'>#line gag
- </span><span style='color:#AAA'> Gag the next line.
- </span><span style='color:#FFF'>#line ignore {argument}
- </span><span style='color:#AAA'> Argument is executed without any triggers being checked.
- </span><span style='color:#FFF'>#line local {argument}
- </span><span style='color:#AAA'> Argument is executed with all newly and indirectly
- created variables being local.
- </span><span style='color:#FFF'>#line log <filename> [text]
- </span><span style='color:#AAA'> Log the next line to file unless the [text] argument is
- provided.
- </span><span style='color:#FFF'>#line logmode <option> <argument>
- </span><span style='color:#AAA'> Argument is executed using the provided logmode, available
- modes are: html, plain, and raw.
- </span><span style='color:#FFF'>#line msdp <argument>
- </span><span style='color:#AAA'> Turn the argument into an msdp telnet sequence, starting at the
- first opening brace. Will turn tintin tables into msdp tables,
- with semicolons being used to create msdp arrays.
- </span><span style='color:#FFF'>#line multishot <number> <argument>
- </span><span style='color:#AAA'> Argument is executed in multishot mode, all triggers created
- will only fire the given number of times.
- </span><span style='color:#FFF'>#line oneshot <argument>
- </span><span style='color:#AAA'> Argument is executed in oneshot mode, all triggers created will
- only fire once.
- </span><span style='color:#FFF'>#line quiet <argument>
- </span><span style='color:#AAA'> Argument is executed with suppression of most system messages.
- </span><span style='color:#FFF'>#line verbatim <argument>
- </span><span style='color:#AAA'> Argument is executed verbatim, prohibiting variable and function
- substitutions.
- </span><span style='color:#FFF'>#line verbose <argument>
- </span><span style='color:#AAA'> Argument is executed with most system messages enabled.
- When using #line log and logging in html format use \c< \c> \c& \c" to
- log a literal < > & and ".
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a> and <a href='#CONFIG'>config</a>.
- <a name='LIST'></a>
- </span><span style='color:#5F5'> LIST
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #list </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- #list {var} {add} {item} Add {item} to the list
- #list {var} {clear} Empty the given list
- #list {var} {collapse} {separator} Turn list into a variable
- #list {var} {create} {items} Create a list using {items}
- #list {var} {delete} {index} {amount} Delete the item at {index},
- the {amount} is optional.
- #list {var} {explode} {separator} Turn variable into a list
- #list {var} {indexate} Index a list table for sorting
- #list {var} {insert} {index} {string} Insert {string} at given index
- #list {var} {filter} {keep} {remove} Filter with keep / remove regex
- #list {var} {find} {regex} {variable} Return the found index
- #list {var} {get} {index} {variable} Copy an item to {variable}
- #list {var} {numerate} Turn a table into a list
- #list {var} {order} {string} Insert item in numerical order
- #list {var} {shuffle} Shuffle the list
- #list {var} {set} {index} {string} Change the item at {index}
- #list {var} {simplify} {string} Turn list into a simple list
- #list {var} {size} {variable} Copy list size to {variable}
- #list {var} {sort} {string} Insert item in alphabetic order
- #list {var} {tokenize} {string} Create a character list
- The index should be between +1 and the list's size. You can also give
- a negative value, in which case -1 equals the last item in the list, -2
- the second last, etc.
- When inserting an item a positive index will prepend the item at the
- given index, while a negative index will append the item.
- The add and create options allow using multiple items, as well
- as semicolon separated items.
- A size of 0 is returned for an empty or non-existent list. You can
- directly access the size of a list using &var[].
- You can directly access elements in a list variable using $var[+1],
- $var[+2], $var[-1], etc.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
- <a name='LISTS'></a>
- </span><span style='color:#5F5'> LISTS
- </span><span style='color:#AAA'> There are several different types of lists in tintin which behave in a
- fairly universal manner. To properly explain lists it's easiest to
- explain the most basic variable type first before discussing more
- complex types.
- - Basic variable: The standard key = value variable.
- - Simple list: A string that contains semicolon delimited fields.
- {a;b;c}. Can be saved as a variable.
- - Brace list: A string in which fields are delimited with braces.
- {a}{b}{c}. Brace lists cannot be stored as a variable because tables
- use braces as well, they must be stored as a simple list instead.
- - Table: Think of this as variables nested within another variable. Or
- as variables contained within another variable.
- - List: A table that uses integers for its indexes. Also known as an
- array. The #list command is a utility command for using tables as
- arrays.
- </span><span style='color:#5F5'>
- Simple Variables
- </span><span style='color:#AAA'>
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'>
- #variable {simple} {Hello World!}
- #show $simple
- To see if the 'simple' variable exists you can use &simple which will
- display 0 if the variable does not exist, or the variable's index if
- it exists.
- If you have multiple variables they are sorted alphabetically and
- numerically. While it's not all that relevant for simple variables,
- the first variable has index 1, the second variable index 2, and so
- on.
- Variable names need to start with a letter and only exist of letters,
- numbers, and underscores. If you need to use a non standard variable
- name this is possible using braces.
- </span><span style='color:#FFF'>Example: </span><span style='color:#AAA'>#variable {:)} {Happy Happy!};#show ${:)}
- Variables can be accessed using their index. While primarily useful
- for tables it is possible to do this for simple variables. Use +1 for
- the first variable, +2 for the second variable, etc. Use -1 for the
- last variable, -2 for the second last variable, etc.
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #show The first variable is: ${+1}
- </span><span style='color:#5F5'>
- Removing Variables
- </span><span style='color:#AAA'>
- To remove a variable, use #unvariable or #unvar (every command can be
- abbreviated). It's possible to remove multiple variables at once
- using #unvar {var 1} {var 2} {etc}
- Variables are unique to each session, so if you have multiple
- sessions, removing a variable from one session won't remove it from
- other sessions.
- If you remove a table variable, all variables contained within that
- table variable are removed as well.
- </span><span style='color:#5F5'>
- Simple Lists
- </span><span style='color:#AAA'>
- A simple list is a string that contains semicolon delimited fields.
- Commands can be entered as simple lists, for example:
- #show {a};#show {b} will execute a single line as two commands.
- Several commands take a simple list as their input, these are:
- #foreach, #line substitute, #path load, #list create, and #highlight.
- </span><span style='color:#5F5'>
- Brace Lists
- </span><span style='color:#AAA'>
- A brace list is a string in which fields are delimited with braces.
- Most commands take a brace list for their arguments, for example:
- #session {x} {mud.com} {1234} {mud.tin}. The session command takes
- 4 arguments, the 4th argument (command file) is optional.
- Commands that take a simple list as their input will also accept a
- brace list, keep in mind you'll have to embed the brace list in an
- extra set of braces, for example: #path load {{n}{s}{w}{w}}, which is
- identical to: #path load {n;s;w;w}.
- Brace lists cannot be stored as variables because TinTin++ will
- confuse them with tables. You can convert a brace list to a table
- variable using: #list {bracelist} {create} {{a}{b}{c}} this will look
- internally as: {{1}{a}{2}{b}{3}{c}}. You can then convert this table
- to a simple list using: #list {bracelist} {simplify} {simplelist}
- which will store {a;b;c} in the $simplelist variable.
- Braces cannot easily be escaped in TinTin++. Using \{ or \} will not
- work. The reason for this is due to several factors, but primarily
- backward compatibility. To escape braces you must define them using
- hexadecimal notation using \x7B and \x7D. See #help escape for a list
- of escape options, and the help file will also remind you of how to
- escape braces.
- </span><span style='color:#5F5'>
- Tables
- </span><span style='color:#AAA'>
- Tables are key/value pairs stored within a variable. Tables are also
- known as associative arrays, dictionaries, maps, nested variables,
- structures, and probably a couple of other names. There are several
- ways to create and access tables.
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #variable {friendlist} {{bob}{bob@mail.com} {bubba}{sunset@gmail.com}}
- This will create a friendlist with two entries, the key is the name of
- the friend, the value is the email address of the friend. You can see
- the email address of bob using: #show {$friendlist[bob]}. You can
- also define this table as following:
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'>
- #variable {friendlist[bob]} {bob@mail.com}
- #variable {friendlist[bubba]} {sunset@gmail.com}
- This would create the exact same table as the single line declaration
- used previously. To see the first key in the table use:
- *friendlist[+1], to see the first value in the table use:
- $friendlist[+1]. To see the size of the table use &friendlist[]. To
- print a bracelist of all friends use *friendlist[%*], to print a
- bracelist of all friends whose name starts with the letter 'a' you
- would use: *friendlist[a%*]. Similarly to see the number of friends
- you have whose name ends with the letter 'b' you would use:
- &friendlist[%*b].
- See #help regexp for a brief overview of regular expression options.
- While TinTin++ supports PCRE (perl-compatible regular expressions), it
- embeds them within its own regular expression syntax that is simpler
- and less invasive, while still allowing the full power of PCRE for
- those who need it.
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #unvariable {friendlist[bubba]}
- This would remove {bubba} from the friendlist. To remove the entire
- friendlist you would use: #unvariable {friendlist}.
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #variable {friendlist} {{bob} {{email}{bob@ma.il} {phone}{123456789}}}
- There is no limit to the number of nests, simply add more braces. To
- see Bob's email in this example you would use:
- #show {$friendlist[bob][email]}.
- Lists
- Tables are sorted alphabetically with the exception of numbers which
- are sorted numerically. If you want to determine the sorting order
- yourself you can use use the #list command which helps you to use
- tables as arrays.
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #action {%1 chats %2} {#list chats add {%0}}
- Each time a chat is received it's added to the end of the 'chats' list
- variable. If you type #variable chats this might look like:
- </span><span style='color:#FF5'>#</span><span style='color:#5FF'>VARIABLE </span><span style='color:#A0A'>{</span><span style='color:#FFF'>chats</span><span style='color:#A0A'>}
- {
- {</span><span style='color:#FFF'>1</span><span style='color:#A0A'>} {</span><span style='color:#FFF'>Bubba chats Hi</span><span style='color:#A0A'>}
- {</span><span style='color:#FFF'>2</span><span style='color:#A0A'>} {</span><span style='color:#FFF'>Bob chats Hi bub</span><span style='color:#A0A'>}
- {</span><span style='color:#FFF'>3</span><span style='color:#A0A'>} {</span><span style='color:#FFF'>Bubba chats Bye</span><span style='color:#A0A'>}
- {</span><span style='color:#FFF'>4</span><span style='color:#A0A'>} {</span><span style='color:#FFF'>Bob chats bub bye</span><span style='color:#A0A'>}
- }
- </span><span style='color:#5F5'>
- Parsing
- </span><span style='color:#AAA'>
- There are various ways to parse lists and tables, using either #loop,
- #foreach, #while, or #<number>.
- #loop takes two numeric arguments, incrementing or decrementing the
- first number until it matches the second number. The value of the loop
- counter is stored in the provided variable.
- #foreach takes either a simple list or a brace list as its first
- argument. Foreach will go through each item in the list and store the
- value in the provided variable.
- #while will perform an if check on the first argument, if the result
- is true it will execute the commands in the second argument. Then it
- performs an if check on the first argument again. It will continue to
- repeat until the if check returns 0 or the loop is interrupted with a
- control flow command. It takes special care to avoid infinite loops.
- #<number> will execute the provided argument 'number' times. For
- example: #4 {#show beep! \a}
- Here are some examples.
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #list friends create {bob;bubba;zorro}
- Internally this looks like {{1}{bob}{2}{bubba}{3}{zorro}} and the
- list can be parsed in various ways.
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #foreach {$friends[%*]} {name} {#show $name}
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #foreach {*friends[%*]} {i} {#show $friends[$i]}
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #loop {1} {&friends[]} {i} {#show $friends[+$i]}
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #math i 1;#while {&friends[+$i]} {#show $friends[+$i];
- #math i $i + 1}
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'> #math i 1;#&friends[] {#show $friends[+$i];#math i $i + 1}
- Each of the five examples above performs the same task; printing the
- three names in the friends list.
- If you want to get a better look at what goes on behind the scenes
- while executing scripts you can use '#debug all on'. To stop seeing
- debug information use '#debug all off'.
- </span><span style='color:#5F5'>
- List Tables
- </span><span style='color:#AAA'>
- List tables are also known as databases and the #list command has
- several options to manipulate them.
- For these options to work properly all tables need to have identical
- keys. Here is an example list table.
- #var {friendlist}
- {
- {1}{{name}{bob} {age}{54}}
- {2}{{name}{bubba} {age}{21}}
- {3}{{name}{pamela} {age}{36}}
- }
- To sort the list table by age you would use:
- #list friendlist indexate age
- #list friendlist order
- To remove everyone whose name starts with a 'b' you would use:
- #list friendlist indexate name
- #list friendlist filter {} {b%*}
- The filter option only supports regular expressions. To filter
- using mathematics you would loop through the list backwards:
- #loop &friendlist[] 1 index
- {
- #if {$friendlist[+$index][age] < 30}
- {
- #list friendlist delete $index
- }
- }
- To add an item to a list table there are two options:
- #list friendlist add {{{name}{hobo} {age}{42}}}
- #list friendlist insert -1 {{name}{hobo} {age}{42}}
- </span><span style='color:#5F5'>
- Optimization
- </span><span style='color:#AAA'>
- TinTin++ tables are exceptionally fast while they remain under 100
- items. Once a table grows beyond 10000 items there can be performance
- issues when inserting and removing items in the beginning or middle of
- the table.
- The plan is to eventually implement an indexable and flexible data
- structure for large tables.
- If you load a large table from file it's important to make sure it's
- sorted, when using #write to save a table it's automatically sorted.
- If you notice performance issues on large tables it's relatively easy
- to create a hash table.
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'>
- #alias {sethash}
- {
- #format hash %H %1;
- #math hash1 $hash % 100;
- #math hash2 $hash / 100 % 100;
- #var hashtable[$hash1][$hash2][%1] %2
- }
- #function {gethash}
- {
- #format hash %H %1;
- #math hash1 $hash % 100;
- #math hash2 $hash / 100 % 100;
- #return $hashtable[$hash1][$hash2][%1]
- }
- #alias {test}
- {
- sethash bli hey;
- sethash bla hi;
- sethash blo hello;
- #show The value of bla is: @gethash{bla}
- }
- The above script will rapidly store and retrieve over 1 million items.
- Looping through a hash table is relatively easy as well.
- </span><span style='color:#FFF'>Example:</span><span style='color:#AAA'>
- #alias {showhash}
- {
- #foreach {*hashtable[%*]} {hash1}
- {
- #foreach {*hashtable[$hash1][%*]} {hash2}
- {
- #echo {%-20s = %s}
- {hashtable[$hash1][$hash2]}
- {$hashtable[$hash1][$hash2]}
- }
- }
- }
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
- <a name='LOCAL'></a>
- </span><span style='color:#5F5'> LOCAL
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #local </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>text to fill variable</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The local command sets a local variable. Unlike a regular variable
- a local variable will only stay in memory for the duration of the
- event that created it. They are accessed in the same way as a
- regular variable.
- Commands that store information to a variable will use a local variable
- if it exists.
- Avoid setting the result variable as local in a function.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {swap} {#local x %0;#replace x {e} {u};#show $x}
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a local variable with the #unlocal command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
- <a name='LOG'></a>
- </span><span style='color:#5F5'> LOG
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #log </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The log command allows logging session output to file. You can set the
- data type to either plain, raw, or html with the config command.
- </span><span style='color:#FFF'>#log append <filename>
- </span><span style='color:#AAA'> Start logging to the given file, if the file already exists it won't
- be overwritten and data will be appended to the end.
- </span><span style='color:#FFF'>#log move <filename_1> <filename_2>
- </span><span style='color:#AAA'> Move filename_1 to filename_2. This can be any file and doesn't need
- to be a log file.
- </span><span style='color:#FFF'>#log overwrite <filename>
- </span><span style='color:#AAA'> Start logging to the given file, if the file already exists it will
- be overwritten.
- </span><span style='color:#FFF'>#log off
- </span><span style='color:#AAA'> Stop logging.
- </span><span style='color:#FFF'>#log remove <filename>
- </span><span style='color:#AAA'> Remove the file. This can be any file and doesn't need to be a log
- file.
- </span><span style='color:#FFF'>#log timestamp <format>
- </span><span style='color:#AAA'> When set the timestamp will be prepended to each line logged to file.
- The format will be formatted as a date using the strftime format
- specifiers as described in #help time.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#READ'>read</a>, <a href='#SCAN'>scan</a>, <a href='#TEXTIN'>textin</a>, <a href='#TIME'>time</a> and <a href='#WRITE'>write</a>.
- <a name='LOOP'></a>
- </span><span style='color:#5F5'> LOOP
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #loop </span><span style='color:#FFF'>{</span><span style='color:#AAA'><start></span><span style='color:#FFF'>} {</span><span style='color:#AAA'><finish></span><span style='color:#FFF'>} {</span><span style='color:#AAA'><variable></span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Like a for statement, loop will loop from start to finish incrementing
- or decrementing by 1 each time through. The value of the loop counter
- is stored in the provided variable, which you can use in the commands.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #loop 1 3 loop {get all $loop.corpse}
- This equals 'get all 1.corpse;get all 2.corpse;get all 3.corpse'.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #loop 3 1 cnt {drop $cnt\.key}
- This equals 'drop 3.key;drop 2.key;drop 1.key'.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LIST'>list</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
- <a name='MACRO'></a>
- </span><span style='color:#5F5'> MACRO
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #macro </span><span style='color:#FFF'>{</span><span style='color:#AAA'>key sequence</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Macros allow you to make tintin respond to function keys.
- The key sequence send to the terminal when pressing a function key
- differs for every OS and terminal. To find out what sequence is send
- you can enable the CONVERT META config option.
- Another option is pressing ctrl-v, which will enable CONVERT META for
- the next key pressed.
- If you only want a key sequence to trigger at the start of an input
- line prefix the key sequence with ^.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #macro {(press ctrl-v)(press F1)} {#show \e[2J;#buffer lock}
- Clear the screen and lock the window when you press F1, useful when the
- boss is near.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #macro {\eOM} {#cursor enter}
- Makes the keypad's enter key work as an enter in keypad mode.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #macro {^nn} {n}
- Makes pressing n twice on an empty line execute north.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: Not all terminals properly initialize the keypad key sequences.
- If this is the case you can still use the keypad, but instead of the
- arrow keys use ctrl b, f, p, and n.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a macro with the #unmacro command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALIAS'>alias</a>, <a href='#CURSOR'>cursor</a>, <a href='#HISTORY'>history</a>, <a href='#KEYPAD'>keypad</a>, <a href='#SPEEDWALK'>speedwalk</a> and <a href='#TAB'>tab</a>.
- <a name='MAP'></a>
- </span><span style='color:#5F5'> MAP
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #map
- The map command is the backbone of the auto mapping feature.
- </span><span style='color:#FFF'>#map at <exit|vnum> <command>
- </span><span style='color:#AAA'> Execute the command at the given exit or vnum.
- </span><span style='color:#FFF'>#map center <x> <y> <z>
- </span><span style='color:#AAA'> Sets displaying center of the map viewer, default is 0 0 0.
- </span><span style='color:#FFF'>#map color <field> [value]
- </span><span style='color:#AAA'> Sets the map color for the given color field. Use #map color reset
- to restore colors to default.
- </span><span style='color:#FFF'>#map create <size>
- </span><span style='color:#AAA'> Creates a new map and room 1. The default size is 50000 rooms.
- </span><span style='color:#FFF'>#map destroy {area|world} <name>
- </span><span style='color:#AAA'> Deletes the map or given area.
- </span><span style='color:#FFF'>#map delete <exit|vnum>
- </span><span style='color:#AAA'> Deletes the room for the given exit or vnum.
- </span><span style='color:#FFF'>#map dig <exit|vnum> [new|<vnum>]
- </span><span style='color:#AAA'> Creates an exit for the given exit name. If no valid exit name
- is given or no existing room is found a new room is created.
- Useful for portal links and other alternative forms of
- transportation. If the 'new' argument is provided all existing
- rooms are ignored and a new room is created. If a room vnum is
- given as the second argument an exit will be created leading
- to the given room vnum. If the room vnum doesn't exist a new
- room is created.
- </span><span style='color:#FFF'>#map entrance <exit> [option] [arg]
- </span><span style='color:#AAA'> Set the entrance data for the given exit. You must specify a
- valid two-way exit for this to work.
- </span><span style='color:#FFF'>#map exit <exit> <option> <arg>
- </span><span style='color:#AAA'> Set the exit data. Useful with a closed door where you can
- set the exit command: '#map exit e command {open east;e}'.
- Use #map exit <exit> for a list of available options.
- Use #map exit <eixt> save to save the exit data.
- </span><span style='color:#FFF'>#map exitflag <exit> <AVOID|BLOCK|HIDE|INVIS> [on|off]
- </span><span style='color:#AAA'> Set exit flags. See #map roomflag for more info.
- </span><span style='color:#FFF'>#map explore <exit>
- </span><span style='color:#AAA'> Explores the given exit until a dead end or an
- intersection is found. The route is stored in #path and can
- subsequently be used with #walk. Useful for long roads.
- </span><span style='color:#FFF'>#map find <name> <exits> <desc> <area> <note> <terrain> <flag>
- </span><span style='color:#AAA'> searches for the given room name. If found the shortest path
- from your current location to the destination is calculated.
- The route is stored in #path and can subsequently be used with
- the various #path commands. If #map flag nofollow is set it
- will store the exit commands instead of the exit names.
- If <exits> is provided all exits must be matched, if
- <roomdesc>, <roomarea> or <roomnote> or <roomterrain> or
- <roomflag> is provided these are matched as well against the
- room to be found.
- These search options are also available for the at, delete,
- goto, link, list and run commands.
- </span><span style='color:#FFF'>#map flag asciigraphics
- </span><span style='color:#AAA'> Takes up more space but draws a more detailed
- map that displays the ne se sw nw exits and room symbols.
- </span><span style='color:#FFF'>#map flag asciivnums
- </span><span style='color:#AAA'> Display room vnums if asciigraphics is enabled.
- </span><span style='color:#FFF'>#map flag nofollow
- </span><span style='color:#AAA'> When you enter movement commands the map will no longer
- automatically follow along. Useful for MSDP and GMCP
- automapping scripts. When you use #map find in nofollow
- mode it will store the exit command instead of the exit
- name into the path.
- </span><span style='color:#FFF'>#map flag static
- </span><span style='color:#AAA'> Will make the map static so new rooms are no longer
- created when walking into an unmapped direction. Useful when
- you're done mapping and regularly bump into walls accidentally
- creating a new room. #map dig etc will still work.
- </span><span style='color:#FFF'>#map flag vtgraphics
- </span><span style='color:#AAA'> Enables vt line drawing on some terminals
- </span><span style='color:#FFF'>#map flag vtmap
- </span><span style='color:#AAA'> Will enable the vtmap which is shown in the top split
- screen if you have one. You can create a 16 rows high top
- screen by using '#split 16 1'.
- </span><span style='color:#FFF'>#map get <option> <variable> [vnum]
- </span><span style='color:#AAA'> Store a map value into a variable, if no vnum is given the
- current room is used. Use 'all' as the option to store all
- values as a table.
- </span><span style='color:#FFF'>#map get roomexits <variable>
- </span><span style='color:#AAA'> Store all room exits into variable.
- </span><span style='color:#FFF'>#map global <room vnum>
- </span><span style='color:#AAA'> Set the vnum of a room that contains global
- exits, for example an exit named 'recall' that leads to the
- recall location. The room can contain multiple exits, in case
- there are multiple commands that are similar to recall.
- </span><span style='color:#FFF'>#map goto <room vnum> [dig]
- </span><span style='color:#AAA'> Takes you to the given room vnum, with the
- dig argument a new room will be created if none exists.
- </span><span style='color:#FFF'>#map goto <name> <exits> <desc> <area> <note> <terrain>
- </span><span style='color:#AAA'> Takes you to the given room name, if you provide exits those
- must match.
- </span><span style='color:#FFF'>#map info [save]
- </span><span style='color:#AAA'> Gives information about the map and room you are in. If the save
- argument is given the map data is saved to the info[map] variable.
- </span><span style='color:#FFF'>#map insert <direction> [roomflag]
- </span><span style='color:#AAA'> Insert a room in the given direction. Most useful for inserting
- void rooms.
- </span><span style='color:#FFF'>#map jump <x> <y> <z>
- </span><span style='color:#AAA'> Jump to the given coordinate, which is relative
- to your current room.
- </span><span style='color:#FFF'>#map landmark <name> <vnum> [description] [size]
- </span><span style='color:#AAA'> Creates an alias to target the provided room vnum. The
- description is optional and should be brief. The size
- determines from how many rooms away the landmark can be
- seen.
- </span><span style='color:#FFF'>#map leave
- </span><span style='color:#AAA'> Makes you leave the map. Useful when entering a maze. You
- can return to your last known room using #map return.
- </span><span style='color:#FFF'>#map legend <legend> [symbols|reset]
- #map legend <legend> <index> [symbol]
- </span><span style='color:#AAA'> There are several legends and sub-legends available for
- drawing maps to suit personal preference and character sets.
- Use #map legend all to see the legend as currently defined.
- Use #map legend <legend> <reset> to set the default legend.
- Use #map legend <legend> <character list> to create a custom
- legend. Custom legends are automatically saved and loaded by
- using #map read and #map write.
- </span><span style='color:#FFF'>#map link <direction> <room name> [both]
- </span><span style='color:#AAA'> Links two rooms. If the both
- argument and a valid direction is given the link is two ways.
- </span><span style='color:#FFF'>#map list <name> <exits> <desc> <area> <note> <terrain>
- </span><span style='color:#AAA'> Lists all matching rooms and their distance. The following
- search keywords are supported.
- {distance} <arg> will list rooms within given distance.
- {roomarea} <arg> will list rooms with matching area name.
- {roomdesc} <arg> will list rooms with matching room desc.
- {roomexits} <arg> will list rooms with identical room exits.
- Use * as an exit to ignore non pathdir exits.
- {roomflag} <arg> will list rooms with matching room flags.
- {roomid} <arg> will list rooms with identical id name.
- {roomname} <arg> will list rooms with matching room name.
- {roomnote} <arg> will list rooms with matching room note.
- {roomterrain} <arg> will list rooms with matching room terrain.
- {variable} <arg> will save the output to given variable.
- </span><span style='color:#FFF'>#map map <rows> <cols> <append|overwrite|list|variable> <name>
- </span><span style='color:#AAA'> Display a drawing of the map of the given height and width.
- All arguments are optional. If {rows} or {cols} are set to {}
- or {0} they will use the scrolling window size as the default.
- If {rows} or {cols} are a negative number this number is
- subtracted from the scrolling window size.
- </span><span style='color:#FFF'>#map map <rows> <cols> draw <square>
- </span><span style='color:#AAA'> Display a drawing of the map of the given height and width.
- The square argument exists of 4 numbers formulating the top
- left corner and bottom right corner of a square.
- If you use {append|overwrite} the map is written to the specified
- file name which must be given as the 4th argument.
- If you use {list|variable} the map is saved to the specified
- variable name.
- </span><span style='color:#FFF'>#map move <direction>
- </span><span style='color:#AAA'> This does the same as an actual movement command, updating your
- location on the map and creating new rooms. Useful when you are
- following someone and want the map to follow along. You will need
- to create actions using '#map move', for this to work.
- </span><span style='color:#FFF'>#map offset <row> <col> <row> <col>
- </span><span style='color:#AAA'> Define the offset of the vtmap as a square. Without an argument
- it defaults to the entire top split region.
- </span><span style='color:#FFF'>#map read <filename>
- </span><span style='color:#AAA'> Will load the given map file.
- </span><span style='color:#FFF'>#map resize <size>
- </span><span style='color:#AAA'> Resize the map, setting the maximum number of rooms.
- </span><span style='color:#FFF'>#map return
- </span><span style='color:#AAA'> Returns you to your last known room after leaving the map
- or loading a map.
- </span><span style='color:#FFF'>#map roomflag <flags> <get|on|off>
- </span><span style='color:#AAA'>
- </span><span style='color:#FFF'>#map roomflag avoid
- </span><span style='color:#AAA'> When set, '#map find' will avoid a route leading
- through that room. Useful for locked doors, etc.
- </span><span style='color:#FFF'>#map roomflag block
- </span><span style='color:#AAA'> When set the automapper will prevent movement into or through
- the room. Useful for death traps.
- </span><span style='color:#FFF'>#map roomflag hide
- </span><span style='color:#AAA'> When set, '#map' will not display the map beyond
- this room. When mapping overlapping areas or areas that aren't
- build consistently you need this flag as well to stop
- auto-linking, unless you use void rooms.
- </span><span style='color:#FFF'>#map roomflag invis
- </span><span style='color:#AAA'> When set the room will be colored with the INVIS color.
- </span><span style='color:#FFF'>#map roomflag leave
- </span><span style='color:#AAA'> When entering a room with this flag, you will
- automatically leave the map. Useful when set at the entrance
- of an unmappable maze.
- </span><span style='color:#FFF'>#map roomflag noglobal
- </span><span style='color:#AAA'> This marks a room as not allowing global
- transportation, like norecall rooms that block recall.
- </span><span style='color:#FFF'>#map roomflag void
- </span><span style='color:#AAA'> When set the room becomes a spacing room that can
- be used to connect otherwise overlapping areas. A void room
- should only have two exits. When entering a void room you are
- moved to the connecting room until you enter a non void room.
- </span><span style='color:#FFF'>#map roomflag static
- </span><span style='color:#AAA'> When set the room will no longer be autolinked
- when walking around. Useful for mapping mazes.
- </span><span style='color:#FFF'>#map run <room name> [delay]
- </span><span style='color:#AAA'> Calculates the shortest path to the destination and walks you
- there. The delay is optional and requires using braces. Besides
- the room name a list of exits can be provided for more precise
- matching.
- </span><span style='color:#FFF'>#map set <option> <value> [vnum]
- </span><span style='color:#AAA'> Set a map value for your current room, or given room if a room
- vnum is provided.
- </span><span style='color:#FFF'>#map sync <filename>
- </span><span style='color:#AAA'> Similar to #map read except the current map won't be unloaded
- or overwritten.
- </span><span style='color:#FFF'>#map terrain <name> <symbol> [flag]
- </span><span style='color:#AAA'> Set the terrain symbol and flag.
- </span><span style='color:#FFF'>#map terrain <name> <symbol> [DENSE|SPARSE|SCANT]
- </span><span style='color:#AAA'> Determine symbol density, omit for the default.
- </span><span style='color:#FFF'>#map terrain <name> <symbol> [NARROW|WIDE|VAST]
- </span><span style='color:#AAA'> Determine symbol spread range, omit for the default.
- </span><span style='color:#FFF'>#map terrain <name> <symbol> [FADEIN|FADEOUT]
- </span><span style='color:#AAA'> Determine symbol spread density, omit for the default.
- </span><span style='color:#FFF'>#map terrain <name> <symbol> [DOUBLE]
- </span><span style='color:#AAA'> You're using two characters for the symbol.
- </span><span style='color:#FFF'>#map travel <direction> <delay>
- </span><span style='color:#AAA'> Follows the direction until a dead end or an intersection is
- found. Use braces around the direction if you use the delay,
- which will add the given delay between movements.
- Use #path stop to stop a delayed run.
- </span><span style='color:#FFF'>#map undo
- </span><span style='color:#AAA'> Will undo your last move. If this created a room or a link
- they will be deleted, otherwise you'll simply move back a
- room. Useful if you walked into a non-existent direction.
- </span><span style='color:#FFF'>#map uninsert <direction>
- </span><span style='color:#AAA'> Exact opposite of the insert command.
- </span><span style='color:#FFF'>#map unlandmark <name>
- </span><span style='color:#AAA'> Removes a landmark.
- </span><span style='color:#FFF'>#map unlink <direction> [both]
- </span><span style='color:#AAA'> Will remove the exit, this isn't two way so you can have the
- properly display no exit rooms and mazes.
- If you use the both argument the exit is removed two-ways.
- </span><span style='color:#FFF'>#map unterrain <name>
- </span><span style='color:#AAA'> Removes a terrain.
- </span><span style='color:#FFF'>#map update [now]
- </span><span style='color:#AAA'> Sets the vtmap to update within the next 0.1 seconds, or
- instantly with the now argument.
- </span><span style='color:#FFF'>#map vnum <low> [high]
- </span><span style='color:#AAA'> Change the room vnum to the given number, if a range is
- provided the first available room in that range is selected.
- </span><span style='color:#FFF'>#map write <filename> [force]
- </span><span style='color:#AAA'> Will save the map, if you want to save a map to a .tin file
- you must provide the {force} argument.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#PATH'>path</a>, <a href='#PATHDIR'>pathdir</a> and <a href='#SPEEDWALK'>speedwalk</a>.
- <a name='MAPPING'></a>
- </span><span style='color:#5F5'> MAPPING
- </span><span style='color:#AAA'>
- TinTin++ has a powerful automapper that uses a room system similar to
- Diku MUDs which means that odd map layouts and weird exit
- configurations aren't a problem. The mapper provides tools to improve
- the visual map display. For basic path tracking see #help PATH.
- </span><span style='color:#FFF'> #map create [size]
- </span><span style='color:#AAA'>
- This command creates the initial map. The size is 50,000 by default
- and can be changed at any time with the #map resize command. If you
- play a MUD that uses MSDP or GMCP to provide room numbers you'll have
- to increase it to the highest reported room number. Increasing the
- size of the map doesn't decrease performance.
- </span><span style='color:#FFF'> #map goto <location>
- </span><span style='color:#AAA'>
- When you create the map you are not automatically inside the map. By
- default room number (vnum) 1 is created, so you can go to it using
- #map goto 1. Once you are inside the map new rooms are automatically
- created as you move around. Movement commands are defined with the
- pathdir command. By default n, ne, e, se, s, sw, w, nw, u, d are
- defined.
- </span><span style='color:#FFF'>
- #map map <rows> <cols> <append|overwrite|list|variable> <name>
- </span><span style='color:#AAA'>
- To see the map you can use #map map. It's annoying to have to
- constantly type #map map however. Instead it's possible to use #split
- to display a vt100 map. To do so execute:
- </span><span style='color:#FFF'>#split 16 1
- #map flag vtmap on</span><span style='color:#AAA'>
- The first command sets the top split lines to 16 and the bottom split
- line to 1. If you want a smaller or larger map display you can use a
- different value than 16.
- If you don't need to display diagonal exits and prefer a more compact
- look you can use #map flag AsciiGraphics off. This will enable the
- standard display which uses UTF-8 box drawing characters, results may
- vary depending on the font used.
- If your terminal supports UTF-8 you can also give #Map flag unicode on
- a try.
- If you want to display the map in a different location of the screen
- use something like:
- </span><span style='color:#FFF'>#split 0 1 0 -80
- #map offset 1 81 -4 -1</span><span style='color:#AAA'>
- This will display the map on the right side of the screen, if the
- width of the screen is wide enough.
- </span><span style='color:#FFF'>
- #map undo
- </span><span style='color:#AAA'>
- If you accidentally walk into the wall on your MUD the mapper will
- still create a new room. You can easily fix this mistake by using
- #map undo. If you want to move around on the map without moving around
- on the MUD you can use: #map move {direction}. To delete a room
- manually you can use: #map delete {direction}. To create a room
- manually you can use: #map dig {direction}.
- </span><span style='color:#FFF'>
- #map write <filename>
- </span><span style='color:#AAA'>
- You can save your map using #map write, to load a map you can use
- #map read <filename>.
- </span><span style='color:#FFF'>
- #map set <option> <value>
- </span><span style='color:#AAA'>
- You can set the room name using #map set roomname <name>. You either
- have to do this manually or create triggers to set the room name
- automatically. Once the room name is set you can use #map goto with
- the room name to visit it. If there are two rooms with the same name
- #map goto will go to the most nearby room. If you want to always go
- to the same room you should memorize the room number. You can further
- narrow down the matches by providing additional arguments, for example:
- </span><span style='color:#FFF'>
- #map goto {dark alley} {roomexits} {n;e} {roomarea} {Haddock Ville}
- </span><span style='color:#AAA'>
- You can set the room weight using #map set roomweight {value}. The
- weight by default is set to 1.0 and it represents the difficulty of
- traversing the room. If you have a lake as an alternative route, and
- traversing water rooms is 4 times slower than regular rooms, then you
- could set the weight of the lake rooms to 4.0. If the lake is 3 rooms
- wide the total weight is 12. If walking around the lake has a weight
- less than 12 the mapper will go around the lake, if the weight is
- greater than 12 the mapper will take a route through the lake.
- You can set the room symbol using #map set roomsymbol {value}. The
- symbol should be one, two, or three characters, which can be
- colorized. You can for example mark shops with an 'S' and colorize the
- 'S' depending on what type of shop it is.
- </span><span style='color:#FFF'>
- #map run <location> <delay>
- </span><span style='color:#AAA'>
- The run command will have tintin find the shortest path to the given
- location and execute the movement commands to get there. You can
- provide a delay in seconds with floating point precision, for example:
- </span><span style='color:#FFF'>#map run {dark alley} {0.5}</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>
- #map insert {direction} {flag}
- </span><span style='color:#AAA'>
- The insert command is useful for adding spacer rooms called void rooms.
- Often rooms overlap, and by adding void rooms you can stretch out
- exits. For example: #map insert north void. You cannot enter void rooms
- once they've been created, so you'll have to use #map info in an
- adjacent room to find the room vnum, then use #map goto {vnum} to
- visit.
- It's also possible to align rooms using void rooms. This is easily
- done using #map insert north void.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MAP'>map</a>, <a href='#PATH'>path</a> and <a href='#PATHDIR'>pathdir</a>.
- <a name='MATH'></a>
- </span><span style='color:#5F5'> MATH
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #math </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>expression</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Performs math operations and stores the result in a variable. The math
- follows a C-like precedence, as follows, with the top of the list
- having the highest priority.
- Operators Priority Function
- ------------------------------------------------
- ! 0 logical not
- ~ 0 bitwise not
- d 1 integer random dice
- * 2 integer multiply
- ** 2 integer power
- / 2 integer divide
- // 2 integer sqrt // 2 or cbrt // 3
- % 2 integer modulo
- + 3 integer addition
- - 3 integer subtraction
- << 4 bitwise shift
- >> 4 bitwise shift
- .. 4 integer range
- > 5 logical greater than
- >= 5 logical greater than or equal
- < 5 logical less than
- <= 5 logical less than or equal
- == 6 logical equal (can use regex)
- === 6 logical equal (never regex)
- != 6 logical not equal (can use regex)
- !== 6 logical not equal (never regex)
- & 7 bitwise and
- ^ 8 bitwise xor
- | 9 bitwise or
- && 10 logical and
- ^^ 11 logical xor
- || 12 logical or
- ? 13 logical ternary if (unfinished code)
- : 14 logical ternary else
- True is any non-zero number, and False is zero. Parentheses () have
- highest precedence, so inside the () is always evaluated first.
- Strings must be enclosed in { } and use regex with == and !=,
- in the case of <= and >= the alphabetic order is compared.
- The #if and #switch commands use #math. Several commands accepting
- integer input allow math operations as well.
- Floating point precision is added by using the decimal . operator.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #math {heals} {$mana / 40}
- Assuming there is a variable $mana, divides its value by 40 and stores
- the result in $heals.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {^You receive %0 experience} {updatexp %0}
- #alias updatexp {#math {xpneed} {$xpneed - %0}
- Let's say you have a variable which stores xp needed for your next
- level. The above will modify that variable after every kill, showing
- the amount still needed.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #action {%0 tells %1}
- {#if {{%0} == {Bubba} && $afk} {reply I'm away, my friend.}}
- When you are away from keyboard, it will only reply to your friend.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CAT'>cat</a>, <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATHEMATICS'>mathematics</a>, <a href='#REPLACE'>replace</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
- <a name='MATHEMATICS'></a>
- </span><span style='color:#5F5'> MATHEMATICS
- </span><span style='color:#FFF'>Number operations
- </span><span style='color:#AAA'> Operators Priority Function
- ------------------------------------------------
- ! 0 logical not
- ~ 0 bitwise not
- * 1 integer multiply
- ** 1 integer power
- / 1 integer divide
- // 1 integer sqrt // 2 or cbrt // 3
- % 1 integer modulo
- d 1 integer random dice roll
- + 2 integer addition
- - 2 integer subtraction
- << 3 bitwise shift
- >> 3 bitwise shift
- > 4 logical greater than
- >= 4 logical greater than or equal
- < 4 logical less than
- <= 4 logical less than or equal
- == 5 logical equal
- != 5 logical not equal
- & 6 bitwise and
- ^ 7 bitwise xor
- | 8 bitwise or
- && 9 logical and
- ^^ 10 logical xor
- || 11 logical or
- Operator priority can be ignored by using parentheses, for example (1 + 1) * 2
- equals 4, while 1 + 1 * 2 equals 3.
- </span><span style='color:#FFF'>String operations</span><span style='color:#AAA'>
- Operators Priority Function
- ------------------------------------------------
- > 4 alphabetical greater than
- >= 4 alphabetical greater than or equal
- < 4 alphabetical less than
- <= 4 alphabetical less than or equal
- == 5 alphabetical equal using regex
- != 5 alphabetical not equal using regex
- === 5 alphabetical equal
- !== 5 alphabetical not equal
- Strings must be encased in double quotes or braces. The > >= < <= operators
- perform basic string comparisons. The == != operators perform regular
- expressions, with the argument on the left being the string, and the argument
- on the right being the regex. For example {bla} == {%*a} would evaluate as 1.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MATH'>math</a> and <a href='#REGEXP'>regexp</a>.
- <a name='MESSAGE'></a>
- </span><span style='color:#5F5'> MESSAGE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #message </span><span style='color:#FFF'>{</span><span style='color:#AAA'>listname</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>on</span><span style='color:#FFF'>|</span><span style='color:#AAA'>off</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- This will show the message status of all your lists if typed without an
- argument. If you set for example VARIABLES to OFF you will no longer be
- spammed when correctly using the #VARIABLE and #UNVARIABLE commands.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CLASS'>class</a>, <a href='#DEBUG'>debug</a>, <a href='#IGNORE'>ignore</a>, <a href='#INFO'>info</a> and <a href='#KILL'>kill</a>.
- <a name='METRIC SYSTEM'></a>
- </span><span style='color:#5F5'> METRIC SYSTEM
- </span><span style='color:#AAA'>
- Name Symbol Factor
- --------------------------------------------------
- Mega M 1 000 000
- Kilo K 1 000
- milli m 0.001
- micro u 0.000 001
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ECHO'>echo</a>, <a href='#FORMAT'>format</a> and <a href='#MATH'>math</a>.
- <a name='MOUSE'></a>
- </span><span style='color:#5F5'> MOUSE
- </span><span style='color:#AAA'>
- To enable xterm mouse tracking use #CONFIG MOUSE ON.
- To see mouse events as they happen use #CONFIG MOUSE INFO. This
- information can then be used to create mouse events with the #event
- command and buttons with the #button command.
- Visual buttons and pop-ups can be drawn on the screen with the #draw
- command.
- The input field can be changed and renamed using #screen inputregion,
- which allows creating named events for enter handling.
- Links can be created using the MSLP protocol which will generate link
- specific events when clicked.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUTTON'>button</a>, <a href='#DRAW'>draw</a>, <a href='#EVENT'>event</a> and <a href='#MSLP'>MSLP</a>.
- <a name='MSDP'></a>
- </span><span style='color:#5F5'> MSDP
- </span><span style='color:#AAA'>
- MSDP (Mud Server Data Protocol) is part of the #port functionality.
- See #help event for additional documentation as all MSDP events are
- available as regular events.
- Available MSDP events can be queried using the MSDP protocol
- as described in the specification.
- </span><span style='color:#FFF'>
- https://tintin.sourceforge.io/protocols/msdp
- Related</span><span style='color:#AAA'>: <a href='#EVENT'>event</a> and <a href='#PORT'>port</a>.
- <a name='MSLP'></a>
- </span><span style='color:#5F5'> MSLP
- </span><span style='color:#AAA'>
- MSLP (Mud Server Link Protocol) requires enabling #config mouse on,
- and creating the appropriate LINK events.
- The simplest link can be created by surrounding a keyword with the
- \e[4m and \e[24m tags.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #substitute {\b{n|e|s|w|u|d}\b} {\e[4m%1\[24m}
- This would display 'Exits: n, e, w.' as 'Exits: n, e, w.'.
- When clicked this would trigger the PRESSED LINK MOUSE BUTTON ONE
- event of which %4 will hold the link command and %6 holds the
- link name, which in the case of a simple link will be empty.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #event {PRESSED LINK MOUSE BUTTON ONE} {#send {%4}}
- Keep in mind that if you change PRESSED to DOUBLE-CLICKED the link
- will only work if the text does not scroll in between clicks.
- If you want to create a complex link use an OSC code.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {\bsmurf\b} {\e]68;1;;say I hate smurfs!\a\e[4m%0\e[24m}
- If you have the LINK event of the previous example set, the %4
- argument will contain 'say I hate smurfs!'.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {\bgoblin\b} {\e]68;1;SEND;kill goblin\a\e[4m%0\e[24m}
- Notice the previous instance of ;; has been replaced with ;SEND;
- which will name the link. This will generate a named event.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #event {PRESSED LINK SEND MOUSE BUTTON ONE} {#send {%4}}
- By naming links you can organize things a little bit better instead
- of tunneling everything through the same event.
- Keep in mind that the server is allowed to use \e]68;1;\a as well,
- subsequently various security measures are in place.
- To create secure links, which are filtered out when send by a server,
- you need to use \e]68;2;\a, and they instead trigger the SECURE LINK
- event.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {%* tells %*} {\e]68;2;EXEC;#cursor set tell %1 \a\e[4m%0\e[24m}
- </span><span style='color:#FFF'> </span><span style='color:#AAA'> #event {PRESSED SECURE LINK EXEC MOUSE BUTTON ONE} {%4}
- This would make you start a reply when clicking on a tell.
- </span><span style='color:#FFF'>Website</span><span style='color:#AAA'>: https://tintin.mudhalla.net/protocols/mslp
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#EVENT'>event</a> and <a href='#PORT'>port</a>.
- <a name='NOP'></a>
- </span><span style='color:#5F5'> NOP
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #nop </span><span style='color:#FFF'>{</span><span style='color:#AAA'>whatever</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Short for 'no operation', and is ignored by the client. It is useful
- for commenting in your coms file, any text after the nop and before a
- semicolon or end of line is ignored. You shouldn't put braces { } in it
- though, unless you close them properly.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: By using braces you can comment out multiple lines of code in a script
- file.
- For commenting out an entire trigger and especially large sections of
- triggers you would want to use /* text */
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #nop This is the start of my script file.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#READ'>read</a>
- <a name='PARSE'></a>
- </span><span style='color:#5F5'> PARSE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #parse </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Like the loop statement, parse will loop from start to finish through
- the given string. The value of the current character is stored in the
- provided variable.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #parse {hello world} {char} {#show $char}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LIST'>list</a>, <a href='#LOOP'>loop</a>, <a href='#REPEAT'>repeat</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
- <a name='PATH'></a>
- </span><span style='color:#5F5'> PATH
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #path </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- create Will clear the path and start path mapping.
- delete Will delete the last move of the path.
- describe Describe the path and current position.
- destroy Will clear the path and stop path mapping.
- get Will get either the length or position.
- goto Go the the start, end, or given position index.
- insert Add the given argument to the path.
- load Load the given variable as the new path.
- map Display the map and the current position.
- move Move the position forward or backward. If a number is given
- the position is changed by the given number of steps.
- run Execute the current path, with an optional floating point
- delay in seconds as the second argument.
- save Save the path to a variable. You must specify whether you
- want to save the path 'forward' or 'backward'.
- swap Switch the forward and backward path.
- unzip Load the given speedwalk as the new path.
- walk Take one step forward or backward.
- zip Turn the path into a speedwalk.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #path ins {unlock n;open n} {unlock s;open s}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MAP'>map</a>, <a href='#PATHDIR'>pathdir</a> and <a href='#SPEEDWALK'>speedwalk</a>.
- <a name='PATHDIR'></a>
- </span><span style='color:#5F5'> PATHDIR
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #pathdir </span><span style='color:#FFF'>{</span><span style='color:#AAA'>dir</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>reversed dir</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>coord</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- By default tintin sets the most commonly used movement commands
- meaning you generally don't really have to bother with pathdirs.
- Pathdirs are used by the #path and #map commands.
- The first argument is a direction, the second argument is the reversed
- direction. The reverse direction of north is south, etc.
- The third argument is a spatial coordinate which is a power of two.
- 'n' is 1, 'e' is 2, 's' is 4, 'w' is '8', 'u' is 16, 'd' is 32. The
- exception is for compound directions, whose value should be the sum
- of the values of each cardinal direction it is composed of. For
- example, 'nw' is the sum of 'n' and 'w' which is 1 + 8, so 'nw'
- needs to be given the value of 9. This value is required for the
- #map functionality to work properly.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #pathdir {ue} {dw} {18}
- #pathdir {dw} {ue} {40}
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a pathdir with the #unpathdir command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MAP'>map</a> and <a href='#PATH'>path</a>.
- <a name='PCRE'></a>
- </span><span style='color:#5F5'> PCRE
- </span><span style='color:#AAA'>
- A regular expression, regex or regexp is a sequence of characters that
- defines a search pattern. Since the 1980s, different syntaxes for
- writing regular expressions exist, the two most widely used ones being
- the POSIX syntax and the similar but more advanced Perl standard.
- TinTin++ supports the Perl standard known as PCRE (Perl Compatible
- Regular Expressions).
- Regular expressions are an integral part of TinTin++, but keep in mind
- that tintin doesn't allow you to use regular expressions directly,
- instead it uses a simpler intermediate syntax that still allows more
- complex expressions when needed.
- Commands that utilize regular expressions are: action, alias, elseif,
- gag, grep, highlight, if, kill, local, math, prompt, regexp, replace,
- substitute, switch, variable and while. Several other commands use
- regular expressions in minor ways. Fortunately the basics are very
- easy to learn.
- </span><span style='color:#FFF'> TinTin++ Regular Expression</span><span style='color:#AAA'>
- The following support is available for regular expressions.
- ^ match start of line.
- $ match of end of line.
- \ escape one character.
- %1-%99 match of any text, stored in the corresponding index.
- %0 should be avoided in the regex, contains all matched text.
- { } embed a perl compatible regular expression, matches are stored.
- %!{ } embed a perc compatible regular expression, matches are not stored.
- [ ] . + | ( ) ? * are treated as normal text unless used within braces. Keep in
- mind that { } is replaced with ( ) automatically unless %!{ } is used.
- </span><span style='color:#FFF'>
- TinTin++ Description POSIX</span><span style='color:#AAA'>
- %d Match zero to any number of digits ([0-9]*?)
- %D Match zero to any number of non-digits ([^0-9]*?)
- %i Matches become case insensitive (?i)
- %I Matches become case sensitive (default) (?-i)
- %s Match zero to any number of spaces ([\r\n\t ]*?)
- %w Match zero to any number of word characters ([A-Za-z0-9_]*?)
- %W Match zero to any number of non-word characters ([^A-Za-z0-9_]*?)
- %? Match zero or one character (.??)
- %. Match one character (.)
- %+ Match one to any number of characters (.+?)
- %* Match zero to any number of characters (.*?)
- </span><span style='color:#FFF'>
- Variables</span><span style='color:#AAA'>
- If you use %1 in an action to perform a match the matched string is
- stored in the %1 variable which can be used in the action body.
- Example: #act {%1 says 'Tickle me'} {tickle %1}
- If you use %2 the match is stored in %2, etc. If you use an unnumbered
- match like %* or %S the match is stored at the last used index
- incremented by one.
- Example: #act {%3 says '%*'} {#if {"%4" == "Tickle me"} {tickle %3}}
- The maximum variable index is 99. If you begin an action with %* the
- match is stored in %1. You should never use %0 in the trigger part of
- an action, when used in the body of an action %0 contains all the parts
- of the string that were matched.
- To prevent a match from being stored use %!*, %!w, etc.
- </span><span style='color:#FFF'>
- Perl Compatible Regular Expressions</span><span style='color:#AAA'>
- You can embed a PCRE (Perl Compatible Regular Expression) using curley
- braces { }, these braces are replaced with parentheses ( ) unless you
- use %!{ }.
- </span><span style='color:#FFF'>
- Or</span><span style='color:#AAA'>
- You can separate alternatives within a PCRE using the | character.
- Example: #act {%* raises {his|her|its} eyebrows.} {say 42..}
- </span><span style='color:#FFF'>
- Brackets</span><span style='color:#AAA'>
- You can group alternatives and ranges within a PCRE using brackets.
- Example: #act {%* says 'Who is number {[1-9]}?} {say $number[%2] is number %2}
- The example only triggers if someone provides a number between 1 and
- 9. Any other character will cause the action to not trigger.
- Example: #act {%* says 'Set password to {[^0-9]*}$} {say The password must
- contain at least one number, not for security reasons, but just to
- annoy you.} {4}
- When the ^ character is used within brackets it creates an inverse
- search, [^0-9] matches every character except for a number between 0
- and 9.
- </span><span style='color:#FFF'>
- Quantification</span><span style='color:#AAA'>
- A quantifier placed after a match specifies how often the match is
- allowed to occur.
- ? repeat zero or one time.
- * repeat zero or multiple times.
- + repeat once or multiple times.
- {n} repeat exactly n times, n must be a number.
- {n,} repeat at least n times, n must be a number.
- {n,o} repeat between n and o times, n and o must be a number.
- Example: #act {%* says 'Who is number {[1-9][0-9]{0,2}}?} {Say $number[%2] is
- number %2}
- The example only triggers if someone provides a number between 1 and
- 999.
- </span><span style='color:#FFF'>Parantheses</span><span style='color:#AAA'>
- TinTin Regular Expressions automatically add parenthesis, for example
- %* translates to (.*?) in PCRE unless the %* is found at the start or
- end of the line, in which cases it translates to (.*). Paranthesis in
- PCRE causes a change in execution priority similar to mathematical
- expressions, but parentheses also causes the match to be stored to a
- variable.
- When nesting multiple sets of parentheses each nest is assigned its
- numerical variable in order of appearance.
- Example: #act {%* chats '{Mu(ha)+}'} {chat %2ha!}
- If someone chats Muha you will chat Muhaha! If someone chats Muhaha
- you will chat Muhahaha!
- </span><span style='color:#FFF'>Lazy vs Greedy</span><span style='color:#AAA'>
- By default regex matches are greedy, meaning {.*} will capture as much
- text as possible.
- Example: #regex {bli bla blo} {^{.*} {.*}$} {#show Arg1=(&1) Arg2=(&2)}
- This will display: Arg1=(bli bla) Arg2=(blo)
- By appending a ? behind a regex it becomes lazy, meaning {.*?} will
- capture as little text as possible.
- Example: #regex {bli bla blo} {^{.*?} {.*?}$} {#show Arg1=(&1) Arg2=(&2)}
- This will display: Arg1=(bli) Arg2=(bla blo).
- </span><span style='color:#FFF'>Escape Codes</span><span style='color:#AAA'>
- PCRE support the following escape codes.
- </span><span style='color:#FFF'>
- PCRE Description POSIX</span><span style='color:#AAA'>
- \A Match start of string ^
- \b Match word boundaries (^|\r|\n|\t| |$)
- \B Match non-word boundaries [^\r\n\t ]
- \c Insert control character \c
- \d Match digits [0-9]
- \D Match non-digits [^0-9]
- \e Insert escape character \e
- \f Insert form feed character \f
- \n Insert line feed character \n
- \r Insert carriage return character \r
- \s Match spaces [\r\n\t ]
- \S Match non-spaces [^\r\n\t ]
- \t Insert tab character \t
- \w Match letters, numbers, and underscores [A-Za-z0-9_]
- \W Match non-letters, numbers, and underscores [^A-Za-z0-9_]
- \x Insert hex character \x
- \Z Match end of string $
- \s matches one space, \s+ matches one or multiple spaces.
- </span><span style='color:#FFF'>Color triggers</span><span style='color:#AAA'>
- To make matching easier text triggers (Actions, Gags, Highlights,
- Prompts, and Substitutes) have their color codes stripped. If you
- want to create a color trigger you must start the triggers with a ~
- (tilde). To make escape codes visible use #config {convert meta} on.
- Example: #action {~\e[1;37m%1} {#var roomname %1}
- If the room name is the only line on the server in bright white
- white color trigger will save the roomname.
- This covers the basics. PCRE has more options, most of which are
- somewhat obscure, so you'll have to read a PCRE manual for additional
- information.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#MAP'>map</a> and <a href='#PATH'>path</a>.
- <a name='PORT'></a>
- </span><span style='color:#5F5'> PORT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #port </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- </span><span style='color:#FFF'>#port {init} {name} {port} {file}
- </span><span style='color:#AAA'> Initilize a port session.
- </span><span style='color:#FFF'>#port {call} {address} {port}
- </span><span style='color:#AAA'> Connect to a remote socket.
- </span><span style='color:#FFF'>#port {color} {color names}
- </span><span style='color:#AAA'> Set the default color of port messages.
- </span><span style='color:#FFF'>#port {dnd}
- </span><span style='color:#AAA'> Do Not Disturb. Decline new connections
- </span><span style='color:#FFF'>#port {group} {name} {group}
- </span><span style='color:#AAA'> Assign a socket group.
- </span><span style='color:#FFF'>#port {ignore} {name}
- </span><span style='color:#AAA'> Ignore a socket
- </span><span style='color:#FFF'>#port {info}
- </span><span style='color:#AAA'> Display information about the port session.
- </span><span style='color:#FFF'>#port {name} {name}
- </span><span style='color:#AAA'> Change socket name.
- </span><span style='color:#FFF'>#port {prefix} {text}
- </span><span style='color:#AAA'> Set prefix before each message.
- </span><span style='color:#FFF'>#port {send} {name|all} {text}
- </span><span style='color:#AAA'> Send data to socket
- </span><span style='color:#FFF'>#port {uninitialize}
- </span><span style='color:#AAA'> Uninitialize the port session.
- </span><span style='color:#FFF'>#port {who}
- </span><span style='color:#AAA'> Show all connections
- </span><span style='color:#FFF'>#port {zap} {name}
- </span><span style='color:#AAA'> Close a connection
- The port command is very similar to chat except that it creates a
- new session dedicated to receiving socket connections at the given
- port number without built-in support for a communication protocol.
- You can init with 0 as the port number to create a dummy session.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#CHAT'>chat</a>, <a href='#RUN'>run</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
- <a name='PROMPT'></a>
- </span><span style='color:#5F5'> PROMPT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #prompt </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>new text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>row #</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>col #</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Prompt is a feature for split window mode, which will capture a line
- received from the server and display it on the status bar of your
- split screen terminal. You would define <text> and <new text> the
- same way as you would with #substitute.
- The row number is optional and useful if you use a non standard split
- mode. A positive row number draws #row lines from the top while a
- negative number draws #row lines from the bottom. Without an argument
- #prompt will write to the default split line, which is one row above
- the input line, typically at row -2.
- The col number is optional and can be used to set the column index.
- A positive col number draws the given number of columns from the left,
- while a negative col number draws from the right. If you leave the
- col number empty tintin will clear the row before printing at the
- start of the row.
- The #show command takes a row and col argument as well so it's also
- possible to place text on your split lines using #show.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See </span><span style='color:#FFF'>#help split</span><span style='color:#AAA'> for more information on split mode.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See </span><span style='color:#FFF'>#help substitute</span><span style='color:#AAA'> for more information on text
- substitutions.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a prompt with the #unprompt command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ACTION'>action</a>, <a href='#GAG'>gag</a>, <a href='#HIGHLIGHT'>highlight</a> and <a href='#SUBSTITUTE'>substitute</a>.
- <a name='READ'></a>
- </span><span style='color:#5F5'> READ
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #read </span><span style='color:#FFF'>{</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Reads a commands file into memory. The coms file is merged in with
- the currently loaded commands. Duplicate commands are overwritten.
- If you uses braces, { and } you can use several lines for 1 commands.
- This however means you must always match every { with a } for the read
- command to work.
- You can comment out triggers using /* text */
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#LOG'>log</a>, <a href='#SCAN'>scan</a>, <a href='#TEXTIN'>textin</a> and <a href='#WRITE'>write</a>.
- <a name='REGEXP'></a>
- </span><span style='color:#5F5'> REGEXP
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #regexp </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>expression</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>true</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>false</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Compares the string to the given regular expression.
- The expression can contain escapes, and if you want to match a literal
- \ character you'll have to use \\ to match a single backslash.
- Variables are stored in &1 to &99 with &0 holding the matched
- substring.
- ^ force match of start of line.
- $ force match of end of line.
- \ escape one character.
- %1-%99 lazy match of any text, available at %1-%99.
- %0 should be avoided in triggers, and if left alone lists all matches.
- { } embed a raw regular expression, matches are stored to %1-%99.
- %!{ } embed a raw regular expression, matches are not stored.
- [ ] . + | ( ) ? * are treated as normal text unlessed used within
- braces. Keep in mind that { } is replaced with ( ) automatically
- unless %!{ } is used.
- Of the following the (lazy) match is available at %1-%99 + 1
- %d match zero to any number of digits.
- %D match zero to any number of non digits.
- %s match zero to any number of spaces.
- %S match zero to any number of non spaces.
- %w match zero to any number of word characters.
- %W match zero to any number of non word characters.
- Experimental (subject to change) matches are:
- %a match zero to any number of characters including newlines.
- %A match zero to any number of newlines.
- %p match zero to any number of printable characters.
- %P match zero to any number of non printable characters.
- %u match zero to any number of unicode characters.
- %U match zero to any number of non unicode characters.
- If you want to match 1 digit use %+1d, if you want to match between 3
- and 5 spaces use %+3..5s, if you want to match 0 or more word
- characters use %+0..w, etc.
- %+ match one to any number of characters.
- %? match zero or one character.
- %. match one character.
- %* match zero to any number of characters.
- %i matching becomes case insensitive.
- %I matching becomes case sensitive (default).
- The match is automatically stored to a value between %1 and %99
- starting at %1 and incrementing by 1 for every regex. If you use
- %15 as a regular expression, the next unnumbered regular expression
- would be %16. To prevent a match from being stored use %!*, %!w, etc.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #regexp {bli bla blo} {bli {.*} blo} {#show &1}
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: Like an alias or function #regex has its own scope.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#PCRE'>pcre</a> and <a href='#REPLACE'>replace</a>.
- <a name='REPEAT'></a>
- </span><span style='color:#5F5'> REPEAT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #</span><span style='color:#FFF'>[</span><span style='color:#AAA'>number</span><span style='color:#FFF'>] {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Sometimes you want to repeat the same command multiple times. This is the
- easiest way to accomplish that.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #10 {buy bread}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LIST'>list</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#RETURN'>return</a> and <a href='#WHILE'>while</a>.
- <a name='REPLACE'></a>
- </span><span style='color:#5F5'> REPLACE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #replace </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>oldtext</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>newtext</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Searches the given variable, replacing each occurrence of 'oldtext'
- with 'newtext'. The 'oldtext' argument is a regular expression.
- Variables are stored in &1 to &99 with &0 holding the entire matched
- substring.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #function rnd #math result 1d9;#replace test {%.} {@rnd{}}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CAT'>cat</a>, <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#SCRIPT'>script</a> and <a href='#VARIABLE'>variable</a>.
- <a name='RETURN'></a>
- </span><span style='color:#5F5'> RETURN
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #return </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- This command can be used to break out of a command string being
- executed.
- If used inside a #function you can use #return with an argument to both
- break out of the function and set the result variable.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BREAK'>break</a>, <a href='#CONTINUE'>continue</a>, <a href='#FOREACH'>foreach</a>, <a href='#LIST'>list</a>, <a href='#LOOP'>loop</a>, <a href='#PARSE'>parse</a>, <a href='#REPEAT'>repeat</a> and <a href='#WHILE'>while</a>.
- <a name='RUN'></a>
- </span><span style='color:#5F5'> RUN
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #run </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>shell command</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>file</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The run command works much like the system command except that it
- runs the command in a pseudo terminal. The run command also creates
- a session that treats the given shell command as a server. This
- allows you to run ssh, as well as any other shell application, with
- full tintin scripting capabilities. If a file name is given the file
- is loaded prior to execution.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #run {somewhere} {ssh someone@somewhere.com}
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #run {something} {tail -f chats.log}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
- <a name='SCAN'></a>
- </span><span style='color:#5F5'> SCAN
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #scan </span><span style='color:#FFF'>{</span><span style='color:#AAA'>abort</span><span style='color:#FFF'>|</span><span style='color:#AAA'>csv</span><span style='color:#FFF'>|</span><span style='color:#AAA'>tsv</span><span style='color:#FFF'>|</span><span style='color:#AAA'>txt</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The scan command is a file reading utility.
- </span><span style='color:#FFF'>#scan {abort}
- </span><span style='color:#AAA'> This command must be called from with a SCAN event and will
- abort the scan if one is in progress.
- </span><span style='color:#FFF'>#scan {csv} <filename>
- </span><span style='color:#AAA'> The scan csv command reads in a comma separated value file
- without printing the content to the screen. Instead it triggers one
- of two events.
- The SCAN CSV HEADER event is triggered on the first line of the csv
- file. The SCAN CSV LINE event is triggered on the second and each
- subsequent line of the csv file. The %0 argument contains the entire
- line, with %1 containing the first value, %2 the second value, etc,
- all the way up to %99.
- Values containing spaces must be surrounded with quotes, keep in mind
- newlines within quotes are not supported. Use two quotes to print one
- literal quote character.
- </span><span style='color:#FFF'> #scan {dir} <filename> <variable>
- </span><span style='color:#AAA'>
- The scan dir command will read the given filename or directory and
- store any gathered information into the provided variable.
- </span><span style='color:#FFF'>#scan {tsv} <filename>
- </span><span style='color:#AAA'> The scan tsv <filename> command reads in a tab separated value file
- without printing the content to the screen. Instead it triggers the
- SCAN TSV HEADER event for the first line and SCAN TSV LINE for all
- subsequent lines.
- </span><span style='color:#FFF'>#scan {file} <filename> {commands}
- </span><span style='color:#AAA'> The scan file command reads the given files and executes the
- commands argument. &0 contains the raw content of the file and
- &1 contains the plain content. &2 contains the raw byte size of the
- file and &3 the plain byte size. &5 contains the line count.
- </span><span style='color:#FFF'>#scan {txt} <filename>
- </span><span style='color:#AAA'> The scan txt <filename> command reads in a file and sends its content
- to the screen as if it was send by a server. After using scan you can
- use page-up and down to view the file.
- This command is useful to convert ansi color files to html or viewing
- raw log files.
- Actions, highlights, and substitutions will trigger as normal, and it
- is possible to create an action to execute #scan abort to prematurely
- stop the scan.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#READ'>read</a> and <a href='#TEXTIN'>textin</a>.
- <a name='SCREEN'></a>
- </span><span style='color:#5F5'> SCREEN
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #screen </span><span style='color:#FFF'>{</span><span style='color:#AAA'>option</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}
- </span><span style='color:#AAA'>The screen command offers a variety of screen manipulation
- commands and utilities.
- </span><span style='color:#FFF'>#screen blur
- </span><span style='color:#AAA'> Move the terminal to the back of the stack.
- </span><span style='color:#FFF'>#screen clear [all|scroll region|square] <args>
- </span><span style='color:#AAA'> Provide 4 arguments defining the top left and bottom right corner
- when erasing a square.
- </span><span style='color:#FFF'>#screen focus
- </span><span style='color:#AAA'> Move the terminal to the front of the stack.
- </span><span style='color:#FFF'>#screen fullscreen [on|off]
- </span><span style='color:#AAA'> Toggles fullscreen mode when used without an argument.
- </span><span style='color:#FFF'>#screen get <option> <var>
- </span><span style='color:#AAA'> Get various screen options and save them to <var>. Use #screen
- get without an argument to see all available options.
- </span><span style='color:#FFF'>#screen info
- </span><span style='color:#AAA'> Debugging information.
- </span><span style='color:#FFF'>#screen inputregion <square> [name]
- </span><span style='color:#AAA'> Set the input region. The name argument is optional and can be
- used to create named RECEIVED INPUT [NAME] events.
- </span><span style='color:#FFF'>#screen load <both|label|title>
- </span><span style='color:#AAA'> Reload the saved title, label, or both.
- </span><span style='color:#FFF'>#screen minimize <on|off>
- </span><span style='color:#AAA'> Minimize with on, restore with off.
- </span><span style='color:#FFF'>#screen maximize [on|off]
- </span><span style='color:#AAA'> Maximize with on, restore with off.
- </span><span style='color:#FFF'>#screen move <height> <width>
- </span><span style='color:#AAA'> Move the upper left corner of the terminal to pixel coordinate.
- </span><span style='color:#FFF'>#screen raise <event>
- </span><span style='color:#AAA'> This will raise several screen events with %1 and %2 arguments.
- </span><span style='color:#FFF'>#screen refresh
- </span><span style='color:#AAA'> Terminal dependant, may do nothing.
- </span><span style='color:#FFF'>#screen rescale <height> <width>
- </span><span style='color:#AAA'> Resize the screen to the given height and width in pixels.
- </span><span style='color:#FFF'>#screen resize <rows> <cols>
- </span><span style='color:#AAA'> Resize the screen to the given height and width in characters.
- </span><span style='color:#FFF'>#screen save <both|label|title>
- </span><span style='color:#AAA'> Save the title, label, or both.
- </span><span style='color:#FFF'>#screen scroll <square>
- </span><span style='color:#AAA'> Set the scrolling region, changes the split setting.
- </span><span style='color:#FFF'>#screen set <both|label|title>
- </span><span style='color:#AAA'> Set the title, label, or both. Only title works on Windows.
- </span><span style='color:#FFF'>#screen swap
- </span><span style='color:#AAA'> Swap the input and scroll region.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BELL'>bell</a>
- <a name='SCREEN READER'></a>
- </span><span style='color:#5F5'> SCREEN READER
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #config </span><span style='color:#FFF'>{</span><span style='color:#AAA'>SCREEN READER</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>ON|OFF</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Screen reader mode is enabled by using #config screen on. The main
- purpose of the screen reader mode is to report to servers that a
- screen reader is being used by utilizing the MTTS standard. The MTTS
- specification is available at:
- http://tintin.sourceforge.net/protocols/mtts
- With the screen reader mode enabled TinTin++ will try to remove visual
- elements where possible.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CONFIG'>config</a>
- <a name='SCRIPT'></a>
- </span><span style='color:#5F5'> SCRIPT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #script </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>shell command</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The script command works much like the system command except that it
- treats the generated echos as commands if no variable is provided.
- This is useful for running php, perl, ruby, and python scripts. You
- can run these scripts either from file or from within tintin if the
- scripting language allows this.
- If you provide a variable the output of the script is stored as a list.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #script {ruby -e 'print "#show hello world"'}
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #script {python -c 'print "#show hello world"'}
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #script {php -r 'echo "#show hello world"'}
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #script {path} {pwd};#show The path is $path[1].
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a> and <a href='#VARIABLE'>variable</a>.
- <a name='SEND'></a>
- </span><span style='color:#5F5'> SEND
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #send </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Sends the text directly to the server, useful if you want to start
- with an escape code.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#TEXTIN'>textin</a>
- <a name='SESSION'></a>
- </span><span style='color:#5F5'> SESSION
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #session </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>host</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>port</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>file</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Starts a telnet session with the given name, host, port, and optional
- file name. The name can be anything you want, except the name of an
- already existing session, a number, or the keywords '+' and '-'.
- If a file name is given the file is only read if the session
- succesfully connects.
- Without an argument #session shows the currently defined sessions.
- If you have more than one session, you can use the following commands:
- #session {-} Switch to the previous session.
- #session {+} Switch to the next session.
- #session {<number>} Switch to the given session. Session 0 is the
- startup session, +1 the first, +2 the second, and
- -1 is the last session. Sessions are (currently)
- sorted in order of creation.
- #gts Switch to the startup session. The name gts stands
- for global tintin session.
- #ats Switch to the active session. The name ats stands
- for active tintin session.
- not necessarily the calling session.
- #{name} Activates to the session with the given name.
- #{name} {command}: Executes a command with the given session without
- changing the active session.
- @<name>{text}: Parse text in the given session, substituting the
- variables and functions, and print the result in
- the current active session.
- The startup session is named 'gts' and can be used for relog scripts.
- Do keep in mind that tickers do not work in the startup session.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #event {SESSION DISCONNECTED} {#gts #delay 10 #ses %0 tintin.net 4321}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
- <a name='SESSIONNAME'></a>
- </span><span style='color:#5F5'> SESSIONNAME
- </span><span style='color:#FFF'>Syntax</span><span style='color:#AAA'>: #[sessionname] </span><span style='color:#FFF'>{</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- You can create multiple sessions with the #session command. By default only one
- session is active, meaning commands you input are executed in the active
- session. While all sessions receive output, only output sent to the active
- session is displayed.
- When you create a session with the #session command you must specify a session
- name, the session name, prepended with a hashtag, can be used to activate the
- session when used without an argument. If an argument is given it will be
- executed by that session as a command, the session will not be activated.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #ses one tintin.net 23;#ses two tintin.net 23;#one;#two grin
- This will create two sessions, the session that was created last (two in this
- case) will be automatically activated upon creation. Using #one, session one is
- activated. Using #two grin, the grin social will be executed by session two,
- session one will remain the active session.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSION'>session</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
- <a name='SHOWME'></a>
- </span><span style='color:#5F5'> SHOWME
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #show </span><span style='color:#FFF'>{</span><span style='color:#AAA'>string</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>row</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>col</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Display the string to the terminal, do not send to the server. Useful
- for status, warnings, etc. The {row} and col number are optional and
- work the same way as the row number of the #prompt trigger.
- Actions can be triggered by the show command. If you want to avoid
- this from happening use: #line ignore #show {<string>}.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #tick {TICK} {#delay 50 #show 10 SECONDS TO TICK!!!} {60}
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: The #prompt helpfile contains more information on using the
- option {row} and {col} arguments.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#BUFFER'>buffer</a>, <a href='#DRAW'>draw</a>, <a href='#ECHO'>echo</a>, <a href='#GREP'>grep</a> and <a href='#PROMPT'>prompt</a>.
- <a name='SNOOP'></a>
- </span><span style='color:#5F5'> SNOOP
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #snoop </span><span style='color:#FFF'>{</span><span style='color:#AAA'>session name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>on</span><span style='color:#FFF'>|</span><span style='color:#AAA'>off</span><span style='color:#FFF'>|</span><span style='color:#AAA'>scroll</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- If there are multiple sessions active, this command allows you to
- monitor what is going on in the sessions that are not currently active.
- The line of text from other sessions will be prefixed by the session's
- name.
- You can toggle off snoop mode by executing #snoop a second time.
- By using the scroll argument you will snoop the session's scroll
- region which will overwrite the display of whichever session is active.
- You can change the size and location of a session's scroll region by
- using the #split and #screen scrollregion commands.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
- <a name='SPEEDWALK'></a>
- </span><span style='color:#5F5'> SPEEDWALK
- SPEEDWALK V1
- </span><span style='color:#AAA'>
- Speedwalking allows you to enter multiple directions without using
- semicolons. Directions should be prefixed with a number and will be
- executed the given number of times.
- You can enable speedwalking with #CONFIG {SPEEDWALK} {ON}.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: Without speedwalk, you have to type:
- </span><span style='color:#FFF'>s;s;w;w;w;w;w;s;s;s;w;w;w;n;n;w
- </span><span style='color:#AAA'>With speedwalk, you only have to type:
- </span><span style='color:#FFF'>2s5w3s3w2nw
- </span><span style='color:#5F5'>SPEEDWALK V2
- </span><span style='color:#AAA'>
- Modern MUDs have increasingly adopted the use of diagonal exits, like
- ne, nw, sw, and se. To make accomodations for this the #map and #path
- command no longer interpret nesw as a speedwalk and require this to
- be written as 1n1e1s1w, which then allows 2ne2e to execute ne;ne;e;e.
- Speedwalks entered on the input line continue to use the v1 system.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #path unzip 3n1e2nw
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #map move 3ne1d
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALIAS'>alias</a>, <a href='#CURSOR'>cursor</a>, <a href='#HISTORY'>history</a>, <a href='#KEYPAD'>keypad</a>, <a href='#MACRO'>macro</a> and <a href='#TAB'>tab</a>.
- <a name='SPLIT'></a>
- </span><span style='color:#5F5'> SPLIT
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #split </span><span style='color:#FFF'>{</span><span style='color:#AAA'>top bar</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>bottom bar</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>left bar</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>right bar</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>input bar</span><span style='color:#FFF'>}
- </span><span style='color:#AAA'>
- This option requires for your terminal to support VT100 emulation.
- #split allows the creation of a top status bar, a left and right status
- bar, a scrolling region, a bottom status bar, and an input line.
- </span><span style='color:#0AA'>╭────────────────────────────────╮
- │</span><span style='color:#FFF'> top bar </span><span style='color:#0AA'> │
- ├──────┬──────────────────┬──────┤
- │</span><span style='color:#FFF'> left </span><span style='color:#0AA'>│</span><span style='color:#FFF'> scrolling </span><span style='color:#0AA'>│</span><span style='color:#FFF'> right</span><span style='color:#0AA'>│
- │</span><span style='color:#FFF'> bar </span><span style='color:#0AA'>│</span><span style='color:#FFF'> region </span><span style='color:#0AA'>│</span><span style='color:#FFF'> bar </span><span style='color:#0AA'>│
- ├──────┴──────────────────┴──────┤
- │</span><span style='color:#FFF'> bottom bar </span><span style='color:#0AA'> │
- ├────────────────────────────────┤
- │</span><span style='color:#FFF'> input bar </span><span style='color:#0AA'> │
- ╰────────────────────────────────╯
- </span><span style='color:#AAA'>
- By default the bottom status bar is filled with dashes --- and
- subsequently it is also known as the split line. The scrolling
- region is also known as the main screen and this is where all
- incoming text is displayed by default.
- If you use #split without an argument it will set the height of the
- top status bar to 0 lines and the bottom status bar to 1 line.
- If you use #split with one argument it will set the height of the top
- status bar to the given number of lines and the bottom status bar will
- be set to 1 line.
- If you use two arguments the first argument is the height of the top
- status bar and the second argument the height of the bottom status bar.
- The third and fourth argument are optional and default to 0.
- The fifth argument is optional and sets the size of the input bar, it
- defaults to 1.
- It is possible to use negative arguments in which case the bar width
- defines the minimum width of the scrolling region.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #split 0 0
- This will create a split screen with just a scrolling region and an
- input line. Great for the minimalist.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #split 1 1 0 -80
- This will create a split screen with a single line top and bottom
- bar. The left bar has a width of 0 while the right bar will be of
- variable width. If for example the screen is 100 columns wide, 80
- columns will be used for the scrolling region, leaving a right bar
- with a width of 20 columns.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can display text on the split line(s) with the #prompt and
- #show {line} {row} commands.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove split mode with the #unsplit command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ECHO'>echo</a>, <a href='#PROMPT'>prompt</a> and <a href='#SHOWME'>showme</a>.
- <a name='SSL'></a>
- </span><span style='color:#5F5'> SSL
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #ssl </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>host</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>port</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>file</span><span style='color:#FFF'>}
- Starts a secure socket telnet session with the given name, host, port,
- and optional file name.
- Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a>, <a href='#SSL'>ssl</a> and <a href='#ZAP'>zap</a>.
- <a name='STATEMENTS'></a>
- </span><span style='color:#5F5'> STATEMENTS
- </span><span style='color:#AAA'>
- TinTin++ knows the following statements.
- #break
- #case {value} {true}
- #continue
- #default {commands}
- #else {commands}
- #elseif {expression} {true}
- #foreach {list} {variable} {commands}
- #if {expression} {true}
- #loop {min} {max} {variable} {commands}
- #parse {string} {variable} {commands}
- #return {value}
- #switch {expression} {commands}
- #while {expression} {commands}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#COMMANDS'>commands</a>, <a href='#HELP'>help</a> and <a href='#INFO'>info</a>.
- <a name='SUBSTITUTE'></a>
- </span><span style='color:#5F5'> SUBSTITUTE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #substitute </span><span style='color:#FFF'>{</span><span style='color:#AAA'>text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>new text</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>priority</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Allows you to replace text from the server with the new text.
- The %1-%99 variables can be used to capture text and use it as part of
- the new output.
- Color codes can be used to color the new text, to restore the color to
- that of the original line the <900> color code can be used.
- If only one argument is given, all active substitutions that match the
- argument are displayed. Wildcards can be used, see '#help regex' for
- additional information on that subject.
- If no argument is given, all subs are displayed.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {Zoe} {ZOE}
- Any instance of Zoe will be replaced with ZOE.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {~\e[0;34m} {\e[1;34m}
- Replace generic dark blue color codes with bright blue ones.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #sub {%1massacres%2} {<018>%1<118>MASSACRES<018>%2}
- Replaces all occurrences of 'massacres' with 'MASSACRES' in red.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help action', for more information about triggers.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help colors', for more information.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a substitution with the #unsubstitute command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ACTION'>action</a>, <a href='#GAG'>gag</a>, <a href='#HIGHLIGHT'>highlight</a> and <a href='#PROMPT'>prompt</a>.
- <a name='SUBSTITUTIONS'></a>
- </span><span style='color:#5F5'> SUBSTITUTIONS
- </span><span style='color:#AAA'> TinTin++ will perform various types of substitions as detailed below.
- </span><span style='color:#5F5'> Variables
- </span><span style='color:#FFF'>$ & * @</span><span style='color:#AAA'> All variable and function names must begin with an alphabetic
- character, followed by any combination of alphanumeric characters and
- underscores.
- </span><span style='color:#FFF'>$</span><span style='color:#AAA'> The dollar sign is used to retrieve the value of a variable.
- </span><span style='color:#FFF'>&</span><span style='color:#AAA'> The ampersand sign is used to retrieve the index of a variable.
- </span><span style='color:#FFF'>*</span><span style='color:#AAA'> The astrix sign is used to retrieve the name of a variable.
- </span><span style='color:#FFF'>@</span><span style='color:#AAA'> The at sign is used for functions.
- </span><span style='color:#FFF'>[ ]</span><span style='color:#AAA'> Brackets are used for nested variables which function as an
- associative array. Associative arrays are also known as tables and
- maps. Regex can be used within brackets to match multiple variables.
- </span><span style='color:#FFF'>+ -</span><span style='color:#AAA'> The plus and minus signs are used to access variables by their index,
- with the first variable having index +1, and the last variable
- having index -1. Variables are ordered alphanumerically.
- All variables and functions can be escaped by doubling the sign,
- like $$variable_name or @@function_name. To escape a variable
- twice use $$$var_name. One escape is removed each time tintin
- needs to substitute a variable or function.
- </span><span style='color:#5F5'> Arguments
- </span><span style='color:#FFF'>%0 - %99</span><span style='color:#AAA'> The percent sign followed by a number is used for arguments by the
- following triggers:
- alias, action, button, event, function, prompt, and substitute.
- </span><span style='color:#FFF'>&0 - &99</span><span style='color:#AAA'> The ampersand sign followed by a number is used for arguments in the
- regex and replace commands.
- All trigger and command arguments can be escaped by doubling the
- sign like %%1 or &&1. One escape is removed each time tintin
- substitutes trigger or command arguments. To escape three times
- triple the sign like %%%1, etc.
- </span><span style='color:#5F5'> Colors
- </span><span style='color:#FFF'><000></span><span style='color:#AAA'> Three alphanumeric characters encapsulated by the less- and greater-
- than signs are used for 4 and 8 bit color codes.
- </span><span style='color:#FFF'><0000></span><span style='color:#AAA'> Either a B (background) or F (foreground) followed by three
- hexadecimal characters encapsulated by < > signs are used for 12
- bit color codes. Requires truecolor capable terminal.
- </span><span style='color:#FFF'><0000000></span><span style='color:#AAA'> Either a B (background) or F (foreground) followed by six
- hexadecimal characters encapsulated by < > signs are used for 24
- bit color codes. Requires truecolor capable terminal.
- More information is available at #help color.
- </span><span style='color:#5F5'> Escapes
- </span><span style='color:#FFF'>\ </span><span style='color:#AAA'> The back slash is used to escape a character. All available options
- are listed at #help escape. Escapes are typically escaped when text
- leaves the client, by being send to a server, the shell, being
- displayed on the screen, or being processed as part of a regex.
- Escapes try to mimic escapes in PCRE when possible.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CHARACTERS'>characters</a>, <a href='#COLORS'>colors</a>, <a href='#ESCAPES'>escapes</a>, <a href='#INFO'>info</a> and <a href='#PCRE'>pcre</a>.
- <a name='SUSPEND'></a>
- </span><span style='color:#5F5'> SUSPEND
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #cursor suspend
- Temporarily suspends tintin and returns you to your shell. To
- return to tintin, type 'fg' at the shell prompt.
- While suspended your tintin sessions will freeze. To keep a
- suspended session running use the #detach command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#END'>end</a>
- <a name='SWITCH'></a>
- </span><span style='color:#5F5'> SWITCH
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #switch </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>arguments</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The switch command works similar to the switch statement in other
- languages. When the 'switch' command is encountered its body is parsed
- and each 'case' command found will be compared to the conditional
- argument of the switch and executed if there is a match.
- When comparing strings both the switch and case arguments must be
- enclosed in quote characters.
- If the 'default' command is found and no 'case' statement has been
- matched the default command's argument is executed.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #switch {1d4} {#case 1 cackle;#case 2 smile;#default giggle}
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#STATEMENTS'>statements</a>
- <a name='SYSTEM'></a>
- </span><span style='color:#5F5'> SYSTEM
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #system </span><span style='color:#FFF'>{</span><span style='color:#AAA'>command</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Executes the command specified as a shell command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#DETACH'>detach</a>, <a href='#SCRIPT'>script</a> and <a href='#RUN'>run</a>.
- <a name='TAB'></a>
- </span><span style='color:#5F5'> TAB
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #tab </span><span style='color:#FFF'>{</span><span style='color:#AAA'>word</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Adds a word to the tab completion list, alphabetically sorted.
- If no tabs are defined tintin will use the scrollback buffer for auto
- tab completion.
- Tabbing behavior can be modified with the #cursor tab command which
- by default is bound to the tab key.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a tab with the #untab command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALIAS'>alias</a>, <a href='#CURSOR'>cursor</a>, <a href='#HISTORY'>history</a>, <a href='#KEYPAD'>keypad</a>, <a href='#MACRO'>macro</a> and <a href='#SPEEDWALK'>speedwalk</a>.
- <a name='TEXTIN'></a>
- </span><span style='color:#5F5'> TEXTIN
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #textin </span><span style='color:#FFF'>{</span><span style='color:#AAA'>filename</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>delay</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Textin allows the user to read in a file, and send its contents
- directly to the server. Useful for doing online creation, or message
- writing.
- The delay is in seconds and takes a floating point number which is
- cumulatively applied to each outgoing line.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#SCAN'>scan</a> and <a href='#SEND'>send</a>.
- <a name='TICKER'></a>
- </span><span style='color:#5F5'> TICKER
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #ticker </span><span style='color:#FFF'>{</span><span style='color:#AAA'>name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>interval in seconds</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Executes given command every # of seconds. Floating point precision
- for the interval is allowed. A ticker cannot fire more often than
- 10 times per second.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: Tickers don't work in the startup session.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a ticker with the #unticker command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#DELAY'>delay</a> and <a href='#EVENT'>event</a>.
- <a name='TIME'></a>
- </span><span style='color:#5F5'> TIME
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #format </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>%t</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- The %t format specifier of the #format command allows printing dates
- using the strftime() format specifiers. By default the time stamp used
- is the current time, if you want to print a past or future date use:
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #format </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>%t</span><span style='color:#FFF'>} {{</span><span style='color:#AAA'>argument</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>epoch time</span><span style='color:#FFF'>}}</span><span style='color:#AAA'>
- The current epoch time value is obtained using #format {time} {%T}.
- When using %t the argument should contain strftime format specifiers.
- The output may differ depending on your locale.
- %a Abbreviated name of the day of the week (mon ... sun).
- %A Full name of the day of the week. (Monday ... Sunday)
- %b Abbreviated name of the month (Jan ... Dec)
- %B Full name of the month. (January ... December)
- %C 2 digit numeric century. (19 ... 20)
- %d 2 digit numeric day of the month (01 ... 31)
- %H 2 digit numeric 24-hour clock hour. (00 ... 23)
- %I 2 digit numeric 12-hour clock hour. (01 ... 12)
- %j 3 digit numeric day of the year (001 ... 366)
- %m 2 digit numeric month of the year (01 ... 12)
- %M 2 digit numeric minute of the hour (00 ... 59)
- %p Abbreviated 12 hour clock period (AM ... PM)
- %P Abbreviated 12 hour clock period (am ... pm)
- %S 2 digit numeric second of the minute (00 ...59
- %u 1 digit numeric day of the week (1 ... 7)
- %U 2 digit numeric Sunday week of the year (00 ... 53
- %w 1 digit numeric day of the week (0 ... 6)
- %W 2 digit numeric Monday week of the year (00 ... 53
- %y 2 digit numeric year. (70 ... 38)
- %Y 4 digit numeric year. (1970 ... 2038)
- %z 5 digit timezone offset. (-1200 ... +1400)
- %Z Abbreviated name of the time zone.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ECHO'>echo</a>, <a href='#EVENT'>event</a> and <a href='#FORMAT'>format</a>.
- <a name='VARIABLE'></a>
- </span><span style='color:#5F5'> VARIABLE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #variable </span><span style='color:#FFF'>{</span><span style='color:#AAA'>variable name</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>text to fill variable</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Variables differ from the %0-99 arguments in the fact that you can
- specify a full word as a variable, and they stay in memory for the
- full session unless they are changed. They can be saved in the
- coms file, and can be set to different values if you have two or
- more sessions running at the same time. Variables are global for
- each session and can be accessed by adding a $ before the variable
- name.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #alias {target} {#var target %0}
- #alias {x} {kick $target}
- The name of a variable must exist of only letters, numbers and
- underscores in order to be substituted. If you do not meet these
- requirements do not panic, simply encapsulate the variable in braces:
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #variable {cool website} {http://tintin.sourceforge.net}
- #chat I was on ${cool website} yesterday!.
- Variables can be escaped by adding additional $ signs.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #var test 42;#showme $$test
- Variables can be nested using brackets:
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #var hp[self] 34;#var hp[target] 46
- You can see the first nest of a variable using $variable[+1] and the
- last nest using $variable[-1]. Using $variable[-2] will report the
- second last variable, and so on. To show all indices use *variable[].
- To show all values use $variable[]. To show all values from index 2
- through 4 use $variable[+2..4].
- Nested variables are also known as tables, table generally being used
- to refer to several variables nested within one specific variable.
- It's possible to use regular expressions.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show {Targets starting with the letter A: $targets[A%*]
- To see the internal index of a variable use &<variable name>. To see
- the size of a table you would use: &targets[] or &targets[%*]. A non
- existent nested variable will report itself as 0.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #show {Number of targets starting with A: &targets[A%*]
- In some scripts you need to know the name of a nested variable. This
- is also known as the key, and you can get it using *variable. For
- example *target[+1]. To get the first variable's name use *{+1}.
- It's also possible to declare a table using brace notation. Using
- #var hp[self] 34 is the equivalent of #var {hp} {{self}{34}}. This
- also allows merging tables. #var hp[self] 34;#var hp[target] 46 is
- the equivalent of #var {hp} {{self}{34} {target}{46}} as well as
- #var {hp} {{self}{34}} {{target}{46}} or if you want to get creative
- the equivalent of #var hp[self] 34;#var {hp} {$hp} {{target}{46}}.
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: You can remove a variable with the #unvariable command.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#CAT'>cat</a>, <a href='#FORMAT'>format</a>, <a href='#FUNCTION'>function</a>, <a href='#LOCAL'>local</a>, <a href='#MATH'>math</a>, <a href='#REPLACE'>replace</a> and <a href='#SCRIPT'>script</a>.
- <a name='WHILE'></a>
- </span><span style='color:#5F5'> WHILE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #while </span><span style='color:#FFF'>{</span><span style='color:#AAA'>conditional</span><span style='color:#FFF'>} {</span><span style='color:#AAA'>commands</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- This command works similar to a 'while' statement in other languages.
- When a 'while' command is encourated, the conditional is evaluated,
- and if TRUE (any non-zero result) the commands are executed. The
- 'while' loop will be repeated indefinitely until the conditional is
- FALSE or the #BREAK or #RETURN commands are found.
- The 'while' statement is only evaluated if it is read, so you must
- nest it inside a trigger, like an alias or action.
- The conditional is evaluated exactly the same as in the 'math' command.
- </span><span style='color:#FFF'>Example</span><span style='color:#AAA'>: #math cnt 0;#while {$cnt < 20} {#math cnt $cnt + 1;say $cnt}
- </span><span style='color:#FFF'>Comment</span><span style='color:#AAA'>: See '#help math', for more information.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#STATEMENTS'>statements</a>
- <a name='WRITE'></a>
- </span><span style='color:#5F5'> WRITE
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #write </span><span style='color:#FFF'>{</span><span style='color:#AAA'><filename></span><span style='color:#FFF'>} {</span><span style='color:#AAA'>[FORCE]</span><span style='color:#FFF'>}</span><span style='color:#AAA'>
- Writes all current actions, aliases, subs, highlights, and variables
- to a command file, specified by filename.
- By default you cannot write to .map files to prevent accidentally
- overwriting a map file. Use the FORCE argument to ignore this
- protection.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#LOG'>log</a>, <a href='#READ'>read</a>, <a href='#SCAN'>scan</a> and <a href='#TEXTIN'>textin</a>.
- <a name='ZAP'></a>
- </span><span style='color:#5F5'> ZAP
- </span><span style='color:#FFF'>Command</span><span style='color:#AAA'>: #zap {[session]}
- Kill your current session. If there is no current session, it will
- cause the program to terminate. If you provide an argument it'll zap
- the given session instead.
- </span><span style='color:#FFF'>Related</span><span style='color:#AAA'>: <a href='#ALL'>all</a>, <a href='#PORT'>port</a>, <a href='#RUN'>run</a>, <a href='#SESSION'>session</a>, <a href='#SESSIONNAME'>sessionname</a>, <a href='#SNOOP'>snoop</a> and <a href='#SSL'>ssl</a>.
|