igr.mods 178 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524
  1. Jan 2025 2.02.50
  2. ------------------------------------------------------------------------------
  3. Jan 2024 2.02.42
  4. ------------------------------------------------------------------------------
  5. map.c Fixed #map move not working with nofollow flag set.
  6. list.c Made #list indexate no longer require a uniform key layout,
  7. but the indexation key must be present in all list entries.
  8. chat.c Increased to timeout for the handshake from 5 to 30 seconds.
  9. substitute.c %%%s would get escaped to %%s in aliases and actions. This was
  10. changed so only %%%1 gets escaped to %%1, %%%s stays the same.
  11. list.c Added an error message when using #list add on invalid lists.
  12. map.c #map info save will save to info[MAP] instead of info[map].
  13. system.c Fixed a bug limiting #script to 50KB of output.
  14. net.c Fixed a bug causing #config color_patch to strip all colors.
  15. data.c Classes are properly cleared when removed with #kill.
  16. Jan 2024 2.02.41
  17. ------------------------------------------------------------------------------
  18. tokenize.c Fixed issues with tailing spaces for several statements.
  19. parse.c On entering #exit or #quit tintin suggests using #end or #zap.
  20. Mar 2023 2.02.40
  21. ------------------------------------------------------------------------------
  22. data.c Changed the symbol for the strict equality assignment/lookup
  23. from \ to = due to compatibility issues. You'll get a warning
  24. if a variable or table key begins with a \.
  25. net.c Added the PROCESSED LINE event. Like RECEIVED LINE, but it
  26. triggers after line triggers have been processed.
  27. variable.c Added support to use \A in #replace and #substitute to only
  28. match the start of a line. When using ^ the behavior is more
  29. ambiguous, matching at the start of each line and at the end
  30. of each preceding match.
  31. net.c Added the PACKET PATCH event which triggers when a broken
  32. packet is detected. Has some utility for trouble shooting.
  33. list.c Added #list <list> copy <variable> to copy a variable to the
  34. given list. Will copy tables as well.
  35. log.c Added #log make <directory> to create directories. #log remove
  36. <directory> can be used to remove one.
  37. trigger.c Added support for multi-line substitutions.
  38. show.c Added a REFORMAT event which can be used to alter system
  39. messages. Must use #return to set the new message format.
  40. help.c Added a CATCH HELP event.
  41. #event {CATCH HELP NOP} {#line ignore #showme bla}
  42. class.c #class clear/close/kill/list/load/save/size/write no longer
  43. create a class if none exists.
  44. split.c When using #split 0 1 0 -80 it will correctly use the negative
  45. argument on subsequent screen resizes.
  46. list.c Added #list swap <index1> <index2> to swap two list items.
  47. cursor.c You can paste multi-line triggers by first pressing ctrl-v,
  48. next paste the data, followed by pressing ctrl-enter.
  49. mapper.c Added #map flag autolink <on|off>. Default is on. Set to off
  50. to disable automatically linking overlapping rooms.
  51. Jan 2023 2.02.31
  52. ------------------------------------------------------------------------------
  53. cursor.c #cursor {get} will escape braces and other special characters.
  54. config.c Added the CONFIG event which triggers when a config option is
  55. set. %0 holds the option name, and %1 the value set.
  56. mapper.c When saving #map list to a table the vnum is now automatically
  57. included.
  58. data.c Added #info output which can be used to access the most recent
  59. data received from the mud.
  60. config.c Hybernate is now hibernate. Let's pretend that never happened.
  61. config.c Added #config hibernate on/off. When enabled it will reduce
  62. the idle cpu overhead by 90%, though tintin will be more
  63. sluggish and timers will fire with decreased accuracy.
  64. trigger.c A multi-line action can now trigger multiple times per block
  65. of text, skipping to the next unmatched line after each match.
  66. nest.c Fixed a bug reported by dzp where $var[] didn't behave
  67. identical to $var[%*].
  68. show.c A #showme containing a \n sequence will exclusively trigger
  69. multi-line triggers.
  70. history.c Added the HISTORY UPDATE event, %0 contains the command being
  71. added to the command history.
  72. help.c Added #help triggers which explains multi-line triggers.
  73. regex.c Added initial support for multi-line triggers.
  74. mapper.c The roomdesc now requires %a instead of %* to match multiple
  75. lines in searches.
  76. net.c Added the %1 argument to the RECEIVED OUTPUT event, which
  77. holds the plain text version of the data received.
  78. regex.c Added a warning when matching escape codes in a trigger
  79. without the trigger starting with a '~'.
  80. line.c Added #line logmode stamp option to force the adding of a
  81. timestamp when using #line log.
  82. config.c Added #config compact which is disabled by default. When
  83. enabled it can get rid of blank lines surrounding a gagged
  84. prompt line.
  85. substitute.c Fixed #alias and #function so #info arguments save works.
  86. line.c #line log no longer prints a stamp if #log timestamp is set,
  87. unless you're writing to the active log file.
  88. main.c The terminal title set with tt++ -t will now reset on exit.
  89. variable.c Added support for #format %.-3s which will print the last
  90. 3 characters of the string.
  91. regex.c It should now be possible to use %+10* %+1..5* etc
  92. variable.c Fixed a crash bug in #cat reported by dzp.
  93. tokenize.c Colorized some of the #debug messages, and added a debug
  94. message to mark the end of a trigger.
  95. tokenize.c Added error message for #foreach, #loop, #parse, #switch,
  96. #while, and #regex if invalid syntax is used.
  97. net.c Fixed a display problem related to #config packet_patch in
  98. vertical split mode.
  99. mapper.c Changed the usage of float to double to fix rounding issues in
  100. path calculations.
  101. Jul 2022 2.02.30
  102. ------------------------------------------------------------------------------
  103. help.c #help and #command when used with no argument display the
  104. entries as columns instead of rows.
  105. ../docs/ I got started on a tintin generated github website.
  106. https://scandum.github.io/tintin
  107. mapper.c Using #map exit <exit> dir 0, will now properly save.
  108. screen.c #screen set rows/cols will now properly initialize the new
  109. rows/cols setting for the screen dimensions. This will be
  110. global for all sessions. The values are reset when resizing
  111. the terminal.
  112. telopt_client.c Updated the TTYPE MNES negotiation to report a standardized
  113. charset value.
  114. telopt_client.c Updated the TTYPE MTTS negotiation to report SSL support if
  115. GnuTLS is included in the compilation.
  116. telopt_client.c Updated the TTYPE MTTS negotiation to report MSLP and mouse
  117. support if #config mouse is set to on.
  118. draw.c #draw SCALED will not scale horizontally when combined with
  119. the VERTICAL flag.
  120. gui.h Updated the connection manager (tt++ -g) with new sponsors and
  121. some bug fixes.
  122. trigger.c #prompt with a row argument of 0 will behave like #substitute.
  123. input.c Fixed memory access violation identified by dzp.
  124. line.c Updated #line gag to support #line gag [amount], you can use
  125. + or - to increase or decrease the current amount.
  126. mapper.c Added {both} option to #map exit and entrance where
  127. applicable.
  128. list.c Added #list {var} refine {keep} {remove}. Keep and remove must
  129. be a mathematical expression, the keep argument is ignored if
  130. {} is used, the remove expression is optional. #list indexate
  131. must be used to refine tables. In the expression &0 must be
  132. used as the placeholder of the item value being compared.
  133. draw.c If you #draw with both the talign and balign flags set the
  134. text will be centered vertically.
  135. mapper.c Added #map flag symbolgraphics support to #map flag mudfont
  136. line.c Added #line json <variable> <command> with &0 containing the
  137. variable's value translated to json.
  138. telopt_client.c IAC SB GMCP <MODULE> %0 data %1 plain data
  139. has been changed to
  140. IAC SB GMCP <MODULE> %0 data %1 data %2 plain data
  141. trigger.c Fixed a bug with using #highlight {[}
  142. list.c Added #list <list> numerate to renumber a list or table.
  143. list.c Proper lists will be renumbered after using #list filter.
  144. net.c Added a GAG NO SESSION ACTIVE event to block the NO SESSION
  145. ACTIVE message. %0 holds the command.
  146. regex.c Added %c for regular expressions which captures color codes.
  147. mapper.c Added #map flag fast which will limit coordinate searches to
  148. a 50 room radius. Improves the speed of map drawing and auto
  149. linking on large maps. This can result in the mapper failing
  150. to auto link if the path connecting two rooms exceeds the
  151. search radius.
  152. split.c Moving the cursor back to the scroll region if #split is used
  153. in an #action.
  154. parse.c No longer echoing hashbangs/shebangs unless tt++ -v is used.
  155. tables.c Fixed two errors in the ascii table, patch by dzp.
  156. net.c Added tcp keepalive at the socket level, patch by beinvisible.
  157. Sep 2021 2.02.20
  158. ------------------------------------------------------------------------------
  159. main.c Added -H startup option to run tintin in a nohup compatible
  160. mode.
  161. list.c Changed #list explode to support:
  162. #list {var} {explode} {separator}
  163. The separator can be {;} or {\n} or anything else. Variables
  164. and escape codes in the separator are substituted. This turns
  165. a variable into a list using the given separator.
  166. list.c Updated #list collapse to support:
  167. #list {var} {collapse} {separator}
  168. The separator can be {;} or {\n} or anything else. Variables
  169. and escape codes in the separator are substituted. This turns
  170. a list into a variable.
  171. buffer.c Updated #buffer find to support:
  172. #buffer {find} {[number]} {<string>} {[variable]}
  173. The number must now be -1, -2, etc to search starting from the
  174. end of the buffer, and 1, 2, etc to search from the start.
  175. buffer.c Updated #buffer clear to support:
  176. #buffer {clear} {[lower bound]} {[upper bound]}
  177. tokenize.c Increased the buffer size of #foreach to 1 million bytes, can
  178. be adjusted in tintin.h by changing MALLOC_SIZE.
  179. data.c Added #info arguments [save] option that will display all
  180. arguments / matches of the most recently fired trigger.
  181. data.c Added #info matches [save] option that will display all
  182. matches of the most recently fired command like #regex.
  183. data.c #kill all will no longer remove pathdirs.
  184. telopt_client.c Fixed an incorrect rejection response for the charset telopt.
  185. mapper.c Fixed #map goto jumping to the room you're currently in on a
  186. failed search.
  187. telopt_client.c Fixed handling of empty arrays for gmcp.
  188. mapper.c Added #map flag pancake which will display rooms on the map
  189. above and below you while enabled. You can use #map color
  190. room <aaa><fff> to display rooms with a white to black color
  191. gradient in pancake mode. To easily view color gradients use:
  192. #loop 6 0 i #draw scroll bar 1 1 1 40 {$i;6;<aaa><fff>}
  193. session.c The SESSION CREATED and SESSION CONNECTED will store the file
  194. name, if provided, in the %4 argument.
  195. draw.c #draw line now takes a text argument which can be further
  196. manipulated with the CALIGN and RALIGN flags, LALIGN is the
  197. default.
  198. session.c The SESSION CONNECTED event now triggers after the SESSION
  199. CREATED event.
  200. session.c Changed GAG SESSION DISCONNECTED to GAG SESSION DESTROYED.
  201. mapper.c Added the #map info save option.
  202. utf8.c Updated the cp949 to utf8 table with additional characters.
  203. May 2021 2.02.12
  204. ------------------------------------------------------------------------------
  205. input.c Added RECEIVED INPUT CHARACTER event that triggers on each
  206. character added to the input buffer. %0 holds the character,
  207. %1 the unicode index, %2 the byte size, %3 the character's
  208. display width.
  209. cursor.c Added #cursor tab caseless option to make tab completion case
  210. incensitive.
  211. dict.c Added #cursor tab dictionary option to tab through the
  212. dictionary.
  213. log.c Added #log timestamp <format>. The format follows strftime as
  214. described in #help time. Timestamps will be prepended to each
  215. line of log output.
  216. log.c Added #log move <filename> <filename> to move files.
  217. log.c Added #log remove <filename> to remove files.
  218. variable.c #format %r now ignores color and escape codes.
  219. data.c Added the #info tokenizer option to have a peek at the stack
  220. of the scripting engine. Use case example:
  221. #event {RECEIVED ERROR}
  222. {
  223. #echo <118>%h { TOKENIZER };
  224. #info tokenizer -1;
  225. #echo <118>%h
  226. }
  227. path.c #path load now automatically adds reverse directions.
  228. mapper.c Added support for #map list {roomflag} {!void} etc.
  229. line.c Added #line substitute braces which will turn { and } into
  230. \x7B and \x7D.
  231. mapper.c Added #map list {{distance}{5}} to list all rooms within a
  232. weighted distance of 5. Keep in mind this goes by weight,
  233. which starts at 1.0 and increases by 2.0 per room by default.
  234. cursor.c Added #cursor flag eol {cr|lf|crlf|crnul|off} to change the
  235. default end of line character between \r \n \r\n and \r\0.
  236. log.c Changed logging to where it logs data before it's wrapped by
  237. the client.
  238. mapper.c Added support for roomsymbol lengths up to 5 characters in
  239. unicode, and 6 characters in ascii graphics mode.
  240. mapper.c Added the option to #map list/find to use * as a roomexit.
  241. This will make the search ignore non-pathdir exits without
  242. an exit direction.
  243. Mar 2021 2.02.11
  244. ------------------------------------------------------------------------------
  245. draw.c #draw BALIGN will push text to the bottom if there aren't
  246. enough lines to fill the entire square.
  247. main.c Synchronized terminal resize handling which might fix some odd
  248. crashes.
  249. variable.c Getting rid of #format %C for chronological formatting since
  250. I'm abandoning chronological notation support. While it was
  251. a cute feature it's more important to support the ? : ternary
  252. operation. This frees up the %C argument for a more complex
  253. column operation.
  254. mapper.c Added support to use #map list 1..6 to provide a vnum range.
  255. substitute.c Added \u{} which supports between 2 and 6 hexadecimals.
  256. data.c Added the #info input and #info input save option.
  257. data.c Added the #info environ and #info environ save option.
  258. main.c Added SIGUSR event. %0 will contain either 1 or 2.
  259. #event {SIGUSR} {#showme RECEIVED SIGUSR %0}
  260. #info system save
  261. #system {kill -USR1 $info[SYSTEM][PID]
  262. main.c Added SIGHUB event which should trigger when the terminal is
  263. closed with TinTin++ still running inside. You can use
  264. #event {SIGHUB} {#end} to have tintin close normally.
  265. session.c Added #snoop {session} scroll {on|off} to snoop a session's
  266. scroll region, which will be printed on top of the active
  267. session's screen.
  268. math.c Made #math / #if about 3x faster.
  269. math.c Updated // to support powers other than 2 and 3.
  270. regex.c Changed %w to match any letter, number, or underscore instead
  271. of just letters, to make it match \w. Same for %W.
  272. Nov 2020 2.02.10
  273. ------------------------------------------------------------------------------
  274. split.c Now allowing #showme {text} {-1} to place text on the input
  275. line without #split being enabled.
  276. trigger.c Changed #tick to lazily get the second argument.
  277. files.c Added the READ FILE [NAME] event, triggers after a file has
  278. been read. %0 holds the file name.
  279. draw.c Added color gradient support to #draw bar. To use it you
  280. must specify two 256 color foreground codes for the color
  281. field and based on the min;max value it will pick a color
  282. somewhere in between.
  283. #loop 1 9 i #draw <DDF> scroll bar 1 1 1 40 {$i;9;<faa><afa>}
  284. draw.c Added the BAR drawing type. Currently only horizontal bars
  285. are supported, but for forward compatibility you should draw
  286. bars using #draw horizontal bar {square} {<min>;<max>;[color]}
  287. The width of the bar will be that of the square coordinate.
  288. trigger.c Added support for 10 digit precision delays. The main
  289. utility of this is execution order.
  290. #delay 0.00003 #show A;#delay 0.00002 #show B
  291. Since delays are processed in 0.01 second intervals these will
  292. both trigger within 0.01 seconds, but the display order will
  293. be: B A rathern than A B.
  294. path.c Added MAPPING and RUNNING to #path get.
  295. MAPPING returns 1 when path mapping, otherwise 0.
  296. RUNNING returns the delay until the next run, otherwise 0.00.
  297. #path get <variable> without an argument will store the
  298. length, position, mapping, and running values in a table.
  299. trigger.c Storing the creation time of tickers and delays in arg4, can
  300. be obtained using #info tickers/delays save.
  301. substitute.c Added support to call @function{} as @{function}{}.
  302. event.c The SCREEN FOCUS event no longer requires #config mouse to
  303. be enabled.
  304. math.c % in #math now supports floating point modulo operations.
  305. data.c #info will save #info variables to $info[VARIABLES] rather
  306. than $info[VARIABLE]. Same for other lists.
  307. list.c Added #list {var} filter {keep} {remove}. Keep and remove
  308. must be a regex pattern, the keep regex is ignored if {} is
  309. used, the remove regex is optional. #list indexate must be
  310. used to filter tables.
  311. utf8.c Added #config charset cp949 for Korean.
  312. Oct 2020 2.02.05
  313. ------------------------------------------------------------------------------
  314. variables.c Added the #unlocal command.
  315. files.c Table variables are now written to file with indentation.
  316. utf8.c Decreased the memory footprint of BIG-5 / GBK-1 support.
  317. variable.c The VARIABLE UPDATE event now reports the path in the %2
  318. argument.
  319. May 2020 2.02.04
  320. ------------------------------------------------------------------------------
  321. help.c Updated the MSLP helpfile.
  322. scan.c Added #scan forward, does the same as #textin.
  323. substitute.c Added a warning when using &variable on an undefined variable
  324. in math operations.
  325. draw.c Updated the #draw line mode to behave more distinct from the
  326. #draw side mode. When teed a horizontal line can have only
  327. the left or right side teed when specified. Similarly a
  328. vertical line can have the top or bot side teed.
  329. banner.c Added the tt++ -g startup option to startup tintin with a gui.
  330. So far it only supports a connection manager.
  331. main.c Added the SYSTEM CRASH event, %0 holds the error message.
  332. screen.c #screen inputregion now takes a 5th argument to assign a
  333. name, can be used with the RECEIVED INPUT [NAME] event.
  334. screen.c Added #screen swap, swaps the input and scroll region height.
  335. mapper.c The MAP ENTER ROOM and MAP EXIT ROOM events will store the
  336. direction traveled in the %2 argument.
  337. draw.c #draw CALIGN will prune and center text.
  338. #draw LALIGN will prune and left align text.
  339. #draw RALIGN will prune and right align text.
  340. #draw TALIGN will show the top of the text if it is too long
  341. to fit the square, cutting off the bottom. The default is to
  342. bottom align and cut off the top.
  343. #draw UALIGN will unwrap and rewrap text.
  344. math.c Added very basic ? : ternary operator support in #math. It
  345. currently only supports simple assignments like:
  346. #math result $variable < 5 ? 0 : $variable
  347. screen.c Added several #screen get INPUT_ options.
  348. daemon.c Added DAEMON ATTACHED and DAEMON DETACHED events.
  349. mapper.c Added #map flag quiet, gets rid of build walk spam.
  350. event.c With mouse pixel mode enabled the %7 argument of a mouse
  351. event will contain nw, n, ne, w, c, e, sw, s, se, depending
  352. on where on a character you clicked.
  353. You can, for example use #if {"%7" == "{nw|w|sw}"} to check
  354. if the left side of a character was clicked.
  355. help.c Added #help edit and #help editing
  356. config.c Added the #config mouse pixels option for pixel precision.
  357. Requires the latext xterm or mintty release to work.
  358. tokenize.z The default ! repeat character can now be used in scripts.
  359. Use with caution. To repeat the last command when you press
  360. ctrl-enter use: #macro {\e[13;5u} {!}
  361. tintin.h Increased BUFFER_SIZE from 30KB to 40KB.
  362. screen.c Added #screen scrollbar on/off, currently only works with
  363. mintty / wintin++. Allows using the scrollbar with tintin's
  364. own scrollback buffer. Works automatically once enabled.
  365. list.c Changed #list simplify to work in a similar manner as
  366. #list sort and #list order.
  367. draw.c #draw now takes a second color argument. First color argument
  368. sets the box color, the second sets the text color.
  369. split.c Updated #split to take a 5th argument to set the height of
  370. the input region, #split without an argument defaults to
  371. #split 0 1 0 0 1.
  372. event.c Added event group lookups, can use #event mouse to see all
  373. mouse events.
  374. edit.c Added the [CATCH] EDIT FINISHED and EDIT STARTED events.
  375. cursor.c Added #cursor {page} which has several sub-options that can
  376. be used in edit mode.
  377. ctrl-home is bound by default to #cursor page home
  378. ctrl-end is bound by default to #cursor page end
  379. cursor.c Added #cursor {soft enter} which allows inserting new lines
  380. while in edit mode, it's bound to shift-enter by default. A
  381. regular enter will exit edit mode.
  382. edit.c Added the #edit command, used to enter edit mode and perform
  383. various edit buffer operations.
  384. cursor.c Added #cursor up and #cursor down, moves cursor up/down in
  385. multiline input regions.
  386. event.c Added the INPUT MOUSE event, which triggers when using the
  387. mouse in the input region.
  388. cursor.c Added multiline input support. Use #screen inputregion to
  389. enable. For example:
  390. #screen inputregion -3 1 -1 -1
  391. #split 0 3
  392. cursor.c #cursor preserve macro and reset macro have been moved to
  393. #cursor macro {preserve|reset}
  394. #cursor echo and #cursor insert have been moved to
  395. #cursor flag {echo|insert} {on|off}
  396. input.c Added infinite input support, TinTin++ will still crash
  397. somewhere down the line until the rest of the engine has
  398. infinite string support as well. When CHILD LOCKED the
  399. input buffer is capped.
  400. class.c Added #event CLASS LOAD <NAME>, triggers after a class is
  401. loaded.
  402. Added #event CLASS CLEAR <NAME>, triggers before a class is
  403. cleared.
  404. scan.c Added the #scan dir <dir> <variable> option, will scan the
  405. given file or directory and store the info in the provided
  406. variable.
  407. scan.c Modernized #scan, includes a warning when the old syntax is
  408. used.
  409. variable.c #return now returns a local result, this should solve issues
  410. with function nesting.
  411. list.c Added #list {<list>} index {nest} which can be used to index
  412. a two dimensional table as a one dimensional list. After a
  413. table has been indexed, #list find, order, sort, and reverse
  414. will work.
  415. triggers.c Added the <900> color tag which can be used in substitutions
  416. to restore the text color to the original text color.
  417. #sub {\bsmurf\b} {<bdf>smurf<900>}
  418. #showme {<afa>A smurf is smurfing here.}
  419. draw.c Added the SCALED drawing option. When used the size of the
  420. square is increased depending on the size of the inputted
  421. text.
  422. buffer.c #buffer find now places the found keyword at the top instead
  423. of at the bottom of the page.
  424. path.c Added #path save {BOTH} <variable> to save both the forward
  425. and backward path, as well as any given delays. Keep in mind
  426. that delays will only work properly for forward going paths.
  427. path.c Added a third field to #path insert to specify the delay.
  428. mapper.c Added a delay field to #map exits, which will be used
  429. when using #path run with a delay argument.
  430. data.c Added #info sessions save which will save the data on all
  431. sessions to $info[SESSIONS].
  432. data.c #info session save now saves the data to $info[SESSION][NAME]
  433. rather than to $info[SESSION][SESSION_NAME]
  434. cursor.c Added #cursor position <column> to move the cursor to the
  435. given column.
  436. show.c Added RECEIVED ERROR event. Example:
  437. #event {RECEIVED ERROR} {#info stack}
  438. class.c Added #class {name} assign {argument} which will execute the
  439. argument, assigning all newly created triggers to the given
  440. class.
  441. draw.c Added #draw buffer, which draws the scrollback buffer based
  442. on the scrolling state.
  443. draw.c Added #draw foreground flag, which allows inactive sessions
  444. to draw.
  445. update.c Added END OF RUN event which triggers at the end of #map or
  446. #path run.
  447. Mar 2020 2.02.03
  448. ------------------------------------------------------------------------------
  449. data.c Added SESSION_ACTIVE field to #info session save
  450. mapper.c Added MAP CREATE EXIT and MAP DELETE EXIT events.
  451. history.c Added #history get <variable> <start> <end> option.
  452. draw.c Added #draw map <square> option.
  453. event.c Added MAP ROOM and MAP REGION mouse events. MAP ROOM only
  454. triggers when the mouse is above a room, MAP REGION triggers
  455. anywhere in the map region, as defined by default or as
  456. defined with #map offset.
  457. files.c #read will now warn if there is a possibly missing semicolon.
  458. config.c Can add non-colors in #config command_color by escaping the
  459. characters. Example: #con command <178>\>\ <128>
  460. line.c Added #line multishot {number} {argument} which should make
  461. all created triggers fire the given number of times before
  462. expiring.
  463. line.c Added #line local {argument} which should make all indirectly
  464. created variables local.
  465. variable.c Updated %h to allow #echo %+40h {some text}
  466. update.c Added the DISPLAY UPDATE event which is triggered right
  467. before the final display update when new data has become
  468. available.
  469. port.c Added PORT INITIALIZED and PORT UNINITIALIZED events, both
  470. can be prefixed with GAG to suppress the default system
  471. message.
  472. path.c Updated #path unzip to take the new speedwalk format.
  473. telopt_client.c Added IAC SB NAWS event, can be caught.
  474. split.c Added SCREEN SPLIT FILL event, which triggers on the
  475. split line drawing routine, can be caught.
  476. memory.c Added a custom memory stack, still a work in progress.
  477. utf8.c Added #config charset CP1251TOUTF8
  478. cursor.c Added #cursor {preserve macro} which when called from within
  479. a macro will preserve the macro state. Example:
  480. #macro {\cg} {#showme e: end\nh: home;#cursor preserve macro}
  481. #macro {\cge} {#showme end}
  482. #macro {\cgh} {#showme home}
  483. cursor.c Added #cursor {reset macro} which when called from within
  484. a macro will reset the macro state.
  485. path.c Added #path get {LENGTH|POSITION} <variable>
  486. Jan 2020 2.02.02
  487. ------------------------------------------------------------------------------
  488. config.c Added #config {packet patch} {auto} support which will
  489. result in automatic telnet eor/ga handling and automatic
  490. packet patching if #prompt is set correctly.
  491. help.c Added auto-link generation for #help when mouse tracking is
  492. enabled. Still experimental.
  493. mapper.c Added #map get/set direction/pathdir to get/set the current
  494. direction you are facing in numeric and alphabetic notation.
  495. tables.c Added italic and unitalic #highlight keywords.
  496. tables.c Pressing ctrl-delete will delete one word per default.
  497. mapper.c Fixed #map undo issues with #map insert and #map dig.
  498. mapper.c Now shows destination in #map exit <dir>
  499. base.c Added %+64b and %+64B support to #format to convert to and
  500. from base 64 encoding.
  501. Added %+64z and %+64Z support to #format to zip the string
  502. and convert it to base 64. May not compress it much but may
  503. have some utility to store passwords. Security through
  504. obscurity.
  505. Added experimental %+252b/z and %+252B/Z options for Base
  506. 252 encoding.
  507. draw.c Added FAT, CURSIVE, SCROLL, and SANSSERIF draw options.
  508. input.c ctrl-v will now correctly capture ctrl-alt-f and similar
  509. combinations. ctrl-v will also allow pasting blocks of text.
  510. Example added to the SCRIPTS file.
  511. event.c Added GAG SESSION CONNECTED, GAG SESSION CREATED,
  512. GAG SESSION DESTROYED, and GAG SESSION TIMED OUT events.
  513. mapper.c Added #map roomflag fog. Works like #map roomflag hide but
  514. the flag is auto cleared on entrance.
  515. line.c Added #line convert options.
  516. mapper.c Aded MAP CREATE ROOM and MAP DELETE ROOM events.
  517. utils.c Increased the entropy of the random number generator.
  518. list.c #list order sorts existing lists numerically.
  519. list.c #list sort sorts existing lists alphabetically.
  520. sort.c Added sorting routines utilizing quadsort.
  521. list.c Added #list reverse option.
  522. cursor.c Added default bindings for ctrl-left, ctrl-right, and
  523. ctrl-backspace
  524. screen.c Added advanced link support. To create an advanced link
  525. surround a keyword with the \e[4m keyword \e24m tags and
  526. prefix it with \e]68; code \a.
  527. #config mouse on
  528. #showme {\e]68;;1;test\a\e[4mthis is a test\e[24m}
  529. #event {SHORT-CLICKED LINK MOUSE BUTTON ONE} {#showme {[%4]}}
  530. screen.c Added basic link support. To create a basic link surround a
  531. keyword with the \e[4m keyword \e[24m tags. When clicked with
  532. mouse support enabled it'll spawn a LINK mouse event.
  533. mapper.c Added #map exitflag <dir> <option> GET <variable> support.
  534. event.c The %4 argument of mouse clicks once again reports the word
  535. that has been clicked, with %5 reporting the line. Under
  536. construction.
  537. screen.c Added #screen input <square> to define the input region.
  538. Currently only 1 line input regions are supported. Example:
  539. #screen input 1 1 1 -1 will put the input line at the top of
  540. the screen instead of the bottom. Under construction.
  541. Dec 2019 2.02.01
  542. ------------------------------------------------------------------------------
  543. data.c Added CWD field to #info system to get the current working
  544. directory.
  545. data.c Added the option to use #var var[\+1] to set and retrieve a
  546. literal +1 instead of referencing the first index. This
  547. behaves like the verbatim mode and the backslash is only
  548. valid at the start of the line.
  549. data.c Added #info unicode <character> option to display
  550. information about the provided character.
  551. Nov 2019 2.02.00
  552. ------------------------------------------------------------------------------
  553. regex.c Added support for using %+4s to match 4 spaces, or %+0..2d
  554. to match between 0 and 2 digits. Only works with letter
  555. arguments.
  556. regex.c Added %a regex as an alternative for %* because %+4* is
  557. not valid.
  558. regex.c Added %p regex which will match printable characters.
  559. regex.c Added %u regex which should match whole unicode characters.
  560. utf8.c Added BIG5toUTF8, KOI8toUTF8, ISO1toUTF8, ISO2toUTF8 charset
  561. config options.
  562. utf8.c Added GBK1TOUTF8 charset config option. When enabled 2 byte
  563. GBK codes are translated to unicode.
  564. utf8.c Added GBK-1 charset config option which should be able to
  565. handle GB18030.
  566. mapper.c Added a UNICODE GRAPHICS group to #map legend, this will
  567. allow you to customize most of the unicodegraphics symbols.
  568. variable.c Added #format <variable> %S option to do a spell check.
  569. Returns the number of errors found. Still a work in
  570. progress.
  571. People using %S to get the session name should switch to
  572. using #info session save.
  573. data.c Added #info session option, this data can be saved.
  574. draw.c Added #draw RAIN {<VARIABLE>} {[SPAWN]} {[FADE]} {[LEGEND]}
  575. Use tt++ -M for a default example.
  576. class.c Added #class clear, load, and save. See #help class.
  577. main.c Configurations and pathdirs are automatically assigned to
  578. the CONFIG and PATHDIR class on startup. Somewhat
  579. experimental as there may be unforseen complications.
  580. list.c Added #list <list> collapse.
  581. mapper.c Updated #map {} output.
  582. nest.c Added better #local support.
  583. variable.c Added #cat command. See #help cat.
  584. event.c Added SWIPED N/NE/E/SE/S/SW/W/NW events. These do not work
  585. on Termux yet, but I've asked the Termux dev to enable
  586. advanced mouse mode by default.
  587. draw.c Added #draw TABLE type which comes with the GRID option to
  588. change the drawing behavior. Requires a nested string
  589. argument. Under construction.
  590. mapper.c Added #map flag terrain on/off option to enable or disable
  591. terrain displaying. Default for new maps is on.
  592. mapper.c Added #map terrain <name> <symbol> [flag] and #map unterrain
  593. Creates a symbol, which can be colored, for the given
  594. terrain type. Density flags are DENSE, AMPLE, SPARSE, SCANT,
  595. omit for default density. Range flags are NARROW, STANDARD,
  596. WIDE, and VAST, omit for default.
  597. Decay flags are FADEIN and FADEOUT which speak for
  598. themselves. DOUBLE will expect the terrain symbol to be
  599. 2 characters or a double-width unicode character.
  600. variable.c Added %C format option to store the given number using
  601. chronological notation.
  602. People using %C to get the screen width should switch to
  603. using #screen get cols <var> and #screen get rows <var>
  604. mapper.c Added a 4th argument to landmarks which will indicate the
  605. distance from which the landmark will be visible in a future
  606. #map describe command.
  607. draw.c Added HUGE option to #draw. Only supports uppercase letters,
  608. numbers, and a few punctuations for now.
  609. cursor.c Added #cursor tab <list|scrollback> <backward|forward>
  610. option. Allows people with custom tab settings to upgrade
  611. to the new format before I start messing with it.
  612. list goes exclusively through the tab list, scrollback goes
  613. exclusively through the scrollback buffer, use both list and
  614. scrollback to go through both.
  615. line.c Added #line capture <variable> <command> option.
  616. mapper.c Added the MAP MOUSE LOCATION event to go along with the
  617. SCREEN MOUSE LOCATION event. MAP MOUSE LOCATION is more
  618. accurate than regular MAP click events. It needs to be
  619. trigged with #screen raise mouse location, which is not
  620. supported by all terminals.
  621. You'll need to use ./configure --enable-dec-locator for xterm
  622. to enable the MOUSE LOCATION events.
  623. list.c Added #list <var> shuffle
  624. mapper.c I'm working on a new speedwalk standard that will work with
  625. diagonal exits. Initial support is added to the #map at,
  626. #map goto, and the #map jump commands. Old speedwalk support
  627. is going to be left unchanged.
  628. The format is similar to old speed walks, except that
  629. speedwalks like 2ene need to be changed to 2e1n1e.
  630. #map jump and #map at will use virtual traversal, meaning you
  631. can move through walls as long as the destination is an actual
  632. location.
  633. #map move and #map goto will use physical traversal, meaning
  634. #map goto 10w only works if there is a straight line of 10
  635. rooms leading west, while #map move 10w will create 10 rooms
  636. if static mode is disabled. Keep in mind that #map move will
  637. trigger map movements events while #map goto will not.
  638. Regular #config SPEEDWALK speedwalks are unaffected.
  639. mapper.c Added MAP MOUSE LOCATION event which allows more accurate
  640. mouse clicking reports in unicode mode on terminals which
  641. support it. Appears to be some obscure compile time option
  642. on xterm.
  643. mapper.c AsciiGraphics and UnicodeGraphics mapping modes now report
  644. the exit that was clicked on MAP MOUSE click events in the
  645. %2 argument.
  646. screen.c Added #screen raise SCREEN MOUSE LOCATION, the SCREEN MOUSE
  647. LOCATION in turn will report row,col,-row,-col, as well as
  648. the row,col,-row,-col for the pixel position of the mouse
  649. within the character cell. %8 will report the pixel position
  650. as a 3x3 cell using values 1 through 9.
  651. mapper.c Added the BLOCK exit flag and room flag. Works like AVOID,
  652. but also prevents movement into the room.
  653. mapper.c Added #map landmark <name> <vnum> [desc] and #map unlandmark.
  654. Landmarks work as fast lookup aliases and to give tintin an
  655. idea of locations of interest to eventually describe the map
  656. in words for screen readers.
  657. mapper.c Added #map exit <dir> color <code> option.
  658. mapper.c Added exit coloring for avoid/hide/invis flagged exits.
  659. main.c Added -V startup option to show version number.
  660. daemon.c Added better link lost handling to daemons.
  661. cursor.c Fixed #help event section on {SCREEN FOCUS}.
  662. math.c Added metric suffix support to #math, see #help metric.
  663. variable.c Added #echo %M to print numbers using the metric system,
  664. supported suffixes are K M, m, and u.
  665. mapper.c Added #map sync <filename> which will try to synchronize the
  666. currently loaded map with the file being read. Should be a
  667. valid alternative to #map read at all times.
  668. Sep 2019 2.01.92
  669. ------------------------------------------------------------------------------
  670. mapper.c Added #map dig <exit> {{roomid}{<key>}} {NEW} support.
  671. Added #map goto {{roomid}{<key>}} {DIG} support.
  672. mapper.c Added the roomid field to map rooms. When using #map goto or
  673. #map run on a roomid regular expressions cannot be used.
  674. Roomid's are case sensitive, must be matched exactly, and
  675. are expected to be unique.
  676. daemon.c Added #daemon {kill|list}. See #help daemon.
  677. daemon.c Added #daemon {attach|detach}. See #help daemon.
  678. main.c Can launch tt++ with the -R argument to reattach.
  679. data.c Added #info MCCP option.
  680. draw.c Added TUBED drawing option.
  681. scan.c Added #scan FILE {commands} option. See #help scan.
  682. mapper.c Can provide multiple ; separated commands to #map move at
  683. once. For example: #map move {n;e;s;w}
  684. main.c Added support for starting tintin with telnet://host:port
  685. draw.c Added ANSI, UNICODE, JEWELED and FILLED prefixes.
  686. tables.c Removed #forall command.
  687. mapper.c Added #map center <x> <y> <z> to set the center of the map
  688. viewer, default is 0 0 0.
  689. split.c Added SCREEN SPLIT and SCREEN UNSPLIT events.
  690. nest.c Added VARIABLE UPDATED event.
  691. draw.c Added the BUMPED prefix to prefix a scroll region box with an
  692. enter. You create a scroll region box by using 0 as the top
  693. row argument. Treat the other arguments as if the top row
  694. is set to 1.
  695. draw.c Finished rounded box drawing, to get the old behavior use
  696. the CIRCLED prefix.
  697. config.c Added #config {mouse tracking} {on|off|debug|info|debug info}
  698. to enable/disable info/debugging for all mouse clicks.
  699. Use #config {mouse tracking} {on} to reset to normal.
  700. help.c Updated #help regex to state that %. and %+ should no longer
  701. be used. This will allow future expansion of tintin's regex
  702. syntax. Use {.} and {.+} and {.?+} instead.
  703. variable.c Added support for %+10w and %-10w to #format. Negative numbers
  704. subtract the given value from the screen width when wrapping.
  705. text.c Added initial tab displaying support.
  706. config.c Added TAB WIDTH config option.
  707. nest.c Added a notice for people still using $variable[] instead of
  708. *variable[]. I'll change $variable[] eventually to be
  709. identical to $variable[%*].
  710. math.c Added .. ellipsis support to define ranges in tables. It can
  711. also be used in #math to join two 32 bit integers into a 64
  712. bit integer.
  713. terminal.c Now initializing a more advanced keyboard mode upon startup,
  714. if a macro stops working check if you have to redefine it to
  715. a new sequence.
  716. math.c By default tintin does a string vs regex comparison when
  717. using == and !=. Added === and !== to do string vs string
  718. comparisons.
  719. config.c Made configurations less lazy, making it easier to detect
  720. when settings aren't properly inherited or changed globally.
  721. screen.c Added #screen scroll option, similar to #split but uses square
  722. notation to define the scroll region.
  723. screen.c Added #screen fill option.
  724. terminal.c Added SCREEN ROTATE PORTRAIT and SCREEN ROTATE LANDSCAPE
  725. events.
  726. mapper.c #map offset will now rescale along with the window.
  727. split.c The #split command has been changed to where it sets the
  728. number of top split lines if only one argument is given.
  729. The 2nd argument sets the number of bottom split lines which
  730. defaults to 1. The 3rd and 4th argument set the left and right
  731. split lines and when used will automatically enable vertical
  732. split mode.
  733. Split initalization will use unicode if #config charset is
  734. set to utf-8
  735. buffer.c The #buffer get syntax has been changed to treat 1 as the
  736. oldest line in the buffer, and -1 as the most recent.
  737. Unfortunately that's not backward compatible, but it's in
  738. line with the other row behavior changes, so at least it
  739. will be consistent.
  740. text.c With #split enabled and #config wordwrap set to a positive
  741. value tintin++ will attempt a vertical split.
  742. draw.c More feature complete, see #help draw.
  743. vt100.c Added better cursor save/restore handling.
  744. update.c Added support for centisecond delays (0.01) and moved ticks to
  745. deciseconds (0.1).
  746. Reduced input and session polling lag from 25 ms to 5 ms,
  747. which comes at a slight increase in cpu usage.
  748. draw.c Added TEED prefix for #draw, subsequently #draw middle and
  749. #draw center have been removed as they did the same and
  750. were somewhat confusing terms.
  751. misc.c Added some #bell options, see #help bell.
  752. #bell {flash|focus|margin|ring|volume} {argument}
  753. variable.c #format %X now will also take unicode characters as input.
  754. #echo %X ┓ displays 2513 and #showme \u2513 displays ┓
  755. path.c #path run no longer uses delays but uses its own timer system,
  756. you can use #path stop to stop running, and if you enter
  757. #path run again you'll continue where you stopped.
  758. trigger.c Named delays are now automatically converted to one shot
  759. tickers. #undelay will use #untick if the argument begins
  760. with a letter.
  761. mapper.c Changed #map destroy to #map destroy {area|world} {arg}
  762. files.c Added {READ ERROR} and {WRITE ERROR} events.
  763. trigger.c Added #line oneshot support to all triggers and variables.
  764. line.c Added #line oneshot to create oneshot triggers. Right now
  765. only works for #ticker.
  766. line.c Added #line debug to execute given line in debug mode.
  767. substitute.c #config color is now taken into account when displaying
  768. color codes, downgrading colors as needed.
  769. tables.c When using color names in highlights all lowercase color names
  770. will be dark by default, while capitalized color names
  771. will be light. So 'blue' is dark while 'Blue' is light. This
  772. allows using 'b Blue' for a light blue background.
  773. draw.c Added the ability to prefix a draw option with a color name
  774. or color code to draw colored lines and boxes.
  775. Aug 2019 2.01.91
  776. ------------------------------------------------------------------------------
  777. vt100.c Added %2 rows %3 cols arguments to the VT100 SCROLL REGION
  778. event to increase ease of use.
  779. mapper.c Changed #map at to also take an exit for the location.
  780. data.c No longer saving or displaying the priority of triggers which
  781. are set to the default priority.
  782. mapper.c Added #map map <rows> <cols> draw <square> to draw the map at
  783. the given location. This is no real alternative for using #map
  784. offset as #map offset allows mouse map events.
  785. draw.c Added unicode drawing options.
  786. line.c Added #line logmode {html|plain|raw} {argument} Allows you
  787. to execute a command with a temporary logging mode.
  788. mapper.c Now drawing + and - for muds using nu dn eu ed exits.
  789. macro.c Added ^ support to macros to make a macro only trigger at the
  790. start of input. If you want to macro a literal ^ use \^ at
  791. the start of the line. It behaves very similar to the ~ for
  792. color triggers.
  793. mapper.c Improved exit drawing in unicode mode.
  794. draw.c Added #draw command and #help file.
  795. mapper.c Added #map update option to force an update of the vtmap. Keep
  796. in mind the vtmap will only update once every 0.1 seconds.
  797. screen.c Added #screen clear {split|top|bottom} to clear split lines.
  798. config.c Added #config {wordwrap {on|off|number} when a number is given
  799. tintin will wrap at the given width, and will also report the
  800. given width to MUDs over TELNET.
  801. config.c Added #config {telnet} {on|off|debug} which allows enabling or
  802. disabling telnet support. The debug option is the same as
  803. #config {debug telnet} on and will eventually replace it. To
  804. disable debug mode use #config telnet on.
  805. help.c Added #help button
  806. button.c Added #button.
  807. Jul 2019 2.01.90
  808. ------------------------------------------------------------------------------
  809. mapper.c Added MAP FOLLOWED MAP event which triggers on map movement.
  810. %0 = new vnum %1 = old vnum %2 = exit name. Keep in mind
  811. that this event isn't triggered when using #map goto.
  812. config.c Added #config {PACKET PATCH {AUTO} option which currently
  813. only enables to 0.1 seconds when #split is enabled.
  814. msdp.c Added MAP_ROOM_INFO msdp event.
  815. math.c Strings in #if and #math can now be defined using {string}
  816. instead of "string". The quote syntax will remain valid.
  817. mapper.c Added #map offset <row> <col> <row> <col> to define a square
  818. within which the vt map will be printed.
  819. screen.c Added #screen clear option which allows clearing the screen,
  820. the scrolling region, or a <row> <col> <row> <col> square.
  821. For all square operations you must define the top left and
  822. bottom right corner. Negative numbers are allowed which
  823. behave identical to #showme.
  824. mapper.c #map map now allows a very large range and when logging will
  825. use the configured log mode. This allows generating a large
  826. html map.
  827. mapper.c Improved the #map legend interface and made it easier to
  828. update by using the index number. I haven't added special
  829. legends for ascii and unicode graphic modes yet.
  830. buffer.c Added #buffer up 1 and #buffer down 1 to scroll the buffer up
  831. or down by one line. Values of 2 and higher are allowed as
  832. well with the maximum set at the screen size.
  833. msdp.c Added some SCREEN based MSDP events to #port. Renamed a few
  834. #screen arguments / events to something I was happier with.
  835. chat.c Added #chat accept <buddy> [boost] option for faster file
  836. transfer. The boost value must be between 1 and 1000.
  837. screen.c Added #screen get <top_row|bot_row|top_split|bot_split> <var>
  838. vt100.c Added VT100 SCROLL REGION event.
  839. main.c Added SYSTEM ERROR and CATCH SYSTEM ERROR events.
  840. mapper.c Added #map color symbol option.
  841. files.c Added accidental overwrite protection when trying to write
  842. a command file to a .map file. Use {force} to force. It's
  843. suggested to use .tin files for command files.
  844. mapper.c Added accidental overwrite protection when trying to save a
  845. map to a .tin file. Can add the {force} argument to force
  846. writing anyways. It's suggested to use .map for map files.
  847. mapper.c Made all map search options require a perfect match. To look
  848. for a sub string one needs to use #map find {text%*} or
  849. #map find {%*text%*}
  850. mapper.c Exits created in the global room should now work without
  851. needing to set a special alias that performs a #map goto.
  852. This also means that if you set the exit command on an exit
  853. in the global room it ought to work.
  854. mccp.c Enabled MCCP3 for #port which allows two-way compression.
  855. This should be useful for people who send a lot of data back
  856. and forth. It uses TELNET option code 87.
  857. port.c Added initial telnet support to #port. This still needs some
  858. more work to get MSDP working, and I'm also working on
  859. the ability to use JSON syntax with MSDP event handling.
  860. telopt_server.c Enabled.
  861. parse.c Added a debug call for incorrect abbreviation checks.
  862. mapper.c Added invisible exit flag. It's intended to make exits
  863. invisible. If you want to make hidden rooms invisible try
  864. #map color hide <208>
  865. mapper.c Added up/down exit flag colors in unicodegraphics mode.
  866. screen.c Added some more screen stuff, see #help screen.
  867. parse.c Added experimental change where in command lookups a space
  868. can be substituted with a _ character. For example
  869. #config {COMMAND ECHO} ON equals #config COMMAND_ECHO ON.
  870. If this change causes unforseen problems it'll likely be
  871. reverted.
  872. telopt_client.c No longer sending proper telnet replies for echo due to
  873. infinite loop problems on a few muds that improperly
  874. handle telnet negotiations.
  875. mapper.c Improved void room handling in unicodegraphics mode.
  876. prompt.c Using #prompt or #showme without a column argument will
  877. clear the line.
  878. main.c Improved signal handling.
  879. update.c The %2 value of TIME events now holds the day of the week
  880. instead of the week of the year. The value is between 0 and 6
  881. and specific events for each week day are possible.
  882. update.c The %3 value of TIME events holds the day of the month. The
  883. value is between 0 and 31 and specific events for a day of the
  884. month are now possible.
  885. main.c Updated system error handling.
  886. mapper.c Improved #map color command.
  887. mapper.c Further improved unicodegraphics mode.
  888. mapper.c Further improved blockgraphics mode.
  889. mapper.c Added #map color avoid
  890. mapper.c Added #map color hide
  891. prompt.c Changed #prompt to use the new {row} {col} input.
  892. mapper.c Changed the #map map command which now has the syntax:
  893. #map map {rows} {cols} {append|write|list|variable} {arg}
  894. terminal.c Changed WINDOW RESIZE %0 to list rows, and %1 to list cols.
  895. event.c Changed all MOUSE events to %0=row %1=col %2=-row %3=-row
  896. *.c Currently there are two big problems that need to be addressed
  897. to continue smooth development.
  898. 1. In VT100 row 1 is the top line, while in tintin row 1 is
  899. the split line.
  900. 2. In VT100 row, col (y, x) notation is used, while I've been
  901. favoring col, row (x, y) notation.
  902. While this may seem like a minor issue, I'm utilizing VT100
  903. more often using more complex operations, and TinTin++ is
  904. currently pretty much mirrored in the way it behaves. This
  905. results in relatively simple math becoming weird unintuitive
  906. math, making already complex code even more complex, resulting
  907. in bugs and unreadable code that requires a lot of mental
  908. gymnastics to figure out.
  909. Subsequently I decided on a major interface change that will
  910. result in several compatibility issues.
  911. #split will stay the way it is.
  912. #showme {text} will stay the same
  913. #showme {text} {0} will become invalid.
  914. #showme {text} {1} will print on the top line.
  915. #showme {text} {-1} will print on the bottom line / input
  916. line.
  917. #showme {text} {-2} will print on the default split line.
  918. #prompt {text} {substitution} will stay the same and print
  919. on the default split line.
  920. #prompt {text} {substitution} {0} will become invalid.
  921. #prompt {test] {substitution} {1} will write to the top line.
  922. #prompt {text} {substitution} {-1} will write to the bottom
  923. line / input line.
  924. #prompt {text} {substitution} {-2} will write to the 2nd line
  925. from the bottom, which is the default split line.
  926. All code that takes {col} {row} as an argument will be changed
  927. to {row} {col}. The main reason for this change is consistency,
  928. and because I've repeatedly swapped row and col in VT100 which
  929. can be a tricky bug to track down.
  930. session.c Added the 'ats' keyword to the session find routine to return
  931. the active tintin session.
  932. mapper.c Fixed the #map map {<width> x <height>} calculations.
  933. buffer.c When using #snoop on a session #showme and a few other things
  934. were not displayed. This should be fixed now.
  935. nest.c Added basic syntax highlighting for variables, only works
  936. when using #var {variable>
  937. tokenize.c Added basic syntax highlight for lists, only works when
  938. using #<list> {list}
  939. help.c Added TIME help file.
  940. tokenize.c Fixed a bug with nested #while commands.
  941. port.c Changed #event {PORT MESSAGE} to {PORT RECEIVED MESSAGE}
  942. which triggers when a message is received from a connection.
  943. Added #event {PORT MESSAGE} and {PORT LOG MESSAGE} which
  944. trigger on internal messages.
  945. All these can be prefixed with CATCH.
  946. variable.c Fixed two crash bugs in #format, it remains a somewhat
  947. vulnerable command, so you should never allow a 3rd party
  948. argument to set the format string of #format or #echo, though
  949. parsing 3rd party arguments as a #format/echo argument is safe.
  950. Safest is to use #line ignore #showme {text} if you want to
  951. print text that is ignored by triggers.
  952. telopt_server.c Added a TELNET server for #port, it's not hooked up yet,
  953. but the code merge may have caused some telnet bugs. Please
  954. report any unusual telnet behavior.
  955. mapper.c Fixed some issues with #map legend, should be able to use it
  956. to change the legend now.
  957. buffer.c Fixed some more scrolling issues.
  958. README Updated the README file and added the NEWS and docs/syntax.txt
  959. files. The NEWS file primarily contains a list of changes that
  960. impact compatibility between versions.
  961. tel_client.c Fixed CHARSET REQUEST handling.
  962. buffer.c Fixed longstanding issue with the handling of long lines.
  963. Mar 2019 2.01.8
  964. ------------------------------------------------------------------------------
  965. update.c Added MAP UPDATED VTMAP event, triggers right after each
  966. vtmap redraw.
  967. config.c Added CHILD LOCK config option to disable tintin command
  968. input. This is useful for people who want to give third
  969. parties remote access to a tintin++ session.
  970. line.c Enabled the #line substitute arguments option which has a few
  971. limited usecases.
  972. main.c Added better #! hashbang support, with %0 in the PROGRAM START
  973. event holding all unrecognized launch arguments. %1 holds the
  974. 1st argument (program name), %2 the 2nd argument, etc.
  975. data.c Added #INFO SYSTEM option, with #INFO SYSTEM SAVE saving the
  976. data to the info[SYSTEM] variable. Current variables
  977. supported are CLIENT_NAME and CLIENT_VERSION.
  978. event.c Added %4 and %5 arguments to mouse click events which hold the
  979. word and line that was clicked. Under construction.
  980. net.c Slightly improved traditional prompt handling, but the code
  981. will need a proper update to work properly.
  982. parse.c Added UNKNOWN COMMAND event, triggers on #jklfdjl and other
  983. non-existent commands.
  984. screen.c Added the #screen command, still under development.
  985. telopt.c Added VT100 OSC en CATCH VT100 OSC events.
  986. port.c Fixed an issue with #port and #chat on Mac OS X.
  987. mapper.c Added #map global which allow setting the vnum of a room that
  988. contains exits for global transportation commands, like for
  989. example the recall location.
  990. mapper.c #added #map roomflag noglobal to indicate rooms that block
  991. global transportation commands, like norecall rooms.
  992. input.c Added CATCH RECEIVED INPUT event.
  993. Added RECEIVED KEYPRESS event.
  994. Added CATCH RECEIVED KEYPRESS event.
  995. mapper.c Added support for up/down displaying in blockgraphics mode.
  996. mapper.c Added #map flag direction to enable/disable the showing of the
  997. direction arrow in the mapper. Also includes a minor
  998. modification in the legend.
  999. utf8.c Added KOI-8 to UTF-8 conversion support, which is enabled with
  1000. #config charset koi2utf
  1001. mapper.c Added #map flag blockgraphics mode, still needs some more
  1002. work.
  1003. variable.c Updated %a to take a UTF-8 sequence and print the
  1004. corresponding 21 bit decimal unicode value. This requires for
  1005. #config CHARSET to be set to an UTF-8 mode to work.
  1006. Updated %A to take a 32 bit decimal value and print the
  1007. corresponding unicode UTF-8 sequence. This requires for
  1008. #config CHARSET to be set to an UTF-8 mode to work.
  1009. Added %x which takes a hexadecimal value and prints the
  1010. corresponding unicode UTF-8 sequence.
  1011. Added %X which convers a 64 bit unsigned decimal value to
  1012. a 64 bit hexadecimal value.
  1013. Added %D which converts a 64 bit hexadecimal value to
  1014. a 64 bit unsigned decimal value.
  1015. math.c Fixed an issue with 63-64 bit math.
  1016. mapper.c Added #map flag unicodegraphics mode.
  1017. utf8.c Added #config charset FANSI option that maps code page 437 to
  1018. UTF-8. Requires an UTF-8 terminal to work and you can try out
  1019. fansi art at 8bit.fansi.org 4201.
  1020. main.c The -s startup option will start tt++ in screen reader mode.
  1021. mapper.c Added support for direction displaying in mudfont mode.
  1022. utf8.c UTF-8 character detection should be synched with xterm.
  1023. mapper.c #map legend is now completely different and supports various
  1024. default legends to choose from, namely:
  1025. [ASCII NESW ] [ 1] [ 32]
  1026. [UNICODE NESW ] [ 1] [ 32]
  1027. [UNICODE NESW LINE ] [ 1] [ 16]
  1028. [UNICODE NESW MISC ] [ 17] [ 24]
  1029. [UNICODE NESW DIRS ] [ 25] [ 32]
  1030. [UNICODE NESW TUBE ] [ 1] [ 32]
  1031. [MUDFONT BRAILLE TUBE] [ 33] [164]
  1032. [MUDFONT BRAILLE LINE] [ 33] [164]
  1033. [MUDFONT PRIVATE ] [ 33] [164]
  1034. [MUDFONT CURVED ] [161] [164]
  1035. [RESET ] [ 1] [164]
  1036. The legend exits of 164 characters and when setting for
  1037. example UNICODE NESW DIRS you're only redefining 8 characters
  1038. from position 17 to position 24.
  1039. prompt.c #prompt and #showme now take a 3rd argument that sets the
  1040. column number at which the text is printed. The column number
  1041. must be between 1 and the maximum width of the screen. If a
  1042. negative number is provided the distance is measured from the
  1043. right. The line isn't automatically cleared when using
  1044. #showme with a column argument.
  1045. input.c Added support for fullwidth UTF-8 characters. This won't be
  1046. working perfectly until unicode is better standardized.
  1047. config.c Added #config CHARSET BIG2UTF. When enabled text you receive
  1048. will be translated from BIG-5 to UTF-8, and data you send will
  1049. be translated from UTF-8 to BIG-5. This should allow someone
  1050. to play a BIG-5 mud using an UTF-8 capable terminal.
  1051. path.c Added #path describe to give a basic description of the
  1052. mapped path. Might be of interesting for anyone using a
  1053. screen reader.
  1054. utf8.c Added UTF-8 character width detection.
  1055. mapper.c When #map list is used with a variable the variable is now
  1056. properly cleared. In addition #map list will report the
  1057. relative x y and z coordinates of the found rooms which can
  1058. be used with #map jump. This update changes the table
  1059. structure of the variable returned by #map list.
  1060. mapper.c Added #map legend reset option and fixed legend saving.
  1061. mapper.c Added new mudfont mode based on the braille unicode block.
  1062. mapper.c Changed the RIVER map room flag to CURVED and added support
  1063. for it in simple and mudfont mode.
  1064. mapper.c Added click events that trigger when clicking a room on the
  1065. vt map reporting the room vnum.
  1066. session.c More properly terminating zombie processes after using #run.
  1067. telopt.c Added support for the CHARSET telnet option. Currently
  1068. supporting UTF-8, BIG-5, and FANSI.
  1069. path.c Added #path save <length|position> <variable> options.
  1070. Feb 2019
  1071. ------------------------------------------------------------------------------
  1072. There was a question regarding copyright and licensing
  1073. recently so I made some changes and I'm writing this entry to
  1074. clarify a few things.
  1075. 1992 Peter Joachim Unold released TINTIN III with the implicit
  1076. right to create derived works and the request for derived
  1077. work to rename the client and clearly state the author. On
  1078. usenet Peter Unold later confirmed that he considered his
  1079. source code release to be public domain.
  1080. 1995 Bill Reiss released TinTin++ 1.5 without a copyright notice,
  1081. two mentions of authorship, and the implicit understanding
  1082. that the work is considered public domain with the exception
  1083. of the tintin15.txt manual which is explicitly copyrighted to
  1084. Joann Ellsworth. It is also made clear that derived works
  1085. should not use the name TinTin++.
  1086. 2001 David Chan released TinTin++ 1.85 without a copyright notice
  1087. just like all previous TinTin++ releases and 4 mentions of
  1088. having made changes in the source code.
  1089. 2001 David Chan and Robert Ellsworth released TinTin++ 1.86 under
  1090. the GPL 2 or later with the 2002 copyright assigned to David
  1091. Chan, Robert Ellsworth, and a reference to the CREDITS file
  1092. on July 12th, 2001.
  1093. David Chan would have been unable to do so legally without the
  1094. explicit permission of Bill Reiss and several other notable
  1095. contributors unless TinTin++ 1.85 which was released without
  1096. a copyright notice or license was considered by all parties to
  1097. be public domain software.
  1098. Subsequently David Chan nor Robert Ellsworth could
  1099. retroactively return copyright to previous authors. However,
  1100. David Chan and Robert Ellsworth could consider themselves,
  1101. and they in fact did, the copyright holders of the public
  1102. domain TinTin++ 1.85 derived GPL 2 licensed software they
  1103. titled TinTin++ 1.86.
  1104. The reason they did this can only be guessed at, but I assume
  1105. they were tired of hosting, developing, and answering
  1106. questions about TinTin++. The easiest way to get the source
  1107. code permanently hosted was by debianizing it, which required
  1108. licensing the code under GPL 2, which could only be done by the
  1109. copyright holder.
  1110. 2001 The TinTin++ 1.86 package was debianized by Jordi Mallach
  1111. <jordi@debian.org> on 22 Aug 2001.
  1112. 2001 Robert Ellsworth, aka Joann Ellsworth, as the copyright holder
  1113. licensed the tintin15.txt manual under the GPL on 28 Aug 2001.
  1114. 2004 Igor van den Hoven received permission from Bill Reiss to
  1115. release TinTin++ derived code under the name TinTin++.
  1116. 2004 Igor van den Hoven released TinTin++ 1.90 on March 13 under
  1117. the GPL 2 or later with the 2004 copyright notice referring
  1118. to the CREDITS file. Due to the inclusion of the tintin15.txt
  1119. file the code could only be legally released under the GPL
  1120. 2 or later.
  1121. Version 1.90 featured a new mathematics engine and regular
  1122. expression interpreter, telnet negotations, a scroll back
  1123. buffer, enhanced VT102 interpretation, a more standardized
  1124. TINTIN scripting language, a nifty string formatter, internal
  1125. color manipulation, and a back to basics command structure.
  1126. TinTin++ 1.90 contained no source code from TinTin++ 1.86 and
  1127. over 50% of the 1.85 code had been deleted or rewritten.
  1128. 2008 Igor van den Hoven released TinTin++ 1.98.3 under the GPL 2
  1129. or later with the copyrighted tintin15.txt manual removed.
  1130. At this point 90% of the code was rewritten and what remained
  1131. was primarily heavily modified code originally written by
  1132. Peter Unold and Bill Reiss.
  1133. 2019 Igor van den Hoven released TinTin++ 2.01.8 under the GPL 3
  1134. or later. The copyright of over 99% of the source code is
  1135. held by Igor van den Hoven with minimal contributions from
  1136. others, making him the sole copyright holder.
  1137. TinTin++, as of version 2.01.8, may not be distributed under
  1138. GPL 2, and can only be distributed under GPL 3 or later. The
  1139. reason for this is the exploitation of a serious loophole in
  1140. the GPL 2 license.
  1141. The TinTin++ software as of version 1.87 is NOT public domain,
  1142. as the GPL 2 & 3 licenses explicitly require a legal copyright
  1143. holder in order to legally enforce the license. Nor do I
  1144. desire to relinquish my rights to do as I please with software
  1145. that I've worked on for close to 20 years.
  1146. If anything is unclear feel free to contact me.
  1147. Feb 2019 2.01.7
  1148. ------------------------------------------------------------------------------
  1149. class.c Added proper class nesting. When closing the active class,
  1150. the last active class is activated. This change will cause
  1151. trouble for scripts that don't properly close classes.
  1152. class.c Added #class {class} SIZE {variable} option to store the size
  1153. of a class in a given variable.
  1154. event.c Added the SHORT-CLICKED mouse events. It triggers when the
  1155. time between pressing and releasing the mouse button is
  1156. less than 0.5 seconds. The event is not triggered when
  1157. double or triple clicks occure, but will trigger on the
  1158. first click of a double click, just like a triple click
  1159. event will be preceded by a double click event.
  1160. event.c All mouse events now report the inverse x and y position
  1161. using the %2 and %3 arguments.
  1162. event.c Added the LONG-CLICKED mouse event. It triggers when the time
  1163. between pressing and releasing the mouse button is greater
  1164. than 0.5 seconds.
  1165. variable.c Added better support for wrapping escaped characters with
  1166. #format %w.
  1167. path.c Added #path create, destroy, goto, move start, stop, swap, undo
  1168. which are somewhat document in #help path.
  1169. You can now have a position on a path, which is displayed
  1170. with #path map. This allows using #path move backward when a
  1171. #path walk forward is interrupted.
  1172. Jan 2019 2.01.6
  1173. ------------------------------------------------------------------------------
  1174. tinexp.c Using $$variable in #action triggers is no longer valid. Use
  1175. $variable instead. If the variable needs to be substituted
  1176. right away use:
  1177. #line sub var {#action {$var} {#loop 1 3 cnt #showme $$cnt}}
  1178. event.c Added {DOUBLE-CLICKED} and {TRIPLE-CLICKED} mouse events
  1179. these events trigger on 2 and 3 clicks within 0.5 seconds.
  1180. A triple click will reset the mouse state.
  1181. event.c Added {MOVED }, {PRESSED }, {RELEASED } and {SCROLLED } mouse
  1182. events. Use #INFO EVENT ON to see the full events. The row
  1183. position is reported using the same method as with #prompt.
  1184. For each click three events are generated, one generic one,
  1185. one with the row position as measured from the top, and one
  1186. with the row position as measured from the bottom.
  1187. The MOVED event only triggers when the mouse is moved while a
  1188. button is pressed.
  1189. %0 contains the column and %1 the row.
  1190. config.c Added MOUSE TRACKING config option which enables mouse
  1191. tracking events. While mouse tracking is
  1192. enabled shift needs to be hold in order to select text with
  1193. the mouse if you want to copy and paste text.
  1194. cursor.c Added WINDOW FOCUS IN and WINDOW FOCUS OUT events.
  1195. tick.c Fixed micro delays not getting properly sorted.
  1196. event.c Added #info {events} {on} option to display messages when
  1197. events are thrown. As this can get quite spammy these
  1198. messages can be gagged as well.
  1199. gag.c Added #debug and #info messages for gags.
  1200. telopt.c Renamed all telnet events that prevent the execution of the
  1201. default telnet handling code to CATCH IAC <TELNET CODE> adding
  1202. several events that did not yet exist.
  1203. Telnet events without default handling code like MSDP and GMCP
  1204. were not renamed.
  1205. telopt.c Added better telnet loop protection for echo negotiations.
  1206. scan.c Changed #scan syntax to #scan {ABORT|CSV|TSV|TXT} {filename}
  1207. CSV reads a comma separated file which triggers the
  1208. SCAN CSV HEADER (first line) and SCAN CSV LINE (subsequent
  1209. lines) events. Values containing spaces require quotes, and
  1210. two quotes "" are required to escape a quote.
  1211. TSV reads a tab separated file which triggers the
  1212. SCAN TSV HEADER and SCAN TSV LINE events.
  1213. TXT is an updated and faster version of the old #scan.
  1214. The old #scan syntax is no longer supported.
  1215. config.c Changed the random number generator to 64 bit with each
  1216. session having its own unique seed that can be set with
  1217. #config {random seed}.
  1218. Jan 2018 2.01.5
  1219. ------------------------------------------------------------------------------
  1220. math.c Fixed bug with floating point math.
  1221. line.c Added #line verbatim option.
  1222. cursor.c Added the #cursor brace open, and #cursor brace close
  1223. commands. This to easily insert the { and } characters from
  1224. within a macro, which currently is rather complicated.
  1225. tinexp.c Added support for <Fxxxxxx> and <Bxxxxxx> 24 bit color codes.
  1226. F stands for foreground, B for background, xxxxxx is a
  1227. hexadecimal RGB value. The terminal must support truecolor
  1228. for these to work.
  1229. session.c Added on|off option to #snoop.
  1230. data.c Added #info {list} {LIST|SAVE} option to list the content of a
  1231. list or save it to a variable.
  1232. tokenize.c Improved trailing space parsing.
  1233. mapper.c Added exit weights.
  1234. mapper.c Added #map get all <var> option.
  1235. main.c Added the -a <argument> startup option, which is passed to the
  1236. %2 variable of the PROGRAM start event.
  1237. buffer.c Added #buffer lock {on|off} option.
  1238. session.c Fixed #port session close being shown as a time out.
  1239. tinexp.c Added \UXXXXXX escape code which takes 6 hexedecimal digits.
  1240. tinexp.c Added \uXXXX escape code, XXXX must be a 4 digit hexadecimal
  1241. unicode index, which is translated to a UTF-8 sequence.
  1242. tinexp.c @ $ * and & characters send from the server are only escaped if
  1243. the key matches an existing variable. Keep in mind that ${ *{
  1244. and &{ are always escaped.
  1245. tinexp.c Added support for <Fxxx> and <Bxxx> 12 bit color codes. F
  1246. stands for foreground, B for background, xxx is hexadecimal RGB
  1247. value. For example <F0F0> will print in bright green. The
  1248. terminal must support truecolor for these to work.
  1249. To use 24 bit truecolor codes use \e[38;2;R;G;Bm where R G B
  1250. are decimal values between 0 and 255. \e[48;2;R;G;Bm will print
  1251. background colors.
  1252. path.c Added support for multiple arguments to #unpathdir.
  1253. line.c #line log {filename} {text} was extremely slow, at least on
  1254. cygwin, because it was opening and closing a file descriptor
  1255. for each log call. Multiple logs to the same file are much
  1256. faster now, with each session having its own dedicated file
  1257. descriptor to speed up consecutive writes to the same log
  1258. file.
  1259. config.c Added config RANDOM SEED option to set a custom seed for the
  1260. random number generator. Useful for machine learning scripts
  1261. and some other obscure stuff.
  1262. system.c Added popen failure check for #script.
  1263. mapper.c Fixed issue with #map undo not properly handling void rooms.
  1264. nest.c Fixed memory issue causing a crash on very large variables.
  1265. config.c Added #config INHERITANCE option. Default is on, set to off
  1266. to prevent triggers from getting inherited. Configurations
  1267. are still inherited from the startup session.
  1268. config.c Added #config CHARSET AUTO option. TinTin++ will try to
  1269. automatically detect UTF-8 and BIG5 encoding.
  1270. session.c SESSION CREATED now triggers after the filename provided with
  1271. #session, #ssl, #run, or #port has been read.
  1272. parse.c Removed dot notation support for variables. #var bla.bli blo
  1273. is no longer valid, nor is $bla.bli. The code didn't add any
  1274. functionality while it was causing all kinds of issues. Sorry
  1275. for the inconvenience, not one of my brightest ideas.
  1276. telopt.c Updated MTTS to report SCREEN READER setting.
  1277. config.c Added SCREEN READER config option.
  1278. telopt.c Updated MTTS to report the ANSI, 256, and TRUE color setting.
  1279. config.c Replaced 256 COLOR config with COLOR MODE config option,
  1280. options are AUTO, NONE, ANSI, 256, or TRUE.
  1281. vt102.c Added truecolor COLOR PATCH support. Not well tested so far.
  1282. log.c Added truecolor html logging.
  1283. input.c No longer spawning blank lines with #config {command echo}
  1284. off, if you want the old behavior you can set your command
  1285. color to <008> or <aaa>.
  1286. tinexp.c Added %! as a regular expression option to prevent the auto
  1287. capturing of a match. For example %!*, %!w, %!d etc.
  1288. %!{ } can be used to the same effect to embed a regular
  1289. expression without automatically adding paranthesis.
  1290. tinexp.c Added an exception so %*{text} is treated as a regular
  1291. expression instead of a variable. As of the last version
  1292. *{text} is a valid variable.
  1293. variable.c Added the %H #format option to generate a 32 bit hash for the
  1294. given string.
  1295. substitute.c Fixed argument substitution problem.
  1296. main.c Can use #end {\} to terminate tintin silently.
  1297. system.c Added #scan abort option
  1298. Oct 2017 2.01.4
  1299. --------------------------------------------------------------------------------
  1300. main.c Added proper greeting handling for narrow terminals, mainly for
  1301. people using tt++ on an android phone.
  1302. variable.c Added proper \ handling in string length calculations.
  1303. variable.c #unvariable takes additional arguments to unvar several
  1304. variables at once.
  1305. tinexp.c Added support for *{variable} to show variable/table keys. This
  1306. is useful when low level data processing is needed.
  1307. For example, *{+1} shows the key of the first variable.
  1308. list.c Added #list {var} simplify {variable} option which saves a
  1309. list (which internally is a table) as a semi-colon separated
  1310. list to the provided destination variable.
  1311. {{1}{bli}{2}{bla}{3}{blo}} becomes {bli;bla;blo}
  1312. May 2017 2.01.3
  1313. --------------------------------------------------------------------------------
  1314. mapper.c Added #map legend support to assign custom characters for
  1315. the #map flag MUD FONT display mode. By default they're set
  1316. to map to the unicode private use area.
  1317. mapper.c By default an UTF-8 #map legend is created for those who do
  1318. not use ASCII graphics. The ANSI legend was pretty much
  1319. unusable and most terminals are supporting UTF-8 now. Windows
  1320. does not support all box drawing characters, hopefully this
  1321. will be fixed in the future.
  1322. mapper.c Removed support for the vtgraphics drawing mode which worked
  1323. on very few terminals.
  1324. utils.c Verbosity is automatically enabled for debug mode to avoid
  1325. logging inconsistencies.
  1326. port.c Added #port command, similar to netcat.
  1327. chat.c #chat prefix works now
  1328. math.c Better #math debug through #debug VARIABLE on
  1329. mapper.c Added map exit <dir> dir <number> option.
  1330. action.c Fixed action crash bug that slipped in
  1331. telopt.c Added telnet events for IAC GA and IAC EOR
  1332. Jun 2015 2.01.2
  1333. --------------------------------------------------------------------------------
  1334. mapper.c Added map <radius> <variable name> {v} option to save the map
  1335. output to a variable.
  1336. log.c html log files now correctly set the charset to UTF-8 or big5
  1337. if applicable.
  1338. tokenize.c Added support for local variables with the #LOCAL command. Most
  1339. commands that manipulate variables will use a local variable
  1340. if it has been declared.
  1341. utils.c Fixed crash bug on substitutions on system messages.
  1342. session.c Showing all connect retry attempts and seconds left.
  1343. session.c Any manual input while connecting will cancel connect retry.
  1344. main.c Can create macros for ctrl-d and ctrl-z again.
  1345. mapper.c Added #map color background option to set a background color
  1346. for the map display.
  1347. variable.c Added optional width argument to #format %w. Also added UTF-8
  1348. support to %w.
  1349. variable.c Attempt to fix %p crash bug on OS X.
  1350. Fixed compilation issue for OS X.
  1351. Jan 2014 2.01.1
  1352. --------------------------------------------------------------------------------
  1353. chat.c Added CHAT MESSAGE event, %0 contains the chat color and prefix,
  1354. %1 omits chat color and prefix.
  1355. chat.c Added #chat prefix option.
  1356. mapper.c Can now provide multiple flags at once when using
  1357. #map roomflag and #map insert.
  1358. line.c Added #line quiet option.
  1359. cursor.c Fixed tab bug with multi-word tabs.
  1360. event.c Fixed bug with events defined in multiple sessions.
  1361. tinexp.c Added @<session name>{<substitution>} option to perform a
  1362. function-like substitution in another session and retreive
  1363. the result. Primarily useful for getting variables.
  1364. highlight.c Added no-blink no-underscore and no-reverse #highlight options.
  1365. highlight.c Added option to use escape codes in the #highlight color field.
  1366. class.c Added #class {<class>} list {<list>} option.
  1367. mapper.c Added #map list {roomflag} option.
  1368. list.c Fixed bug with using #list clear on a nested variable.
  1369. substitute.c Added patch by Nya to properly handle colored substitutions.
  1370. math.c Added // operator to calculate sqrt // 2 or cbrt // 3
  1371. math.c Added ** operator to calculate power
  1372. tinexp.c Added IGNORE options to variables and functions.
  1373. main.c The command history is automatically saved again.
  1374. ssl.c Added SSL support based on KBTin code by Adam Borowski.
  1375. tinex.c $ @ and & are now escaped when received as part of an action for
  1376. added security.
  1377. session.c Added SESSION CREATED event.
  1378. parse.c Fixed command echoing when executing commands in another session.
  1379. Mar 2013 2.01.0
  1380. --------------------------------------------------------------------------------
  1381. session.c #session takes a filename as an additional argument, if the
  1382. session succesfully connects the file will be read.
  1383. variable.c Fixed #echo {%f} {5 / 3} handling.
  1384. cursor.c Added #cursor get and #cursor set options.
  1385. parse.c Added support for nesting using the . argument.
  1386. mapper.c Added map_search_compile option, increasing search speed.
  1387. list.c Added #list TOKENIZE option.
  1388. cursor.c Fixed the cursor PASTE BUFFER option.
  1389. event.c Added the VARIABLE UPDATE <VAR> event.
  1390. cursor.c Added stripping of semi-colons when auto tabbing.
  1391. configure.in Better error handling by Slysven.
  1392. Mar 2012 2.00.9
  1393. --------------------------------------------------------------------------------
  1394. line.c Added a #line strip option to strip color and escape codes.
  1395. mapper.c Fixed the handling of colored symbols in the ascii map.
  1396. input.c RECEIVED INPUT now triggers before input is parsed.
  1397. mapper.c Fixed #map undo handling for #map insert.
  1398. nest.c Fixed crash when using #var a[b]c x
  1399. tokenize.c Fixed crash when using #case outside a #switch.
  1400. cursor.c Added stripping of tailing dots and commas when auto tabbing.
  1401. variables.c #format %A now properly handles BIG5 and UTF-8.
  1402. session.c Added SESSION TIMED OUT event.
  1403. variable.c Fixed substitution problem with #unvariable.
  1404. mapper.c Added support for a {variable} argument to #map list to store
  1405. the returned data into a variable. Using {roomname} and
  1406. other keywords from #map set will work as well.
  1407. mapper.c Added #map exit <dir> save to store exit data in a variable.
  1408. mapper.c Added basic color compression support.
  1409. mapper.c Fixed the #map legend display in vtgraphics mode.
  1410. mapper.c Added automatic initialization of a UTF-8 based legend when
  1411. creating a map with #config CHARSET set to UTF-8.
  1412. mapper.c Fixed unnecessary redrawing of the VT map.
  1413. list.c Now properly handles nested arguments.
  1414. telopt.c Disabled telnet handling when using #run.
  1415. mapper.c Added better UTF-8 handling for room symbols.
  1416. net.c Added the RECEIVED PROMPT event.
  1417. variable.c Fixed a bug in #format with left aligning meta text.
  1418. mapper.c Fixed a bug with path finding related to weighted rooms.
  1419. mapper.c Added #map flag symbolgraphics option to display the room symbol
  1420. instead of a drawing symbol when in non asciigrahpics mode.
  1421. mapper.c Added #map color here option to set the color of the current
  1422. location.
  1423. mapper.c Fixed a path finding issue related to the avoid flag.
  1424. Sep 2011 2.00.8
  1425. --------------------------------------------------------------------------------
  1426. main.c No more advertisements.
  1427. mapper.c Back to void rooms only being allowed two exits, as handling
  1428. multi-exit void rooms adds too much complexity.
  1429. mapper.c Updated the fill_map routine to use breadth-first initialization
  1430. which should significantly improve execution times.
  1431. prompt.c Added proper UTF-8 string length checking for prompt drawing.
  1432. mapper.c Room names are no longer automatically set on creation.
  1433. mapper.c Added the #map vnum command to change the current vnum.
  1434. mapper.c #map link now requires the 'both' argument for a two-way exit
  1435. to be created.
  1436. variable.c Added support to #format for %f to print floating point numbers.
  1437. variable.c Fixed color spacing bug in #format's %s handling.
  1438. mapper.c Added terrain as a searchable option to #map list, goto, find,
  1439. and run.
  1440. mapper.c Added roomweight to the #map get and #map set options. By
  1441. default the weight of a room is set to 1.0 and can be anywhere
  1442. from 0.001 to 1000. The path finder will favor rooms with a low
  1443. weight.
  1444. mapper.c Made the layout of #map info more aesthetically pleasing and
  1445. added the listing of entrances.
  1446. substitute.c Fixed bug where functions could overwrite the original
  1447. substitution's arguments.
  1448. highlight.c Added support for xterm 256 color names, dark azure, dark ebony,
  1449. dark jade, dark lime, dark orange, dark tan, dark silver, dark
  1450. violet, light azure, light ebony, light jade, light lime, light
  1451. orange, light tan, light silver, light violet.
  1452. variables.c Added the %A #format option which prints the corresponding ASCII
  1453. value of the given character. Useful for low level string
  1454. handling.
  1455. Apr 2011 2.00.7
  1456. --------------------------------------------------------------------------------
  1457. main.c Added -s option to launch tt++ with a custom seed, undocumented
  1458. till I get to think it over.
  1459. math.c Improvements to #switch.
  1460. telopt.c Added basic low level VT100 stripping for answer back codes.
  1461. telopt.c Added MSDP array support.
  1462. mapper.c Added a set and get option to #map exit that stores and
  1463. retrieves from a data field.
  1464. mapper.c Added the terrain and data fields to #map set and #map get. The
  1465. data field is intended to contain a table, eliminating the need
  1466. for future extensions.
  1467. system.c When using #run followed by #zap the created child process will
  1468. be properly killed instead of left to hang as a zombie process.
  1469. tick.c When setting a delay the final delay time is echoed.
  1470. event.c Added some extra security to event triggers.
  1471. telopt.c Added MTTS support. On a third TTYPE request MTTS will be
  1472. reported followed by a bitvector that indicates whether ANSI,
  1473. VT100, UTF-8, and 256 colors are enabled. The UTF-8 and 256
  1474. color settings can be configured by the user. VT100 is reported
  1475. as disabled if #split mode is enabled - this because the split
  1476. screen mode needs to be disabled for server side VT100
  1477. interfaces to work.
  1478. system.c Added some extra security to the #script command.
  1479. system.c Changed the #script command to behave like a two argument
  1480. command in preperation of removing the rather awkward
  1481. single argument support.
  1482. line.c Added #line ignore option to execute a command without
  1483. checking any triggers.
  1484. config.c Added a 256 COLOR option. When called with auto it'll guess at
  1485. the terminal's 256 color capabilities.
  1486. variable.c When setting a variable the final variable definition is echoed.
  1487. variable.c Added support for BIG5 and UTF8 string formatting.
  1488. cursor.c Added support for BIG5 and UTF8 input handling.
  1489. config.c Added session based BIG5 and UTF8 #config CHARSET option.
  1490. substitute.c Fixed word boundary matching for substitutions.
  1491. highlight.c Fixed word boundary matching for highlights.
  1492. nest.c Math is no longer performed on table keys, mainly to reduce
  1493. annoying false positives, and because the behavior can be
  1494. scripted with math functions. Math is still performed when
  1495. looking up an index.
  1496. path.c Renamed #path map to #path show, #path map still works, but it
  1497. doesn't properly describe what the command does.
  1498. path.c Added #path unzip option that'll load a speedwalk.
  1499. line.c #line logverbatim is now fully verbatim.
  1500. log.c Added a #log off option. #log append and overwrite can now be
  1501. called while logging is already enabled.
  1502. Jan 2011 2.00.6
  1503. --------------------------------------------------------------------------------
  1504. buffer.c Added better multi-line scroll back handling when word wrap is
  1505. disabled.
  1506. telopt.c Braces are now properly converted in raw gmcp data.
  1507. highlight.c Fixed a bug causing only the first highlight on a line to
  1508. trigger.
  1509. line.c Added a #line {verbose} {<commands>} option which forces
  1510. verbosity on the given commands.
  1511. buffer.c The first match for #buffer find is now 1 instead of 0.
  1512. buffer.c Added support for negative page numbers, causing #grep to search
  1513. from the beginning to the end of the scroll back buffer. The
  1514. first page is now page 1 instead of page 0.
  1515. buffer.c Added a NULL check to prevent possible crashes, not ideal as it
  1516. hides an underlying bug.
  1517. net.c Added the RECEIVED OUTPUT event with %0 containing the received
  1518. output from the server. Can be used to create multi-line
  1519. triggers, though it wouldn't be very efficient.
  1520. main.c No longer enabling DECCKM on startup so keypad mode works
  1521. correctly with MinTTY, it should also result in more reliable
  1522. cross-terminal behavior. This might change the sequence of key
  1523. presses on some systems, so remap macros that stop working.
  1524. mapper.c Added #map resize <size> option to increase the maximum number
  1525. of rooms.
  1526. mapper.c Added #map get worldsize option.
  1527. mapper.c Added #map get worldflags option and fixed some displaying issues
  1528. in the #map exit command.
  1529. update.c Added several time events, YEAR, MONTH, WEEK, DAY, HOUR, MINUTE,
  1530. SECOND, DATE mm-dd, DATE mm-dd hh:mm, TIME hh:mm, TIME hh:mm:ss.
  1531. Events like YEAR 2012, MONTH 04, HOUR 13, are valid as well.
  1532. %0 to %6 hold year, month, week, day, hour, minute, and second
  1533. for each event.
  1534. math.c Added support for automatic dd:hh:mm:ss time to second
  1535. conversion. For example, #math test 1:12:32:17 would store
  1536. 131537 in test. #delay 10:00 #bell would ring the terminal bell
  1537. after 10 minutes. This change will effect associative arrays
  1538. consisting of numbers and colons.
  1539. tinexp.c Updated #replace to support regular expressions. Like with the
  1540. #regex command the &1..&99 arguments can be used.
  1541. Oct 2010 2.00.5
  1542. --------------------------------------------------------------------------------
  1543. session.c Fixed split settings not getting properly inherited from the
  1544. startup session.
  1545. advertise.c Updated with 2011 sponsors.
  1546. system.c do_script() and do_system() now call refresh_terminal(), this
  1547. due to php calls messing up the terminal settings.
  1548. terminal.c Added the refresh_terminal() function which will reset the
  1549. terminal settings to the tintin default.
  1550. mapper.c Fixed the MAP EXIT ROOM event, it was reporting the next room
  1551. rather than the current room for %0. %1 now holds the new room,
  1552. and MAP ENTER ROOM will hold the old room in %1.
  1553. mapper.c Added the option to make vnum specific events, like MAP EXIT ROOM
  1554. 42 or MAP ENTER ROOM 27.
  1555. vt102.c Fixed bug in the VT102 state handler.
  1556. mapper.c Added the option to provide a vnum for #map delete.
  1557. tokenize.c Fixed a bug with the verbose state being lost when starting a
  1558. new session using an alias.
  1559. tinexp.c Fixed a bug with embedded variables not getting substituted when
  1560. used in nested variables.
  1561. Aug 2010 2.00.4
  1562. --------------------------------------------------------------------------------
  1563. tokenize.c Added a better verbatim and verbosity handler to more
  1564. generically deal with aliases and input triggered events.
  1565. mapper.c Several mapper messages are no longer displayed when used in
  1566. scripts.
  1567. vt102.c Added proper \e[0;0r VT100 handling.
  1568. telopt.c Added IAC DONT TTYPE handling, allowing servers to reset the
  1569. TTYPE negotiation state.
  1570. telopt.c Added support for cycling through terminal types. On the first
  1571. TTYPE request TINTIN++ is reported, on the second request the
  1572. TERM environment variable is reported.
  1573. misc.c #zap now takes an optional argument to zap a specific session.
  1574. text.c When UTF8 is defined in tintin.h UTF8 characters should get
  1575. wordwrapped correctly.
  1576. telopt.c Added support for module like MSDP events.
  1577. mapper.c Added #map uninsert <direction> command which does the exact
  1578. opposite of the insert command.
  1579. mapper.c Added #map at <location> <command> command which executes the
  1580. given commands at the given location.
  1581. variable.c Allowing math in #format %t time seeds.
  1582. path.c Fixed #path zip command.
  1583. prompt.c Added better #prompt {line} {substitution} {0} support to print
  1584. a mud prompt and pending input on the 0 line.
  1585. mapper.c Added #map map 80x20 <filename> {a} option to log in append
  1586. mode, by default an overwrite is performed.
  1587. path.c Added the option to use #path load {n;e;s;w;u;d}
  1588. path.c When using #path run {delay} you can remove pending run commands
  1589. (fairly) safely using: #undelay PATH %d
  1590. This will also work for #map run {location} {delay}
  1591. Jul 2010 2.00.3
  1592. --------------------------------------------------------------------------------
  1593. mapper.c When path finding the path will be highlighted on the map.
  1594. telopt.c Added support for GMCP events and JSON to TINTIN conversion.
  1595. mapper.c Merged the #map exit and #map exitdir into the #map exit command,
  1596. adding options for COMMAND, DIRECTION, FLAG, NAME, and VNUM.
  1597. mapper.c Added support for exit flags, no actual exit flags have been
  1598. implemented yet.
  1599. mapper.c Added #map goto {vnum} {dig} option to have goto dig a room
  1600. if the room does not exist.
  1601. mapper.c Added #map dig {dir} {<vnum>} option to dig an exit to the
  1602. specified vnum.
  1603. mapper.c Added NOFOLLOW flag support to stop auto following of the
  1604. mapper.
  1605. nest.c Fixed freeze bug caused by using a semi-colon between
  1606. associative array elements.
  1607. variables.c Statements like %+10s now ignore colors.
  1608. variable.c Escapes are now handled correctly by %L in #format.
  1609. input.c Fixed an issue in echo_command causing broken packets to
  1610. be echoed without triggering any actions or events.
  1611. mapper.c When setting an exit command it will work like an alias when
  1612. in that room.
  1613. list.c #list {var} add now allows semi-colon separated arguments.
  1614. list.c #list {var} create now allows semi-colon separated arguments.
  1615. variable.c #variable allows additional arguments which can be used to
  1616. merge nested variables.
  1617. nest.c Added add_nest_node function which is a copy of set_nest_node
  1618. except that it doesn't clear the variable.
  1619. telopt.c Added MSDP_OPEN and MSDP_CLOSE support.
  1620. telopt.c MSDP arrays no longer generate an event for each item, instead
  1621. a list is generated.
  1622. tintin.h Lowered BUFFER_SIZE to 20000 because of crash reports.
  1623. files.c #write now only saves triggers that do not belong to a class.
  1624. mapper.c Added MAP ENTER MAP and MAP EXIT MAP events.
  1625. split.c Redrawing the VTMAP whenever the split settings are reset,
  1626. typically on session switch and screen resize.
  1627. Apr 2010 2.00.2
  1628. --------------------------------------------------------------------------------
  1629. line.c Added the #line substitute options which allows the
  1630. substitution of variables, functions, colors, and
  1631. escape codes in the given argument.
  1632. config.c Added a config option to enable BIG5 support.
  1633. mapper.c Added an optional vnum argument to #map get and #map set,
  1634. calling #map get on an invalid vnum results in the variable
  1635. being set to 0 while #map set calls on invalid vnums do
  1636. nothing.
  1637. terminal.c Added SCREEN RESIZE event.
  1638. session.c Added SESSION ACTIVATED and SESSION DEACTIVATED events.
  1639. nest.c Nested variable calls to non existing nests now return
  1640. "" rather than "0", this to allow $var[%*] calls to work
  1641. correctly with empty variables. I originally added the "0"
  1642. response for if checks, but this is obsolete with the
  1643. much more reliable &variable[] call.
  1644. buffer.c Added a check to avoid a potential crash on displaying the
  1645. scrollback buffer in show_buffer(), needs a better fix but I
  1646. don't have the time and patience.
  1647. tables.c Removed #suspend command, #cursor suspend is available instead.
  1648. tokenize.c Added BIG5 handling for #parse
  1649. tintin.h Fixed an error in the SCROLL macro that determines whether
  1650. something is printed inside or outside of the scrolling region.
  1651. tinexp.c Function arguments are no longer space but semicolon separated.
  1652. mapper.c Updated messages to be non triggerable and to only echo on manual
  1653. input.
  1654. Feb 2010 2.00.1
  1655. --------------------------------------------------------------------------------
  1656. help.c Added documentation for #map exitdir
  1657. net.c Fixed a bug with color patch prepending the current line's color
  1658. rather than the previous line's color.
  1659. vt102.c Improved 256 color patching handling.
  1660. vt102.c Added better \b handling, so muds using backspaces won't cause
  1661. wrapping or scrollback issues.
  1662. path.c #path load and #path save now load and save to variables, rather
  1663. than aliases.
  1664. mapper.c Added #map dig {<direction>} {new} option.
  1665. mapper.c Added support for loading map files edited in Windows.
  1666. tinexp.c Added support for separating function arguments using semicolons.
  1667. buffer.c Now only stores a buffer line as a simple variable if no upper
  1668. bound argument is given. Added support for dealing with a
  1669. lower upper bound to store the lines in reverse.
  1670. math.c Fixed floating point handling.
  1671. data.c Fixed floating point associative array handling.
  1672. Jan 2010 2.00.0
  1673. --------------------------------------------------------------------------------
  1674. list.c Changed substitution order for #list add to substitute before
  1675. breaking up the arguments.
  1676. tinexp.c Added escaping of existing functions using @@
  1677. tokenize.c Added tokenization of #regex.
  1678. data.c A trigger's priority can now be a floating point numbers.
  1679. tinexp.c Fixed COMMAND_SEPARATOR related bug introduce in 1.99.9.
  1680. misc.c Added escape substitutions to vt row echo calls.
  1681. buffer.c Added #buffer get option.
  1682. Nov 2009 1.99.9
  1683. --------------------------------------------------------------------------------
  1684. update.c Fixed crash bug with delays.
  1685. math.c Fixed issue with negative numbers.
  1686. main.c Fixed infinite reconnect trigger loop with #end.
  1687. tintin.h Can now alter the COMMAND_SEPARATOR definition in tintin.h to
  1688. change the command separator character.
  1689. buffer.c Added #buffer clear option.
  1690. math.c Fixed bug with ~ handling.
  1691. tick.c Fixed a bug with delays not substituting variables right away.
  1692. Sep 2009 1.99.8
  1693. --------------------------------------------------------------------------------
  1694. math.c Added check to bypass inf and nan in tintoi.
  1695. update.c Fixed a potential memory overflow in the input parser.
  1696. misc.c Fixed displaying bug with semi-colons in echos.
  1697. nest.c Added support for $variable[regex] to return lists. For
  1698. example $variable[%*]
  1699. tinexp.c No longer required to escape literal ^ and $ signs.
  1700. So #regex {A ^ B} {A ^ B} returns true now instead of false.
  1701. net.c Instead of exiting, tintin tries for 1 second to write data
  1702. to a session before closing the session.
  1703. tinexp.c $$<string> only gets converted to $<string> if $<string> makes
  1704. a valid variable. Same for &&<string>.
  1705. tokenize.c Added support for using ; in #foreach.
  1706. misc.c Added support for using ; in #forall.
  1707. mapper.c Updated the map grid to allocate memory for a future
  1708. #map dump 99x99 <file> command.
  1709. Jul 2009 1.99.7
  1710. --------------------------------------------------------------------------------
  1711. mapper.c Added #map color <rooms|exits> <color> option.
  1712. mapper.c #map list uses all location fields now, displays distance, and
  1713. no longer displays exits.
  1714. mapper.c Added desc, area, and note field to rooms.
  1715. mapper.c Added checking for exits as well as desc, area, and note for
  1716. the map goto and map find commands.
  1717. tokenize.c Substituting the arguments of #return.
  1718. nest.c $variable[] returns "" if the variable exists but has no nests
  1719. *.c Updated triggers to substitute variables.
  1720. tinexp.c Added %i and %I to toggle case in-sensitive matching.
  1721. misc.c Added #echo {{spam}{row}} support.
  1722. parse.c Yet another attempt to get verbatim mode working properly.
  1723. variable.c Renamed #replacestring to #replace
  1724. tinexp.c All commands now use tintin regular expressions. Instead of
  1725. * and ? use %* and %? - for perfect matches uses ^string$.
  1726. This change affects the #regexp and #if commands.
  1727. tokenize.c Added #write support for #loop and #foreach.
  1728. tokenize.c Added #foreach {list} {variable} {commands}
  1729. tokenize.c #loop syntax is now: #loop {min} {max} {variable} {commands}
  1730. variables.c The argument list of #format and #echo are no longer nested,
  1731. this probably requires many scripts to be updated.
  1732. nest.c Now only showing non existing nested variables as 0, unnested
  1733. variables will be shown as $variable if they do not exist.
  1734. files.c Added support for saving nested variables.
  1735. list.c Updated list support for nested variables.
  1736. data.c The kill command now takes a 2nd argument allowing to kill
  1737. specific items in the chosen list.
  1738. nest.c Added support for math within brackets.
  1739. math.c Added get_alnum routine.
  1740. nest.c Added support for $variable[] showing all indices.
  1741. nest.c Added support for $variable showing all nested variables.
  1742. nest.c Can now assign nested variables directly nested pairs of braces.
  1743. nest.c Added support for &variable reporting the variable's index.
  1744. tokenize.c Added #else command.
  1745. parse.c brackets now provide nesting so #var bla[bli bli] x will
  1746. execute as #var {bla[bli bli]} instead of #var {bla[bli}
  1747. data.c Accessing an variable index now requires +1 instead of 1.
  1748. mapper.c Added MAP EXIT ROOM event.
  1749. tokenize.c Added #switch #case and #default commands.
  1750. math.c Fixed crash bug with #math.
  1751. list.c Added list srt and ins support for nested list variables.
  1752. data.c Sorting numeric variables as integers instead of as strings.
  1753. text.c Fixed crash bug in wordwrap code.
  1754. net.c Fixed double action triggering on prompts in split mode.
  1755. variables.c $1 now references the first variable, $2 the second, etc.
  1756. variable.c Uninitialized variables now return 0.
  1757. data.c Added nested variables. As in #var $bla[this][that] 1
  1758. data.c Changing from linked lists to sorted arrays.
  1759. cursor.c Replaced #cursor echo with 'echo on' and 'echo off'
  1760. cursor.c Modifying the input buffer while tabbing will reset the
  1761. tab finder.
  1762. May 2009 1.99.6
  1763. --------------------------------------------------------------------------------
  1764. cursor.c Added forward and backward tab completion patch by Ben Love.
  1765. forkpty.c Added forkpty patch by David Champion. It allows tintin to
  1766. run on Solaris and other systems that lack forkpty().
  1767. April 2009 1.99.5
  1768. --------------------------------------------------------------------------------
  1769. *.c Made code c++ compatible.
  1770. system.c Added 2nd argument to textin for a cumulative per line delay.
  1771. telopt.c Added event handlers for MSDP, NEW-ENVIRON, and ZMP.
  1772. substitute.c #sub {trigger} {.} no longer gags text, use #gag instead.
  1773. substitute.c Now allowing multiple substitutions per line which are
  1774. automatically substring substitutions.
  1775. March 2009 1.99.4
  1776. --------------------------------------------------------------------------------
  1777. utils.c Fixed 100 move map crash bug.
  1778. input.c Now sending \r on enter when using #run, seems to give the best
  1779. behavior.
  1780. log.c Added xterm 256 color html logging.
  1781. terminal.c Disabled default ctrl-s and ctrl-q behavior.
  1782. March 2009 1.99.3
  1783. --------------------------------------------------------------------------------
  1784. data.c Now properly inheriting triggers from the startup session.
  1785. net.c Now fetching IP address when connecting to a server.
  1786. variable.c Now possible to use escape codes in #replace
  1787. vt100.c Tabs are no longer stripped in the scrollback buffer.
  1788. help.c Updated event helpfile with event arguments.
  1789. telopt.c Added generic telnet subnegotiation event.
  1790. telopt.c Added better broken packet support for telnet negotiations.
  1791. variable.c now possible to use #var bla {} to set an empty variable.
  1792. event.c Extended the event handler to easily accept additional arguments.
  1793. tinexp.c Now possible to send NUL bytes with #send using \x00 or \c@.
  1794. This is as far as the support for non strings goes though.
  1795. tinexp.c Can use #regex on an empty string now.
  1796. input.c Resetting command color at end of command.
  1797. tinexp.c %%w, %%*, etc, should escape properly now.
  1798. parse.c Fixed VERBATIM behavior, aliases can now be used in verbatim
  1799. mode.
  1800. alias.c Now possible to #ignore aliases.
  1801. highlight.c Fixed highlights.
  1802. March 2009 1.99.2
  1803. --------------------------------------------------------------------------------
  1804. tinexp.c Added pre-compiler for triggers, making them execute much faster.
  1805. input.c Macros now default to \ca to \cz for control characters instead
  1806. of readline's \C-a to \C-z. This because PCRE uses \c and it
  1807. makes sense to use a universal system. Old control codes still
  1808. work.
  1809. mapper.c Can now use #map create {number of rooms}, by default the number
  1810. of rooms is set to 15000. World size is stored as C <number> in
  1811. map files.
  1812. February 2009 1.99.1
  1813. --------------------------------------------------------------------------------
  1814. telopt.c Added MSSP support, use: #config {debug telnet} on, to see the
  1815. output from a MUD server supporting MSSP.
  1816. tinexp.c Added pre-parser to convert tintin globs to regexps.
  1817. tinexp.c Now using PCRE (Perl Compatible Regular Expressions)
  1818. tinexp.c Added \cx "control-x", where x is any character.
  1819. tinexp.c Added \0xx, where x is an octal number.
  1820. February 2009 1.99.0
  1821. --------------------------------------------------------------------------------
  1822. misc.c #showme and #echo now can have a / as a suffix to stop a
  1823. linefeed from being added.
  1824. vt100.c Added an extra measure to prevent losing track of the cursor
  1825. position.
  1826. documentation Updated the credits file and my mods file.
  1827. tables.c Added a full telnet option table.
  1828. tables.c Added END OF PATH event.
  1829. tokenize.c Now shows debug info for triggers with #debug enabled.
  1830. buffer.c No longer reprinting screen using page-up at the top of the
  1831. scrollback buffer to stop refresh lag with slow terminals.
  1832. tinexp.c Fixed incorrect displaying of xterm 256 background colors.
  1833. config.c Removed timestamp config option, a scripted #event based
  1834. alternative has been added to the SCRIPT file.
  1835. cursor.c Added cursor option for auto tab.
  1836. config.c Added auto tab option to set the amount of lines of the scroll
  1837. back buffer used for auto tab completion.
  1838. January 2009 1.98.9
  1839. --------------------------------------------------------------------------------
  1840. variable.c Rewrote the 'd' format option to use a digit, mainly to enable
  1841. the + option of normal digit formatting.
  1842. parse.c Fixed speedwalk toggle bug.
  1843. tinexp.c Added <g00> to <g23> xterm 256 color codes to support the
  1844. greyscale colors.
  1845. history.c Updated history command with the list, size and character
  1846. options.
  1847. tokenize.c Fixed ; issue sending out enters in the pre-parser.
  1848. action.c Fixed ; issue in actions, which managed to unfixed itself.
  1849. history.c Updated the history command, now takes #history list to view
  1850. the command history.
  1851. buffer.c Updated the buffer command to use generic command interface.
  1852. December 2008 1.98.8
  1853. --------------------------------------------------------------------------------
  1854. tokenize.c New pre-parser to deal with nesting issues.
  1855. misc.c Added #while {var} {commands} command.
  1856. misc.c #loop no longer works like a while loop.
  1857. misc.c The $loop, $parse, and $forall variables are no longer
  1858. automatically set.
  1859. Makefile.in Added tokenize.o
  1860. files.c #write now formats its output.
  1861. tinexp.c Casting regex arguments to integers so it works properly on os x.
  1862. config.c Added a config option to enable/disable MCCP support.
  1863. variable.c Changed %t format option to use a strftime format instead to
  1864. print the current time.
  1865. telopt.c Streamlined telopt handling slightly to deal with MCCP errors.
  1866. October 2008 1.98.7
  1867. --------------------------------------------------------------------------------
  1868. alias.c Variables can be used in alias triggers, working pretty much
  1869. the same way as they do in actions.
  1870. mapper.c When leaving a map a last room is set, which can be returned
  1871. to with #map return. The last room is stored when saving a map,
  1872. and #map return will work as well after reading in a map.
  1873. help.c Updated the math helpfile with available bit operations.
  1874. misc.c #echo no longer triggers actions.
  1875. help.c Updated the showme and echo help entries.
  1876. mapper.c #map map now takes an optional <x>x<y> size argument and an
  1877. optional filename argument to log the map output to file.
  1878. Useful for people who want to tail -f -s 0.1 a map window.
  1879. config.c Added a timestamp config option to add timestamps to log
  1880. files using the strftime format.
  1881. September 2008 1.98.6
  1882. --------------------------------------------------------------------------------
  1883. mapper.c No longer need braces to use the delay option in map travel
  1884. and map run.
  1885. mapper.c Added static room flag.
  1886. mapper.c Can now specify on/off for setting global flags and room flags.
  1887. mapper.c Added breadth first support for the map drawing routine, based
  1888. on code by Bryan Turner.
  1889. mapper.c Added support for 3 letter room symbols.
  1890. alias.c Variables passed along as an alias argument now go by value
  1891. instead of by reference.
  1892. mapper.c Added the asciivnums flag which displays room vnums in the ascii
  1893. map.
  1894. August 2008 1.98.5
  1895. --------------------------------------------------------------------------------
  1896. mapper.c Added #map jump <x> <y> to goto rooms using coordinates
  1897. relative to the user's current room.
  1898. list.c Added #script {var} {command} option.
  1899. input.c Fixed bug with the first input character being ignored in
  1900. character mode.
  1901. tinexp.c Can now escape variables using 2 or more dollar signs.
  1902. cursor.c Fixed bug with ctrl-w
  1903. cursor.c Fixed bug with ctrl-r's input offset.
  1904. mapper.c When using #map find, run, and goto and there are multiple
  1905. matching rooms the nearest room will be returned.
  1906. July 2008 1.98.4
  1907. --------------------------------------------------------------------------------
  1908. cursor.c Added glob/regex support to reverse history searches.
  1909. tinexp.c wildcard searches should work as old again, and regexp searches
  1910. work more like old wildcard searches.
  1911. tick.c Can use variables for ticker names.
  1912. mapper.c Changed #map exit to #map exitcmd
  1913. mapper.c Added #map exitdir command, which allows setting a direction
  1914. for unusual exits so they can be displayed on the map.
  1915. mapper.c Changed #map walk to #map run, and fixed the optional delay
  1916. argument.
  1917. mapper.c Fixed optional delay argument for the #map travel command.
  1918. mapper.c Void rooms can have more than two exits again if the exits form
  1919. a straight line.
  1920. mapper.c Fixed going through void rooms with #map travel.
  1921. variable.c #format will use the current time if no time value is provided
  1922. for the %M %Y %D %d and %t arguments.
  1923. mapper.c asciigraphics is now the default map display setting.
  1924. terminal.c Enabled the ISIG flag allowing ctrl-c to be mapped.
  1925. cursor.c Updated ctrl-d to allow exiting tintin.
  1926. cursor.c Updated ctrl-c to clear the line rather than exiting tintin.
  1927. config.c Changed #config {echo command} to #config {command echo}
  1928. config.c Added the #config {command color} {<000>} option.
  1929. mapper.c #map insert now allows adding a roomflag as the 2nd argument.
  1930. tinexp.c Can now use %{variable} besides %0 - %99 in actions.
  1931. June 2008 1.98.3
  1932. --------------------------------------------------------------------------------
  1933. mapper.c It's now possible to use strings in the map legenda, mainly for
  1934. terminals supporting UTF-8.
  1935. mapper.c Void rooms now work with unusual exits as well.
  1936. mapper.c Added some unlisted map commands to the #map and #help listing.
  1937. input.c Verbatim mode now only works on manual input, actions and macros
  1938. will have their commands processed normally.
  1939. mapper.c #map map now accepts a given radius.
  1940. config.c #config packet patch now takes a floating point seconds argument
  1941. instead of milli seconds. The valid input range is between 0.00
  1942. and 10.00 seconds.
  1943. config.c Added the #config regexp on/off option.
  1944. input.c Added the RECEIVED INPUT event.
  1945. tinexp.c Added the match function to work with #config regexp.
  1946. cursor.c Added support for deleting words forwards using alt-d
  1947. path.c Added #path zip option to format a created path into
  1948. speedwalk notation.
  1949. tinexp.c \[ and \] no longer escape to { and }, instead \x can
  1950. be used, the values are shown in #help escape.
  1951. tinexp.c All regexp's should substitute escape codes.
  1952. tintin19.txt Rewrote the large manual file to contain a brief up to date
  1953. manual instead. #help remains the primary help source.
  1954. tintin15.cr Removed the tintin15.txt copyright notice as the documentation
  1955. by Robert Ellsworth is no longer used.
  1956. May 2008 1.98.2
  1957. --------------------------------------------------------------------------------
  1958. tables.c Home and End now use cursor home and end.
  1959. input.c Added support for \x and \b in macros.
  1960. net.c Fixed a bug with stacking prompts.
  1961. cursor.c Pressing ctrl-r (history search) while searching will place
  1962. the found search in the input field.
  1963. cursor.c Added left_word and right_word for alt b and f behavior.
  1964. March 2008 1.98.1
  1965. --------------------------------------------------------------------------------
  1966. main.c Command history is no longer automatically saved and loaded.
  1967. history.c Added history read and write option.
  1968. cursor.c Fixed displaying of ctrl-r reverse command history search.
  1969. *.c Added punctuation to most messages.
  1970. *.c Fixed function arguments overwriting action arguments.
  1971. tinexp.c { and } in triggers will be translated to \x codes.
  1972. line.c Added the line command to group #gagline and #logline.
  1973. tables.c Added the 'program termination' and 'received line' events.
  1974. February 2008 1.98.0
  1975. --------------------------------------------------------------------------------
  1976. cursor.c Added the #cursor enter option
  1977. input.c Fixed #macro usage in character mode.
  1978. chat.c Fixed an exploit to erase files with #chat.
  1979. chat.c Fixed a crash bug in the negatiation routine, apparently
  1980. sscanf doesn't check line feeds.
  1981. chat.c Lowered the maximum read from socket size to half of
  1982. BUFFER_SIZE to prevent buffer overflows.
  1983. log.c Fixed a coloring bug with html logging.
  1984. alias.c Fixed a bug with alias parsing.
  1985. December 2007 1.97.9
  1986. --------------------------------------------------------------------------------
  1987. highlight.c Added 'dark' as a valid color name.
  1988. vt102.c Added get_color_codes function.
  1989. text.c Now printing the previous color code on each new line.
  1990. config.c Added a color patching option.
  1991. log.c Fixed append logging in html mode for cygwin.
  1992. parse.c Went back to the more robust old school memory usage with
  1993. some changes to still allow for recursion.
  1994. telopt.c re-enabled GA prompt handling.
  1995. main.c Fixed a bug with the startup argument routine.
  1996. November 2007 1.97.8
  1997. --------------------------------------------------------------------------------
  1998. input.c Fixed some chinese character related issues.
  1999. parse.c Fixed some chinese character related issues.
  2000. tinexp.c Added the option to use %00 to %99
  2001. tinexp.c Must now escape using %% rather than %%90
  2002. path.c Added #path run <delay> option.
  2003. highlights.c #highlight now colors all matches on a line.
  2004. tinexp.c Functions now only use %0 to %99 rather than &*
  2005. October 2007 1.97.7
  2006. --------------------------------------------------------------------------------
  2007. variable.c Fixed some coloring issues with the %w format option.
  2008. input.c Macros no longer trigger with config convert meta enabled.
  2009. net.c Fixed prompt handling issue for triggers in split mode.
  2010. tinexp.c Added the regexp command to use regexp string comparisons.
  2011. August 2007 1.97.6
  2012. --------------------------------------------------------------------------------
  2013. input.c Fixed some server side VT issues with command echoing.
  2014. text.c Tintin no longer line wraps when word wrap is disabled, this to
  2015. fix pasting issues, and assuming that most terminals will line
  2016. wrap correctly.
  2017. history.c No longer add input with less than 2 bytes to the history.
  2018. cursor.c Added prefix history searching.
  2019. files.c Fixed verbose behavior when reading a file which reads a file.
  2020. net.c Fixed address reporting in #session.
  2021. variable.c Added %w option to wrap text.
  2022. August 2007 1.97.5
  2023. --------------------------------------------------------------------------------
  2024. Fixed some bugs in socket handling.
  2025. #run now shows the stderr when failing to run.
  2026. Fixed a bug with #config {packet patch}.
  2027. July 2007 1.97.4
  2028. --------------------------------------------------------------------------------
  2029. Added the #run command to run various applications inside tintin.
  2030. Added packet defragmentation at the socket level.
  2031. Fixed a buffer overflow in the scrollback buffer's prompt
  2032. handling.
  2033. July 2007 1.97.3
  2034. --------------------------------------------------------------------------------
  2035. Added the #script command to run any kind of script client side.
  2036. Fixed a variety of minor bugs.
  2037. June 2007 1.97.2
  2038. --------------------------------------------------------------------------------
  2039. Fixed buffer overflow with receiving several prompts.
  2040. Fixed bug with scrollback lines not being properly deleted.
  2041. Added #map explore and #map travel options.
  2042. May 2007 1.97.1
  2043. --------------------------------------------------------------------------------
  2044. Added #map insert
  2045. Fixed bug with #list fnd
  2046. Fixed bug with prompts in buffer
  2047. Set #delay {name} {command} {delay} as alternative syntax
  2048. opposed to #delay {delay} {command}
  2049. April 2007 1.97.0
  2050. --------------------------------------------------------------------------------
  2051. chat.c Configure now detects a missing pthread library.
  2052. tick.c Delay now takes a name argument as the 3rd argument.
  2053. tick.c Added #undelay command.
  2054. cursor.c Added the option to paste deleted input with ctrl-y
  2055. March 2007 1.96.9
  2056. --------------------------------------------------------------------------------
  2057. list.c Added #list {list} clr option to empty a list.
  2058. list.c Added #list {list} srt option to insert in alphabetic order.
  2059. parse.c Defined a COMMAND_SEPARATOR variable instead of ';' checks.
  2060. utils.c Fixed some display issues for #showme and untriggered prompts
  2061. in split mode.
  2062. session.c Now uses #session {name} {host} {port}
  2063. tinexp.c Can now use %0 (all args) and %1 to %9 in functions.
  2064. memory.c Increased the maximum internal memory size from 10 to 50KB.
  2065. debug.c Set the maximum number of iterations to 10K.
  2066. February 2007 1.96.7
  2067. --------------------------------------------------------------------------------
  2068. mapper.c Fixed fast forwarding shortest path searches through void rooms.
  2069. mapper.c Fixed #map link not deleting old links.
  2070. mapper.c Fixed drawing of void rooms.
  2071. help.c Added a cleaned up version by Simon.
  2072. cursor.c History next and prev now put the cursor at the end of the line.
  2073. gag.c Seperated gags from substitutions.
  2074. files.c Inproved accuracy of #read's error report.
  2075. path.c Merged all path commands into one generic path command.
  2076. March 2007 1.96.8
  2077. --------------------------------------------------------------------------------
  2078. main.c Added getopt supported command-line argument handling.
  2079. main.c Added [-t title] option to set the title bar.
  2080. files.c Now stripping all trailing spaces and tabs in #read.
  2081. utils.c Added show_debug command to display debug messages a bit easier.
  2082. net.c Added IPv6 support.
  2083. cursor.c Added cursor_echo function to toggle local echo.
  2084. cursor.c Added cursor_insert function to toggle insert mode.
  2085. tinexp.c Using $variable[index] now works with lists.
  2086. variable.c Can set list indexes with #var {variable[index]} {text}
  2087. January 2007 1.96.6
  2088. --------------------------------------------------------------------------------
  2089. cursor.c Fixed behavior of ctrl-e for osx.
  2090. log.c Fixed newly introduced crashbug with #logline
  2091. highlight.c Now parses <###> color codes to allow for 256 colors.
  2092. function.c Can now use undescores in function names.
  2093. tables.c Added map list for #map undo and message handling.
  2094. main.c Added pathdirs for diagonal exits and spatial coordinate info.
  2095. mapper.c Now using spatial coordinates from pathdirs. This requires
  2096. users to reset their saved pathdirs. If used correctly mapping
  2097. should work for muds with a non standard exit system.
  2098. mapper.c Added movement history for #map undo
  2099. mapper.c Updated #map undo to use the map movement history
  2100. cursor.c Fixed bug in ctrl-e behavior
  2101. misc.c Removed old debug message in #send.
  2102. mapper.c Added room symbols.
  2103. mapper.c Added #map set to set various attributes
  2104. mapper.c Added #map get to get various attributes and store them as
  2105. variables.
  2106. mapper.c #map walk {location} {0.5} will now run to the location with
  2107. 0.5 second delays between commands.
  2108. input.c Added input_printf for consistent echo handling
  2109. tables.c Added generic variable and function substitution for #map
  2110. input.c Now checking for negative characters when converting meta
  2111. characters. Should fix issues when creating macros with
  2112. swedish and german characters.
  2113. buffer.c Can now use #buffer f with negative numbers to find the first
  2114. instead of last occurance of a string. Also made the no match
  2115. found string triggerable.
  2116. mapper.c Can now use case insenstive room finding with wildcards in
  2117. #map find and other room search related commands.
  2118. tintin.h Placed lists in alphabetical order.
  2119. event.c Added a basic event system, check #event
  2120. December 2006 1.96.5
  2121. --------------------------------------------------------------------------------
  2122. buffer.c fixed up color handling of commands.
  2123. *.c Put on my dirty boots and annihilated all lib readline related
  2124. stuff. Readline sucks donkey balls. You can quote me on that.
  2125. terminal.c Merger of echo.c and scrsize.c
  2126. terminal.c Added init_terminal to force character mode for input handling.
  2127. terminal.c Added custom screensize handling.
  2128. rl.c Now forwarding data on stdin to input.c
  2129. input.c Added basic command parsing options.
  2130. history.c Added tintin-esque command history support.
  2131. cursor.c Deals with cursor handling for input.c
  2132. tables.c Added a command table for cursor.c
  2133. cursor.c Added support for some readline-esque input handling.
  2134. tab.c Added my own (improved) tab handling.
  2135. tab.c Moved tab handling to cursor.c
  2136. vt102.c Made some improvements to the VT102 support.
  2137. cursor.c Added history browsing with up, down, ctrl-p and ctrl-n. Made
  2138. some minor improvements over the readline version.
  2139. utils.c Added ins_sprintf function that properly inserts a string
  2140. within another strong. Has formatting capabilities.
  2141. input.c Added process_input as the main input function.
  2142. input.c Added read_line function for default command parsing.
  2143. input.c Added read_key function for character mode.
  2144. main.c Moved suspend and exit functions to main.c
  2145. main.c Fixed #suspend handling.
  2146. split.c Now adjusting NAWS when changing split screen.
  2147. cursor.c Added do_cursor for using cursor features in macros.
  2148. history.c Added do_history for history manipulation.
  2149. rl.c Moved to update.c
  2150. *.c Tintin is now officially lib readline free. Good riddance.
  2151. The binaries are 40% smaller.
  2152. tinexp.c Added 256 xterm color support using <aaa> to <fff> with rgb
  2153. values. Background colors are set with <AAA> to <FFF>
  2154. tintin.h Added gtd->flags for global flags instead of using cludgy
  2155. flags on gts->flags.
  2156. cursor.c Added cursor_redraw_line routine which adds readline input
  2157. scrolling behavior. Tintin will probably work quite poorly on
  2158. non VT100 terminals now.
  2159. tables.c Added list flags to work around the fact that I use lists for
  2160. stuff they weren't originally intended for. Updated list parsers
  2161. throughout the source code.
  2162. main.c Added a signal handler for SIG_TSTP to handle ctrl-z smoothly.
  2163. input.c Escaped unmatched sequences are now automagically meta converted.
  2164. cursor.c history prev and next can now be used in combination with the
  2165. history search function.
  2166. mapper.c Improved map drawing by using virtual coordinates.
  2167. mapper.c Added a flag to enable vt graphics mode. A hopefully universal
  2168. legenda is: 250 223 222 200 220 186 201 204 221 188 205 202 187
  2169. 185 203 206 246
  2170. mapper.c Added a flag to draw 6x3 ascii graphics which allows displaying
  2171. rooms going ne, nw, se, sw, u, and d.
  2172. misc.c Can no longer use commas in #loop. When using 1 argument with
  2173. #loop it's assumed
  2174. misc.c Can now use math in delays, as in #delay 1d5 smile.
  2175. mapper.c Added the void roomflag which can be used to turn rooms into
  2176. links. This is mainly useful to fit overlapping areas on the
  2177. same map without using the hide flag.
  2178. December 2006 1.96.4
  2179. --------------------------------------------------------------------------------
  2180. class.c classes are now properly inherited from the main session.
  2181. misc.c fixed chinese character issue with #parse.
  2182. parse.c fixed parsing issues introduced in 1.96.3.
  2183. mapper.c debugged and updated alpha mapping code to beta.
  2184. tables.c added a mapping related sub-command table.
  2185. November 2006 1.96.3
  2186. --------------------------------------------------------------------------------
  2187. telopt.c Updated telopts to login on globalvillage bbs.
  2188. buffer.c Added buffer find option, which works much like grep but instead
  2189. places the scrollback buffer at the given search string.
  2190. tinexp.c Can now add lists of keywords between square brackets divided
  2191. by seperators, for example [his|her|its] in actions. The actual
  2192. text is stored in the next %0-9. Cannot be used for highlights.
  2193. list.c array_fnd function allows searching for words in lists.
  2194. path.c can now save loaded paths backward.
  2195. August 2006 1.96.2
  2196. --------------------------------------------------------------------------------
  2197. variables.c Removed #getitemnr, obsolete with the #list command.
  2198. variables.c Removed #getlistlength, obsolete with the #list command.
  2199. variables.c Removed #removestring, obsolete with the #replacestring command.
  2200. math.c Added tineval to properly evaluate == and !=
  2201. chat.c Now setting NONBLOCK on the chat port due to reports about
  2202. disconnects hanging tintin.
  2203. config.c Added #config {log level} {low|high} which is a hidden config
  2204. option. Defaults to high, when set to low tintin will log the
  2205. raw mud output.
  2206. August 2006 1.96.1
  2207. --------------------------------------------------------------------------------
  2208. misc.c Fixed a spacing issue in do_showme.
  2209. mapper.c Fixed map drawing.
  2210. telopt.c Fixed telnet negotations to login on ISCA BBS.
  2211. math.c Commas are now stripped from numbers.
  2212. math.c Added support for floating point math.
  2213. tick.c Can use 1d10 etc for the times in #delay.
  2214. main.c Added -h and -e as startup options.
  2215. June 2006 1.96.0
  2216. --------------------------------------------------------------------------------
  2217. data.c Rewrote #killall to accept arguments to kill specific lists.
  2218. chat.c Added #chat unitialize.
  2219. chat.c Added basic support for group chats.
  2220. chat.c Added support for colored names.
  2221. highlight.c Fixed crash bug for invalid highlights.
  2222. class.c Fixed crash bug with #killall related to classes.
  2223. chat.c Added #chat send which allows sending custom chat commands.
  2224. chat.c Fixed link lost crash bug.
  2225. April 2006 1.95.9
  2226. --------------------------------------------------------------------------------
  2227. input.c Fixed some bugs in the character mode support.
  2228. misc.c Placed the functions in alphabetic order and added #SEND which
  2229. will send the given argument directly to the mud. Useful for
  2230. sending escape sequences because you cannot start a mud
  2231. command with an escape sequence.
  2232. scrsize.c If in character mode tintin depreps the terminal temporarily
  2233. when sending NAWS. Yet another annoying readline bug.
  2234. chat.c Added DND (do not disturb) feature. When enabled tintin will
  2235. no longer accept new chat connections.
  2236. Fixed a bug in the DNS lookup routine for addresses starting
  2237. with a number.
  2238. Can now chat to people by entering their ip address. Useful to
  2239. deal with auto ip bans.
  2240. parse.c Complex multi words aliasses are now possible.
  2241. data.c Priority lists are now sorted alphabetically per priority level
  2242. class.c #class class read <file> no longer parses files for the given
  2243. class. The code was too messy to maintain. Instead it'll open
  2244. the class, read the file, and close the file.
  2245. alias.c Added support for complex multi word aliasses.
  2246. chat.c Added #chat public option, accepts the all argument.
  2247. chat.c Added #forward all which included session output
  2248. chat.c Added #color which sets the default color
  2249. chat.c Added a boost option for #chat accept to quadruple download
  2250. speeds, might cause file corruption on bad connections.
  2251. class.c Rewrote some code, #unclass should work now.
  2252. data.c Issueing #tick {name} twice will now reset the ticker.
  2253. math.c Fixed invalid input handling.
  2254. misc.c Snooping a non existant session no longer crashes tintin.
  2255. March 2006 1.95.8
  2256. --------------------------------------------------------------------------------
  2257. buffer.c While the concept works the code should be more solid. Fixed
  2258. some bugs in the buffer code causing scrolling to crash
  2259. on long help files.
  2260. buffer.c Added a #buffer lock option which resembles scroll lock.
  2261. log.c Fixed a bug in #log append which caused it to not generate
  2262. html headers.
  2263. chat.c Modified the threaded chat functions to minimize accessing
  2264. global data.
  2265. chat.c Fixed formatting bug causing chat messages containing %s to
  2266. crash the client.
  2267. chat.c #chat who now shows user flags
  2268. parse.c Removed old code that allowed using " " instead of { } in
  2269. a couple of commands such as #format. While I used it in
  2270. some example scripts the code is causing problems.
  2271. data.c Can now use #unmacro by exactly matching the macro instead of
  2272. having to use \\ for a single \.
  2273. input.c TinTin now enables character mode with echo off and SGA enabled.
  2274. December 2005 1.95.7
  2275. --------------------------------------------------------------------------------
  2276. main.c Added a command reference table to speed up the processing of
  2277. commands slightly.
  2278. tinexp.c The body of a by braces surrounded variable name will be
  2279. substituted now, allowing variables as variable names.
  2280. parse.c No longer sending message spam when using an alias
  2281. buffer.c Fixed a long standing crash bug in the buffer cleanup routine.
  2282. tinexp.c Now matching arguments in triggers like the old tintin did. This
  2283. will interfere with a couple of triggers but shouldn't be too
  2284. big a problem. %0 to %9 will capture the smallest possible
  2285. amount of text instead of the biggest.
  2286. telopt.c IAC EOR and GA spams are dealt with better with {debug telnet}
  2287. enabled.
  2288. telopt.c Dealing with packet fragmentation in the odd case an IAC EOR or
  2289. GA code is split, not sure if it works since it's hard to test.
  2290. October 2005 1.95.6
  2291. --------------------------------------------------------------------------------
  2292. chat.c Added multi threading for opening new chat connections.
  2293. parse.c Added protection for infinite loops.
  2294. utils.c Added hex_number translation function.
  2295. tinexp.c Can now use \x?? where ?? is a hexadecimal number.
  2296. *.c Changed usage of \e with \033 since \e isn't supported on all
  2297. systems.
  2298. misc.c #debug all log, logs debug info without displaying it.
  2299. Makefile.in make install now copies tt++ to /usr/bin
  2300. parse.c Can now disable verbatim mode after enabling it.
  2301. tables.c Got rid of unneeded table size for the command, help, and
  2302. config table.
  2303. variable.c Added %D %M %Y options to print the day month year.
  2304. misc.c Added parse command to parse strings.
  2305. misc.c Fixed double variable substitution for #echo.
  2306. August 2005 1.95.5
  2307. --------------------------------------------------------------------------------
  2308. chat.c Added some extra chat functionality: paste, serve, forward,
  2309. ignore and peek.
  2310. tinexp.c Fixed parsing of function arguments some more.
  2311. list.c Added #list command with basic list support.
  2312. August 2005 1.95.4
  2313. --------------------------------------------------------------------------------
  2314. tinexp.c Fixed some bugs in substitute that slipped in.
  2315. tinexp.c Added skipping of chinese characters in regexp functions.
  2316. data.c Fixed crash bug with killing classes
  2317. function.c Fixed an issue with #return in fuctions stopping the execution
  2318. of multiple commands.
  2319. rl.c pressing control-c while connecting will abort the connection
  2320. instead of exiting the program.
  2321. chat.c Added back the chat module that was originally included with
  2322. version 1.86. I pretty much rewrote it while at it.
  2323. configure BIG5 configuration was giving me issues on slackware.
  2324. Since I didn't feel like figuring out how the script works
  2325. I changed it from --enable-big5 to --big5 and fiddled with
  2326. the script till it seemed to work again.
  2327. July 2005 1.95.3
  2328. --------------------------------------------------------------------------------
  2329. tinexp.c Now substituting functions and arguments (if needed) in a
  2330. function's argument list.
  2331. tinexp.c Ending a command with \ will escape the EOL (\r\n) which won't
  2332. be appended to the end of the line. Same story for #showme.
  2333. telopt.c Added negotiating of EOR (end of record).
  2334. telopt.c IAC GA and EOR will now be seen as prompt markers.
  2335. files.c Now skipping chinese characters in #read
  2336. July 2005 1.95.2
  2337. --------------------------------------------------------------------------------
  2338. data.c Added option to use 'all' in #message, #ignore, and #debug to
  2339. toggle everything at once.
  2340. files.c Removed the #writesession command, it's obsolete with the new
  2341. #class command.
  2342. class.c #class write now adds #class open/close to the begin and end
  2343. of the file.
  2344. files.c Cleaned up a bunch of confirmation messages and made them
  2345. gaggable.
  2346. tab.c Variables and functions in a #tab are now substituted at
  2347. evaluation time.
  2348. Juny 2005 1.95.1
  2349. --------------------------------------------------------------------------------
  2350. files.c If the bracing level is off in the last line tintin reports
  2351. the correct line instead of 0.
  2352. rl.c reading the default readline init file when leaving tintin.
  2353. Should help with a couple of shells not handling this properly.
  2354. echo.c removed some experimental code that ended up causing double
  2355. echoing when switching between sessions.
  2356. split.c fixed screen switching for muds with native vt102 interfaces.
  2357. session.c added #session {-|+|number} options to switch between sessions.
  2358. files.c no longer showing output while using #scan to speed things up
  2359. for huge log files.
  2360. misc.c Added #return which used in an #if check allows bailing out of
  2361. a semicolon seperated command string. If used in a #function
  2362. you can also add an argument to it to set the result, as
  2363. opposed to setting the $result variable directly.
  2364. June 2005 1.95.0
  2365. --------------------------------------------------------------------------------
  2366. macro.c Added prompt handling for macro's. Still not perfect.
  2367. scrsize.c Fixed resetting of split data when resizing the screen.
  2368. split.c Now drawing split lines on all static regions to increase
  2369. clarity for newbies.
  2370. misc.c Can now use #showme {text} {row}, with a row number given
  2371. #showme will act like #prompt.
  2372. misc.c Can use #echo {{format} {row}} {{arguments}} as well.
  2373. rl.c Fixed #snoop messing up in #split mode.
  2374. parse.c Got rid of the code seperating high and low priority actions,
  2375. no longer valid with the #gagline command.
  2376. antisubstitute Removed antisubstitutions since there seems little reason to
  2377. ever need them.
  2378. rl.c Checking internal messages for prompt gags now
  2379. May 2005 1.94.9
  2380. --------------------------------------------------------------------------------
  2381. files.c Added #scan {filename} which will read in a file and send it to
  2382. the screen as if it was send by a mud. This allows one to view
  2383. raw color logs, turn on logging and save the file in a different
  2384. format, as well as adding gags and other text filters to make
  2385. things more readable. I set the default logging mode to raw
  2386. since ansi log files can now be converted to html ones.
  2387. data.c updatenode_list was acting odd, fiddled with it till it stopped
  2388. crashing. Not sure what the problem was.
  2389. May 2005 1.94.8
  2390. --------------------------------------------------------------------------------
  2391. rl.c Fixed packet patch, and added a default patcher for split mode.
  2392. Fixed the displaying of #alias, #action, etc.
  2393. May 2005 1.94.7
  2394. --------------------------------------------------------------------------------
  2395. main.c Fixed #split mode being handled correctly when suspending a
  2396. session.
  2397. data.c Removed excessive color usage when displaying triggers which was
  2398. resulting in crashes.
  2399. rl.c No longer clearing the screen when exiting tintin++.
  2400. table.c Added flags for commands, so far only automatically substituting
  2401. variables and functions for commands that have the sub flag.
  2402. May 2005 1.94.6
  2403. --------------------------------------------------------------------------------
  2404. rl.c Now adding all keyboard input to the scrollback buffer.
  2405. rl.c When in #split mode with no #prompt defined tintin tries to
  2406. mimic normal behavior, which includes placing input at the
  2407. end of the prompt.
  2408. prompt.c #prompt matched lines are now written to the scrollback buffer,
  2409. to simulate the old behavior make an #action executing #gagline.
  2410. May 2005 1.94.5
  2411. --------------------------------------------------------------------------------
  2412. rl.c Fixed a bug that caused prompts to be printed twice.
  2413. debug.c Fixed possible crash from overloading the debug stack.
  2414. variable.c Added #debug messages for #replacestring and #format.
  2415. split.c Fixed various #split bugs when creating or switching sessions.
  2416. buffer.c #buffer {i} will now give some info about the scrollback buffer.
  2417. tick.c #delay now works in the startup session. Tickers are still
  2418. disabled.
  2419. class.c #class <class> read <file>, now only reads in stuff that belongs
  2420. to the given class name. Hence in order for this to work you
  2421. need #class <class> open, and #class <class> close, calls in
  2422. the file itself for this to work.
  2423. help.c Removed David Chan from the credit screen shown when starting
  2424. up TinTin++. I'm sure he had the best intentions, but he spend
  2425. two years making insignificant changes, fiddling with variables,
  2426. adding patches written by others, before vanishing into thin air.
  2427. April 2005 1.94.4
  2428. --------------------------------------------------------------------------------
  2429. tintin.h Now using strtoll instead of atoll since old platforms only
  2430. support strtoll.
  2431. telopt.c With #config {CONVERT META} set to ON mud output will have
  2432. it's meta characters translated, this to aid in making color
  2433. triggers.
  2434. split.c Using #split 0 0 will create an input line without the split
  2435. line. Useful for people who don't use #prompt.
  2436. April 2005 1.94.3
  2437. --------------------------------------------------------------------------------
  2438. log.c Now flushing the log stream after every call so tailing a log
  2439. file is an option.
  2440. class.c Finished the #class command.
  2441. split.c placed #prompt stuff in prompt.c.
  2442. tinexp.c Added option to start a trigger with ~ in which case colors
  2443. are included in string comparisons and substitutions.
  2444. buffer.c Removed the #writebuffer command, must now use:
  2445. #buffer {write} {filename}
  2446. May 2005 1.94.2
  2447. --------------------------------------------------------------------------------
  2448. rl.c Internal messages are now printed to both the logfile and
  2449. scrollback buffer.
  2450. rl.c Fixed internal messages bumping the screen while scrolling in
  2451. locked mode.
  2452. rl.c Fixed a bug with displaying text that slipped in.
  2453. buffer.c Added the option to use #buffer h/u/d/e for scrolling.
  2454. tintin.h Removed unused macro DEFAULT_FILE_DIR.
  2455. utils.c utime() function doesn't work correctly on cygwin, changed it's
  2456. behavior to guarantee unique time stamps.
  2457. buffer.c No longer writing #grep output the the scrollback buffer
  2458. main.c Now clearing last command (often quit) when starting up tintin++
  2459. config.c Turned #debugtelnet command into a hidden config option.
  2460. Added a hidden config option named CONVERT META, which turns key
  2461. presses into macro readable keyboard input.
  2462. class.c Added basic support for classes, which is grouping for real.
  2463. tables.c Set substitute priority to save correctly.
  2464. May 2005 1.94.1
  2465. --------------------------------------------------------------------------------
  2466. log.c Added the option for a second argument to the #logline command.
  2467. If second argument is used it will instead print the given line
  2468. to file.
  2469. variable.c Added %G thousandgroupingstring function to format to change
  2470. for example 1000 into 1,000.
  2471. May 2005 1.94.0
  2472. --------------------------------------------------------------------------------
  2473. rl.c mainloop now uses a threaded call for the old mainloop. This
  2474. because the readline() function is blocking and I'm too lazy
  2475. to code the stuff readline takes care of.
  2476. The new mainloop tries to go at 100 loops per second.
  2477. session.c Got rid of connect_delay for connecting sessions. Now using
  2478. 1 timer.
  2479. tick.c Changed #ticker to use floating point precision.
  2480. Added delay command: #delay {seconds delay} {command}
  2481. variable.c #format, added %L to print the argument's string length, and
  2482. %U to print the number of micro seconds since epoch, increased
  2483. the number of arguments from 10 to 20.
  2484. misc.c Removed the #sleep command, never worked well and should be
  2485. obsolete with the #delay command.
  2486. misc.c #gagline, when called within an action it will gag the line.
  2487. rl.c The #snoop code wasn't working, fixed it up.
  2488. data.c Increased the buffer of show_list a little to avoid an overflow
  2489. macro.h Changed how macros work, fixing problems like needing a \n at
  2490. the end, needing an empty line, macros being added to the
  2491. command history. Still can't find a way to have rl erase macros.
  2492. Players can enter a command within a line of text using
  2493. [[ command ]].
  2494. Example: tell bubba (long line) [[chat hi bibbi]] (more text)
  2495. rl.c Added the option to delay displaying and parsing possibly broken
  2496. packets. Delay in micro seconds can be set with the PACKET PATCH
  2497. config option. By default it's set to 0 (disabled).
  2498. variables.c Fixed #replacestring which got messed up while I added variable
  2499. substitution to it.
  2500. rl.c Fixed echoing of commands in split mode.
  2501. split.c Changes split and prompt to work more logical, people might
  2502. have to change their scripts, new syntax:
  2503. #split {number of top lines} {number of bottom lines}
  2504. default equals: #split {0} {1}
  2505. Fixed possible color bleeding in the split line, this for noobs
  2506. who don't know how to use tintin's color codes.
  2507. files.c /* and */ now only work when used outside braces.
  2508. rl.c No more threading, made tintin crashy as well.
  2509. variable.c Added %n (name) to #format, which capitalizes the first letter
  2510. of the given string.
  2511. buffer.c No longer resetting the buffer if the new scrollback size
  2512. is the same as the old one.
  2513. rl.c prompts automatically get a newline added in split mode.
  2514. session.c Fixed problem with aliasses changing focus.
  2515. rl.c Made #snoop output non triggerable.
  2516. misc.c Added the $loop and $forall variables set in the #loop and
  2517. #forall commands. Avoids dodgy &0 behavior in #functions.
  2518. telopt.c Added dynamic allocation of buffer space for mccp and the
  2519. normal output buffer.
  2520. rlhist.c 1 character long commands are once again added to the command
  2521. history.
  2522. files.c If a bracket is missing TinTin gives a hint at what line the
  2523. error might be.
  2524. tinexp.c Added option to surround a variable with brackets.
  2525. variables.c Removed restrictions on variable names.
  2526. math.c Fixed bug with #if returning the wrong session pointer.
  2527. log.c Added #logline command for actions to log 1 line of text
  2528. rlhist.c If no repeat match is found an error message is printed.
  2529. parse.c Added a check to ingore a trailing ';'.
  2530. data.c Increased buffer size for displaying aliasses.
  2531. config.c Changed packet patch config option from micro to milli seconds.
  2532. files.c Changed calls to isblank() (GNU only) with isspace()
  2533. files.c Only stripping leading spaces now, so #var bla { } will work
  2534. once again.
  2535. files.c I got tired of confusing readnew and readold, so I removed
  2536. readold.
  2537. February 2005 1.93.9
  2538. --------------------------------------------------------------------------------
  2539. split.c Fixed infinite loop in do_unprompt
  2540. rl.c Added the option to call show_message() with a NULL argument
  2541. for more generic usage.
  2542. tintin.h Set BUFFER_SIZE to 10000 OUTPUT_SIZE to 65000
  2543. and FILE_SIZE to 150000
  2544. files.c Added option to #read and #write using a variable.
  2545. buffer.c Fixed some dodgy behavior of the scroll back buffer, it should
  2546. scroll ultra fast as well now.
  2547. The buffer command now only prints the last screen worth of
  2548. text, too lazy to re-code floating screen indexes atm.
  2549. Added scroll lock to the config menu, to freeze the screen
  2550. while scrolling.
  2551. February 2005 1.93.8
  2552. --------------------------------------------------------------------------------
  2553. tick.c Took care of uninitalized tickers firing prematurely.
  2554. session.c Added option to make a trigger on session termination.
  2555. files.c Added a check for #read being used on a directory.
  2556. rl.c Fixed home/end keys being bound correctly.
  2557. split.c Allowing multiple prompt triggers to fire on the same line
  2558. Fixed split line being 4 '-' short
  2559. December 2004 1.93.7
  2560. --------------------------------------------------------------------------------
  2561. tinexp.c Now only converting ; to : for actions, not for aliasses etc.
  2562. path.c Made END OF PATH message triggerable.
  2563. variable.c added the do_internal_variable command, which does the same
  2564. as do_variable, but allows to set a blank variable. Used by
  2565. do_format and do_replacestring.
  2566. rl.c added the show_message function which only shows messages from
  2567. setting aliasses, variables, etc when called from the command
  2568. line, unless debug is enabled.
  2569. rl.c Now using the more_output buffer previously only used by the
  2570. scrollback buffer to double check actions.
  2571. December 2004 1.93.6
  2572. --------------------------------------------------------------------------------
  2573. net.c Fixed a crash bug that slipped in with hiding passwords.
  2574. net.c Commands are now added to the buffer/log files while in split
  2575. mode.
  2576. highlight.c Fixed bug with variables and functions not being used.
  2577. Finished highlight code, it no longer messes up old colors.
  2578. October 2004 1.93.5
  2579. --------------------------------------------------------------------------------
  2580. files.c Added the option to comment using /* comment */ in script files.
  2581. math.c Upgraded to do 64 bit instead of 32 bit operations.
  2582. variables.c Added the replacestring command.
  2583. mapper.c Added the function find_coord, which tries to find a room at the
  2584. given coordinate, starting room being 0,0,0
  2585. October 2004 1.93.4
  2586. --------------------------------------------------------------------------------
  2587. math.c Fixed a crash bug that slipped in.
  2588. tinexp.c Set \[ to escape as { and \] to escape as }.
  2589. main.c Now setting application keypad mode and ESC 0 prefix on startup.
  2590. telopt.c Changed dont_oldenviron response to wont_oldenviron response,
  2591. reported to fix the ability to login on some server types.
  2592. September 2004 1.93.3
  2593. --------------------------------------------------------------------------------
  2594. log.c Fixed a typo that broke the log command, as well as adding
  2595. newlines to plain logging.
  2596. rlhist.c one letter commands are no longer added to the history.
  2597. August 2004 1.93.2
  2598. --------------------------------------------------------------------------------
  2599. mapper.c added the redit command, for basic mapper manipulation, still
  2600. needs a bit more work.
  2601. telopts.c Added a telnet patch from Julia Longtin which adds the basic
  2602. telopt negotiations to initialize a telnet session when
  2603. connecting to port 23.
  2604. rl.c Seeming the readline_echoing_p is reset to TRUE whenever
  2605. something is written to the terminal, so I simply set it to
  2606. whatever it should be several times a second now in the main
  2607. loop.
  2608. July 2004 1.93.1
  2609. --------------------------------------------------------------------------------
  2610. tintin.h added a room and exit structure for an auto mapper.
  2611. mapper.c added a creation functions for rooms and exits.
  2612. files.c added the #readmap function to read in a map.
  2613. mapper.c added a routine to display an ascii map.
  2614. mapper.c added an algorithm to calculate the shortest path between two
  2615. rooms.
  2616. main.c the verbatimchar is set as \\ instead of \ as default, this to
  2617. allow escaping braces at a later date with this config option
  2618. causing trouble.
  2619. June 2004 1.93.0
  2620. --------------------------------------------------------------------------------
  2621. log.c added variable substitution to *arg.
  2622. misc.c added variable substitution to *arg.
  2623. parse.c changed escape character behavior, #format will need %+4s
  2624. instead of %4s if used in an argument or action. Used to
  2625. be possible to use \%4s but that's no good.
  2626. tinexp.c \a \e \n \r \t are now translated to the according characters.
  2627. (\a equals what #bell does, \r\n would equal #cr, \e is ESC)
  2628. parse.c removed premature stripping of '\' character in the parsing
  2629. routines. Escaped characters are dealt with when data is send
  2630. to the mud or screen.
  2631. April 2004 1.92.0
  2632. --------------------------------------------------------------------------------
  2633. misc.c removed speedwalk command, it's a config option anyways.
  2634. March 2004 1.91.0
  2635. --------------------------------------------------------------------------------
  2636. parse.c made sure $variables are substituted in the parsing command,
  2637. as well as $vars being substituted as session A passes a
  2638. command to session B. Otherwise variables remain variable
  2639. untill the final execution stage.
  2640. data.c Added nesting syntax highlighting for lists.
  2641. math.c Added support for "T" and "F" (feature was lost in rewrite)
  2642. math.c Added the 'd' operator for a random dice roll
  2643. config.c rewrote some basic stuff in the configuration routines,
  2644. the original setup was a bit dodgy.
  2645. highlight.c Added priorities to highlighting
  2646. substitute.c Added priorities to substitutions
  2647. split.c Added check so a prompt isn't shown for background sessions.
  2648. variable.c Added %R and %C to #format for nr of rows and columns
  2649. March 2004 1.90.0
  2650. -------------------------------------------------------------------------------
  2651. misc.c added a higher precision to the #sleep command, you can now
  2652. enter #sleep 0.5 to sleep for half a second, precision is in
  2653. miliseconds. Also using nanosleep now, with additional support
  2654. to continue sleeping.
  2655. variables.c added %t to #format, which will print the epoch time.
  2656. added %T to #format, which will print the military time
  2657. of the provided number as: hours:minuts
  2658. added %d to #format, which will print the military data of the
  2659. provided number as: day:month:year (if there's no such thing
  2660. as a military date I hope you still know what I mean).
  2661. rl.c set tintin to 100 loops per second, might seem too much, but
  2662. it doesn't matter cpu wise, and it's always fun when tintin's
  2663. triggers beat those of most other client.
  2664. math.c added + - ! and ~ to the mathexp interpreter.
  2665. regexp.c added color support. codes are entered as <abc> and is pretty
  2666. much translated as : \e[a;b+30;c+40m with '8' counting as
  2667. a skipped color code. People can write their own functions to
  2668. make tintin display colors of their own choice.
  2669. variables.c added %R to #format, which will print a number between 1 and
  2670. the given number in the argument. Removed #random command.
  2671. added %m to #format, which will do the same as #math
  2672. regexp.c added option for end of line terminator ^ so adding ^ to the
  2673. end of the line will make tintin return false if the regexp
  2674. returns with an unfinished match string.
  2675. main.c I update the credit screen, figured it would appropriate to
  2676. put my own name on it after all this work. I turned it into
  2677. a helpfile while at it, #help credits should show it.
  2678. regexp.c made the substitute recursively double check variables and
  2679. functions if they hold a variable of a different kind, useful
  2680. for variables or functions holding color codes.
  2681. misc.c added ignore and debug commands, debug won't do an aweful lot
  2682. as of yet though.
  2683. variable.c figured I should add some more color support, so added a way
  2684. to format tintin color names, using #format %c {name}
  2685. variable.c #format again, %h will create a tintin header line.
  2686. variable.c fixed how variable assignment was being dealt with in triggers,
  2687. can now change and display variables correctly on the fly.
  2688. rlhist.c changed command repeation behavior.
  2689. rlhist.c removed the history command, no longer needed to look up the
  2690. index, just a working short memory.
  2691. config.c added repeat on enter option in config.
  2692. parse.c the command part of a line received by parse input
  2693. has vars and functions substituted right away.
  2694. If passing a command to another session the functions and
  2695. variables are substituted as well, setting the values of
  2696. the controlling session.
  2697. math.c Added the tintoi and tincmp functions, which are enhanced
  2698. versions of atoi and strcmp.
  2699. net.c Added some code to stop enters being written to the scrollback
  2700. buffer, useful for people using #cr to bust a prompt.
  2701. rl.c Got rid of the prompt saving stuff, now using brute force,
  2702. refresh the prompt everytime the screen is updated. This to
  2703. work around a bug in readline that gives odd behavior with
  2704. cursor movement.
  2705. March 2004 1.89.0
  2706. -------------------------------------------------------------------------------
  2707. math.c Added a close to complete mathematical expression routine.
  2708. Needs some work still but it works. Also allows for comparing
  2709. strings <= >= == != if you enclose the strings in " ". It's
  2710. quite a bit better than the old one, though it's not supporting
  2711. T, F, and '!' since it's string based, shouldn't be too hard
  2712. adding some better string support.
  2713. ivars.c stripped all the stuff that is now covered by math.c or
  2714. variables.c only leaving #ifexits. And then it occured to me
  2715. that #if {"$variable" != "$*"} {true} {false} would
  2716. very well replace the 'ifexits' check. So ivars.c is no more.
  2717. data.c deletenode_list now properly keeps track of a global update
  2718. node. Can only use one noderoot->update per program state.
  2719. session.c cleanup_session now properly keeps track of a global update
  2720. node. Can only use one gtd->update per program state.
  2721. rl.c fixed up the split screen behavior, should be a stable prompt
  2722. and correct text presentation in split mode now.
  2723. February 2004 1.88.0
  2724. -------------------------------------------------------------------------------
  2725. net.c added telopt negotiations in net.c for naws, terminal type,
  2726. and mccp (version 2)
  2727. tintin.h added the zlib library and a session buffer for mccp
  2728. tintin.h added a 64KB output buffer, I'll just asume that the mud
  2729. output contains a linefeed before BUFFER_SIZE is reached. This
  2730. should make output processing a bit smoother, and saves me
  2731. from fiddling too much with chopped up data.
  2732. rl.c added the tintin_printf and tintin_printf2 functions which
  2733. format the argument list and pass the data on to tintin_puts
  2734. or tintin_puts2
  2735. tintin.h changed the node list struct to work with a head/tail pointer,
  2736. and turned it into a double linked list, updated all .c files
  2737. affected by this change.
  2738. *.c cleaned up the code, using tabs instead of spaces and aligning
  2739. the brackets.
  2740. main.c switched from rand to rand48, it's seeded once upon startup
  2741. which is sufficient.
  2742. main.c added a global tintin session (gts) the idea is to get rid of
  2743. most global variables.
  2744. tintin.h added a bitvector to the session structure which will contain
  2745. all session flags, various changes throughout the code changing
  2746. global variables into flags.
  2747. rl.c fixed up the cursor positioning for split mode and fixed the
  2748. linewrap routine which was off by 1 character, resulting in
  2749. extra lines on a perfect match.
  2750. added a special flag for mud output for split mode, to avoid
  2751. color loss when restoring the cursor (which also restores the
  2752. cursor color, hence the color loss)
  2753. tables.c new c file, which will contain some tables, the current setup
  2754. is a bit tedious.
  2755. tintin.h moved all header files into tintin.h cause the old setup with
  2756. 40 headerfiles was giving me a headache (literally).
  2757. Grouped it into typedefs, globals, constants, macros,
  2758. structures and functions
  2759. tintin.h changed all commands to use the COMMAND typedef, as well as
  2760. all commands now use universal arguments and naming, this to
  2761. make a command table.
  2762. *.c There's always a session now, with a few checks for gts (global
  2763. tintin session) which cannot send or receive data. Passing
  2764. session data along with a couple of functions which should
  2765. make background sessions less spammy.
  2766. strhash.c Added a simple string hash routines which I'll be using for a
  2767. scroll back buffer. It uses a bit of memory, but should save a
  2768. lot more for big scroll back buffers.
  2769. main.c changed tstphandler to call kill with a null pid, otherwise it
  2770. wouldn't work when tintin was started from a script
  2771. ivars.c removed backwards compatibility for fixedmath
  2772. buffer.c scroll back buffer and a grep command added
  2773. rl.c made the init_readline function actually initilize readline,
  2774. added 4 default keybinds for the scrollback buffer.
  2775. tintin.h added a keymap to the tintin_data structure, which will be
  2776. used for keybinding.
  2777. text.c got rid of the linewrapper in rl.c and added a word wrap
  2778. routine instead.
  2779. log.c all vt102 codes cept the linefeed are stripped for logged data,
  2780. the lowlog thingie can still be used.
  2781. chat.c Removed this entirely, it's a mess and there are many stand
  2782. alone p2p chat programs available.
  2783. *.c moved some more global data to the session and data structures
  2784. rltick.c removed entirely
  2785. ticks.c removed entirely
  2786. tick.c wrote a new ticker from scratch, uses alarm(1) to sleep 1
  2787. second, the user can now define a list of tickers, pretty much
  2788. like aliasses, they'll trigger when the timer expires. Added
  2789. the 'tick' and 'untick' command for manipulation.
  2790. macro.c added 'macro' and 'unmacro' commands for keybinding, I couldn't
  2791. figure out how to actually undo the real macros though
  2792. without using a messy hack, so I just skipped that till later
  2793. for now.
  2794. session.c Got rid of the zombi code, will try to add a better connection
  2795. handler at a later data, but the zombi code is not the answer.
  2796. tintin.h Changed architecture further turning the lists from individual
  2797. lists into an array of lists. Added an array in tables.c for
  2798. additional data.
  2799. substitute.c Changed the default #gag char from '.' to character 255, this
  2800. to prevent weird behavior when a dot is displayed on an empty
  2801. line for any kind of reason.
  2802. config.c Added a configuration menu, defaults are loaded upon startup.
  2803. walk.c Removed, didn't really look into it deeply, but I adjusted
  2804. path.c to allow user progged walking using a ticker.
  2805. parse.c Added 2 action checkers, first one checks priority 0 to 4,
  2806. after that substitutions are checked, priority 5 to 9 is
  2807. checked after substitutions.
  2808. parse.c do_one_line now strips colors per default before passing the
  2809. text on to check_one_action
  2810. action.c rewrote the %0 - %9 check_one_action regexp routine, it's
  2811. a bit cleaner and slightly faster now.
  2812. action.c rewrote substitute_vars, ';' is changed to : per default
  2813. variable.c rewrote subsitute_myvariables, no longer supporting $number
  2814. variables. ';' is stripped per default. This also easily
  2815. allows a change so variables can contain numbers.
  2816. variable.c #format {variable} {format} {arguments}
  2817. This allows string formatting, numbers are not supported.
  2818. Added a format parser for further functionality, for now %l
  2819. will lowercase, %u will upper, and %r will reverse the
  2820. argument given. There's a maximum of 10 arguments.
  2821. variable.c Due to the format command, prepad, postpad, tolower, and
  2822. toupper are no longer required, so I removed the commands.
  2823. I realise this generates a backward compatibility issue, but
  2824. it's easier to find the new commands without 70 old commands
  2825. spamming the help files and command lists.
  2826. split.c moved the split screen stuff from rl.c to this new file, and
  2827. placed the prompt commands/routines there as well.
  2828. January 2004 1.87.0
  2829. ------------------------------------------------------------------------------
  2830. After getting tired of seeing my favorite mud client being
  2831. trashed on TMC or simply not having the required functionality
  2832. that is expected nowadays to be worth mentioning, I figured it
  2833. was time to see what I could do. So I downloaded the latest
  2834. official tintin++ release v1.86b and started an evaluation.
  2835. It didn't take long to find out the main problems. Over
  2836. functionality, inconsistant command syntax, total chaos,
  2837. anarchistic implementation views, all in all enough to end up
  2838. deleting about 33% of the code, and rewriting over 50% of what
  2839. remained. Halfways during that process I ran into Bill on the
  2840. wintin forum and I promptly asked him permission to release an
  2841. official tintin++ derivative. And it was agreed that I could,
  2842. if he liked what I came up with. To make a long story short, I
  2843. finished a beta version several weeks later and got Bill's
  2844. permission to name it tintin++.
  2845. The next step was getting permission for the manual, I googled
  2846. up a notification from the authors which said the manual had
  2847. been GPL'ed, see tintin15.cr, last issue fixed.
  2848. August 2001 tintin15.cr
  2849. ------------------------------------------------------------------------------
  2850. This package was debianized by Jordi Mallach <jordi@debian.org> on
  2851. Wed, 22 Aug 2001 03:23:36 +0200.
  2852. It was downloaded from http://mail.newclear.net/tintin/archive.htm.
  2853. Upstream Authors: Davin Chan <davinchan@earthlink.net>
  2854. Robert Ellsworth <rse@newclear.net>
  2855. See the CREDITS document for the full list of contributors.
  2856. Copyright:
  2857. Tintin++ was relicensed under the GNU General Public License on
  2858. July 12th, 2001, when version 1.86 was released. The full text
  2859. of the GNU GPL can be found in /usr/share/common-licenses/GPL on
  2860. Debian systems.
  2861. Additionally, the Tintin++ manual was placed under the GPL at my request
  2862. by Robert Ellsworth, it's author. The following is the mail in which he
  2863. granted me permission to publish it under the new license:
  2864. > From: "Robert Ellsworth" <rellsworth@wattsup.com>
  2865. > Subject: RE: Tintin install mess
  2866. > To: "'Davin Chan'" <davinchan@earthlink.com>,
  2867. > "'Jordi Mallach'" <jordi@sindominio.net>
  2868. > Date: Tue, 28 Aug 2001 09:53:50 -0400
  2869. > In-Reply-To: <3B8AF5A5.557E35E0@earthlink.com>
  2870. > X-Mailer: Microsoft Outlook, Build 10.0.2627
  2871. >
  2872. > Well,
  2873. >
  2874. > RE #1) Well, being that I am the author, then yes, I have no problem
  2875. > with the changing of the manual to GPL. :-)