| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284 |
- Sep 2021 2.02.20
- ------------------------------------------------------------------------------
- main.c Added -H startup option to run tintin in a nohup compatible
- mode.
- list.c Changed #list explode to support:
- #list {var} {explode} {separator}
- The separator can be {;} or {\n} or anything else. Variables
- and escape codes in the separator are substituted. This turns
- a variable into a list using the given separator.
- list.c Updated #list collapse to support:
- #list {var} {collapse} {separator}
- The separator can be {;} or {\n} or anything else. Variables
- and escape codes in the separator are substituted. This turns
- a list into a variable.
- buffer.c Updated #buffer find to support:
- #buffer {find} {[number]} {<string>} {[variable]}
- The number must now be -1, -2, etc to search starting from the
- end of the buffer, and 1, 2, etc to search from the start.
- buffer.c Updated #buffer clear to support:
- #buffer {clear} {[lower bound]} {[upper bound]}
- tokenize.c Increased the buffer size of #foreach to 1 million bytes, can
- be adjusted in tintin.h by changing MALLOC_SIZE.
- data.c Added #info arguments [save] option that will display all
- arguments / matches of the most recently fired trigger.
- data.c Added #info matches [save] option that will display all
- matches of the most recently fired command like #regex.
- data.c #kill all will no longer remove pathdirs.
- telopt_client.c Fixed an incorrect rejection response for the charset telopt.
- mapper.c Fixed #map goto jumping to the room you're currently in on a
- failed search.
- telopt_client.c Fixed handling of empty arrays for gmcp.
- mapper.c Added #map flag pancake which will display rooms on the map
- above and below you while enabled. You can use #map color
- room <aaa><fff> to display rooms with a white to black color
- gradient in pancake mode. To easily view color gradients use:
- #loop 6 0 i #draw scroll bar 1 1 1 40 {$i;6;<aaa><fff>}
- session.c The SESSION CREATED and SESSION CONNECTED will store the file
- name, if provided, in the %4 argument.
- draw.c #draw line now takes a text argument which can be further
- manipulated with the CALIGN and RALIGN flags, LALIGN is the
- default.
- session.c The SESSION CONNECTED event now triggers after the SESSION
- CREATED event.
- session.c Changed GAG SESSION DISCONNECTED to GAG SESSION DESTROYED.
- mapper.c Added the #map info save option.
- utf8.c Updated the cp949 to utf8 table with additional characters.
- May 2021 2.02.12
- ------------------------------------------------------------------------------
- input.c Added RECEIVED INPUT CHARACTER event that triggers on each
- character added to the input buffer. %0 holds the character,
- %1 the unicode index, %2 the byte size, %3 the character's
- display width.
- cursor.c Added #cursor tab caseless option to make tab completion case
- incensitive.
- dict.c Added #cursor tab dictionary option to tab through the
- dictionary.
- log.c Added #log timestamp <format>. The format follows strftime as
- described in #help time. Timestamps will be prepended to each
- line of log output.
- log.c Added #log move <filename> <filename> to move files.
- log.c Added #log remove <filename> to remove files.
- variable.c #format %r now ignores color and escape codes.
- data.c Added the #info tokenizer option to have a peek at the stack
- of the scripting engine. Use case example:
- #event {RECEIVED ERROR}
- {
- #echo <118>%h { TOKENIZER };
- #info tokenizer -1;
- #echo <118>%h
- }
- path.c #path load now automatically adds reverse directions.
- mapper.c Added support for #map list {roomflag} {!void} etc.
- line.c Added #line substitute braces which will turn { and } into
- \x7B and \x7D.
- mapper.c Added #map list {{distance}{5}} to list all rooms within a
- weighted distance of 5. Keep in mind this goes by weight,
- which starts at 1.0 and increases by 2.0 per room by default.
- cursor.c Added #cursor flag eol {cr|lf|crlf|crnul|off} to change the
- default end of line character between \r \n \r\n and \r\0.
- log.c Changed logging to where it logs data before it's wrapped by
- the client.
- mapper.c Added support for roomsymbol lengths up to 5 characters in
- unicode, and 6 characters in ascii graphics mode.
- mapper.c Added the option to #map list/find to use * as a roomexit.
- This will make the search ignore non-pathdir exits without
- an exit direction.
- Mar 2021 2.02.11
- ------------------------------------------------------------------------------
- draw.c #draw BALIGN will push text to the bottom if there aren't
- enough lines to fill the entire square.
- main.c Synchronized terminal resize handling which might fix some odd
- crashes.
- variable.c Getting rid of #format %C for chronological formatting since
- I'm abandoning chronological notation support. While it was
- a cute feature it's more important to support the ? : ternary
- operation. This frees up the %C argument for a more complex
- column operation.
- mapper.c Added support to use #map list 1..6 to provide a vnum range.
- substitute.c Added \u{} which supports between 2 and 6 hexadecimals.
- data.c Added the #info input and #info input save option.
- data.c Added the #info environ and #info environ save option.
- main.c Added SIGUSR event. %0 will contain either 1 or 2.
- #event {SIGUSR} {#showme RECEIVED SIGUSR %0}
- #info system save
- #system {kill -USR1 $info[SYSTEM][PID]
- main.c Added SIGHUB event which should trigger when the terminal is
- closed with TinTin++ still running inside. You can use
- #event {SIGHUB} {#end} to have tintin close normally.
- session.c Added #snoop {session} scroll {on|off} to snoop a session's
- scroll region, which will be printed on top of the active
- session's screen.
- math.c Made #math / #if about 3x faster.
- math.c Updated // to support powers other than 2 and 3.
- regex.c Changed %w to match any letter, number, or underscore instead
- of just letters, to make it match \w. Same for %W.
- Nov 2020 2.02.10
- ------------------------------------------------------------------------------
- split.c Now allowing #showme {text} {-1} to place text on the input
- line without #split being enabled.
- trigger.c Changed #tick to lazily get the second argument.
- files.c Added the READ FILE [NAME] event, triggers after a file has
- been read. %0 holds the file name.
- draw.c Added color gradient support to #draw bar. To use it you
- must specify two 256 color foreground codes for the color
- field and based on the min;max value it will pick a color
- somewhere in between.
- #loop 1 9 i #draw <DDF> scroll bar 1 1 1 40 {$i;9;<faa><afa>}
- draw.c Added the BAR drawing type. Currently only horizontal bars
- are supported, but for forward compatibility you should draw
- bars using #draw horizontal bar {square} {<min>;<max>;[color]}
- The width of the bar will be that of the square coordinate.
- trigger.c Added support for 10 digit precision delays. The main
- utility of this is execution order.
- #delay 0.00003 #show A;#delay 0.00002 #show B
- Since delays are processed in 0.01 second intervals these will
- both trigger within 0.01 seconds, but the display order will
- be: B A rathern than A B.
- path.c Added MAPPING and RUNNING to #path get.
- MAPPING returns 1 when path mapping, otherwise 0.
- RUNNING returns the delay until the next run, otherwise 0.00.
- #path get <variable> without an argument will store the
- length, position, mapping, and running values in a table.
- trigger.c Storing the creation time of tickers and delays in arg4, can
- be obtained using #info tickers/delays save.
- substitute.c Added support to call @function{} as @{function}{}.
- event.c The SCREEN FOCUS event no longer requires #config mouse to
- be enabled.
- math.c % in #math now supports floating point modulo operations.
- data.c #info will save #info variables to $info[VARIABLES] rather
- than $info[VARIABLE]. Same for other lists.
- list.c Added #list {var} filter {keep} {remove}. Keep and remove
- must be a regex pattern, the keep regex is ignored if {} is
- used, the remove regex is optional. #list indexate must be
- used to filter tables.
- utf8.c Added #config charset cp949 for Korean.
- Oct 2020 2.02.05
- ------------------------------------------------------------------------------
- variables.c Added the #unlocal command.
- files.c Table variables are now written to file with indentation.
- utf8.c Decreased the memory footprint of BIG-5 / GBK-1 support.
- variable.c The VARIABLE UPDATE event now reports the path in the %2
- argument.
- May 2020 2.02.04
- ------------------------------------------------------------------------------
- help.c Updated the MSLP helpfile.
- scan.c Added #scan forward, does the same as #textin.
- substitute.c Added a warning when using &variable on an undefined variable
- in math operations.
- draw.c Updated the #draw line mode to behave more distinct from the
- #draw side mode. When teed a horizontal line can have only
- the left or right side teed when specified. Similarly a
- vertical line can have the top or bot side teed.
- banner.c Added the tt++ -g startup option to startup tintin with a gui.
- So far it only supports a connection manager.
- main.c Added the SYSTEM CRASH event, %0 holds the error message.
- screen.c #screen inputregion now takes a 5th argument to assign a
- name, can be used with the RECEIVED INPUT [NAME] event.
- screen.c Added #screen swap, swaps the input and scroll region height.
- mapper.c The MAP ENTER ROOM and MAP EXIT ROOM events will store the
- direction traveled in the %2 argument.
- draw.c #draw CALIGN will prune and center text.
- #draw LALIGN will prune and left align text.
- #draw RALIGN will prune and right align text.
- #draw TALIGN will show the top of the text if it is too long
- to fit the square, cutting off the bottom. The default is to
- bottom align and cut off the top.
- #draw UALIGN will unwrap and rewrap text.
- math.c Added very basic ? : ternary operator support in #math. It
- currently only supports simple assignments like:
- #math result $variable < 5 ? 0 : $variable
- screen.c Added several #screen get INPUT_ options.
- daemon.c Added DAEMON ATTACHED and DAEMON DETACHED events.
- mapper.c Added #map flag quiet, gets rid of build walk spam.
- event.c With mouse pixel mode enabled the %7 argument of a mouse
- event will contain nw, n, ne, w, c, e, sw, s, se, depending
- on where on a character you clicked.
- You can, for example use #if {"%7" == "{nw|w|sw}"} to check
- if the left side of a character was clicked.
- help.c Added #help edit and #help editing
- config.c Added the #config mouse pixels option for pixel precision.
- Requires the latext xterm or mintty release to work.
- tokenize.z The default ! repeat character can now be used in scripts.
- Use with caution. To repeat the last command when you press
- ctrl-enter use: #macro {\e[13;5u} {!}
- tintin.h Increased BUFFER_SIZE from 30KB to 40KB.
- screen.c Added #screen scrollbar on/off, currently only works with
- mintty / wintin++. Allows using the scrollbar with tintin's
- own scrollback buffer. Works automatically once enabled.
- list.c Changed #list simplify to work in a similar manner as
- #list sort and #list order.
- draw.c #draw now takes a second color argument. First color argument
- sets the box color, the second sets the text color.
- split.c Updated #split to take a 5th argument to set the height of
- the input region, #split without an argument defaults to
- #split 0 1 0 0 1.
- event.c Added event group lookups, can use #event mouse to see all
- mouse events.
- edit.c Added the [CATCH] EDIT FINISHED and EDIT STARTED events.
- cursor.c Added #cursor {page} which has several sub-options that can
- be used in edit mode.
- ctrl-home is bound by default to #cursor page home
- ctrl-end is bound by default to #cursor page end
- cursor.c Added #cursor {soft enter} which allows inserting new lines
- while in edit mode, it's bound to shift-enter by default. A
- regular enter will exit edit mode.
- edit.c Added the #edit command, used to enter edit mode and perform
- various edit buffer operations.
- cursor.c Added #cursor up and #cursor down, moves cursor up/down in
- multiline input regions.
- event.c Added the INPUT MOUSE event, which triggers when using the
- mouse in the input region.
- cursor.c Added multiline input support. Use #screen inputregion to
- enable. For example:
- #screen inputregion -3 1 -1 -1
- #split 0 3
- cursor.c #cursor preserve macro and reset macro have been moved to
- #cursor macro {preserve|reset}
- #cursor echo and #cursor insert have been moved to
- #cursor flag {echo|insert} {on|off}
- input.c Added infinite input support, TinTin++ will still crash
- somewhere down the line until the rest of the engine has
- infinite string support as well. When CHILD LOCKED the
- input buffer is capped.
- class.c Added #event CLASS LOAD <NAME>, triggers after a class is
- loaded.
- Added #event CLASS CLEAR <NAME>, triggers before a class is
- cleared.
- scan.c Added the #scan dir <dir> <variable> option, will scan the
- given file or directory and store the info in the provided
- variable.
- scan.c Modernized #scan, includes a warning when the old syntax is
- used.
- variable.c #return now returns a local result, this should solve issues
- with function nesting.
- list.c Added #list {<list>} index {nest} which can be used to index
- a two dimensional table as a one dimensional list. After a
- table has been indexed, #list find, order, sort, and reverse
- will work.
- triggers.c Added the <900> color tag which can be used in substitutions
- to restore the text color to the original text color.
- #sub {\bsmurf\b} {<bdf>smurf<900>}
- #showme {<afa>A smurf is smurfing here.}
- draw.c Added the SCALED drawing option. When used the size of the
- square is increased depending on the size of the inputted
- text.
- buffer.c #buffer find now places the found keyword at the top instead
- of at the bottom of the page.
- path.c Added #path save {BOTH} <variable> to save both the forward
- and backward path, as well as any given delays. Keep in mind
- that delays will only work properly for forward going paths.
- path.c Added a third field to #path insert to specify the delay.
- mapper.c Added a delay field to #map exits, which will be used
- when using #path run with a delay argument.
- data.c Added #info sessions save which will save the data on all
- sessions to $info[SESSIONS].
- data.c #info session save now saves the data to $info[SESSION][NAME]
- rather than to $info[SESSION][SESSION_NAME]
- cursor.c Added #cursor position <column> to move the cursor to the
- given column.
- show.c Added RECEIVED ERROR event. Example:
- #event {RECEIVED ERROR} {#info stack}
- class.c Added #class {name} assign {argument} which will execute the
- argument, assigning all newly created triggers to the given
- class.
- draw.c Added #draw buffer, which draws the scrollback buffer based
- on the scrolling state.
- draw.c Added #draw foreground flag, which allows inactive sessions
- to draw.
- update.c Added END OF RUN event which triggers at the end of #map or
- #path run.
- Mar 2020 2.02.03
- ------------------------------------------------------------------------------
- data.c Added SESSION_ACTIVE field to #info session save
- mapper.c Added MAP CREATE EXIT and MAP DELETE EXIT events.
- history.c Added #history get <variable> <start> <end> option.
- draw.c Added #draw map <square> option.
- event.c Added MAP ROOM and MAP REGION mouse events. MAP ROOM only
- triggers when the mouse is above a room, MAP REGION triggers
- anywhere in the map region, as defined by default or as
- defined with #map offset.
- files.c #read will now warn if there is a possibly missing semicolon.
- config.c Can add non-colors in #config command_color by escaping the
- characters. Example: #con command <178>\>\ <128>
- line.c Added #line multishot {number} {argument} which should make
- all created triggers fire the given number of times before
- expiring.
- line.c Added #line local {argument} which should make all indirectly
- created variables local.
- variable.c Updated %h to allow #echo %+40h {some text}
- update.c Added the DISPLAY UPDATE event which is triggered right
- before the final display update when new data has become
- available.
- port.c Added PORT INITIALIZED and PORT UNINITIALIZED events, both
- can be prefixed with GAG to suppress the default system
- message.
- path.c Updated #path unzip to take the new speedwalk format.
- telopt_client.c Added IAC SB NAWS event, can be caught.
- split.c Added SCREEN SPLIT FILL event, which triggers on the
- split line drawing routine, can be caught.
- memory.c Added a custom memory stack, still a work in progress.
- utf8.c Added #config charset CP1251TOUTF8
- cursor.c Added #cursor {preserve macro} which when called from within
- a macro will preserve the macro state. Example:
- #macro {\cg} {#showme e: end\nh: home;#cursor preserve macro}
- #macro {\cge} {#showme end}
- #macro {\cgh} {#showme home}
- cursor.c Added #cursor {reset macro} which when called from within
- a macro will reset the macro state.
- path.c Added #path get {LENGTH|POSITION} <variable>
- Jan 2020 2.02.02
- ------------------------------------------------------------------------------
- config.c Added #config {packet patch} {auto} support which will
- result in automatic telnet eor/ga handling and automatic
- packet patching if #prompt is set correctly.
- help.c Added auto-link generation for #help when mouse tracking is
- enabled. Still experimental.
- mapper.c Added #map get/set direction/pathdir to get/set the current
- direction you are facing in numeric and alphabetic notation.
- tables.c Added italic and unitalic #highlight keywords.
- tables.c Pressing ctrl-delete will delete one word per default.
- mapper.c Fixed #map undo issues with #map insert and #map dig.
- mapper.c Now shows destination in #map exit <dir>
- base.c Added %+64b and %+64B support to #format to convert to and
- from base 64 encoding.
- Added %+64z and %+64Z support to #format to zip the string
- and convert it to base 64. May not compress it much but may
- have some utility to store passwords. Security through
- obscurity.
- Added experimental %+252b/z and %+252B/Z options for Base
- 252 encoding.
- draw.c Added FAT, CURSIVE, SCROLL, and SANSSERIF draw options.
- input.c ctrl-v will now correctly capture ctrl-alt-f and similar
- combinations. ctrl-v will also allow pasting blocks of text.
- Example added to the SCRIPTS file.
- event.c Added GAG SESSION CONNECTED, GAG SESSION CREATED,
- GAG SESSION DESTROYED, and GAG SESSION TIMED OUT events.
- mapper.c Added #map roomflag fog. Works like #map roomflag hide but
- the flag is auto cleared on entrance.
- line.c Added #line convert options.
- mapper.c Aded MAP CREATE ROOM and MAP DELETE ROOM events.
- utils.c Increased the entropy of the random number generator.
- list.c #list order sorts existing lists numerically.
- list.c #list sort sorts existing lists alphabetically.
- sort.c Added sorting routines utilizing quadsort.
- list.c Added #list reverse option.
- cursor.c Added default bindings for ctrl-left, ctrl-right, and
- ctrl-backspace
- screen.c Added advanced link support. To create an advanced link
- surround a keyword with the \e[4m keyword \e24m tags and
- prefix it with \e]68; code \a.
- #config mouse on
- #showme {\e]68;;1;test\a\e[4mthis is a test\e[24m}
- #event {SHORT-CLICKED LINK MOUSE BUTTON ONE} {#showme {[%4]}}
- screen.c Added basic link support. To create a basic link surround a
- keyword with the \e[4m keyword \e[24m tags. When clicked with
- mouse support enabled it'll spawn a LINK mouse event.
- mapper.c Added #map exitflag <dir> <option> GET <variable> support.
- event.c The %4 argument of mouse clicks once again reports the word
- that has been clicked, with %5 reporting the line. Under
- construction.
- screen.c Added #screen input <square> to define the input region.
- Currently only 1 line input regions are supported. Example:
- #screen input 1 1 1 -1 will put the input line at the top of
- the screen instead of the bottom. Under construction.
- Dec 2019 2.02.01
- ------------------------------------------------------------------------------
- data.c Added CWD field to #info system to get the current working
- directory.
- data.c Added the option to use #var var[\+1] to set and retrieve a
- literal +1 instead of referencing the first index. This
- behaves like the verbatim mode and the backslash is only
- valid at the start of the line.
- data.c Added #info unicode <character> option to display
- information about the provided character.
- Nov 2019 2.02.00
- ------------------------------------------------------------------------------
- regex.c Added support for using %+4s to match 4 spaces, or %+0..2d
- to match between 0 and 2 digits. Only works with letter
- arguments.
- regex.c Added %a regex as an alternative for %* because %+4* is
- not valid.
- regex.c Added %p regex which will match printable characters.
- regex.c Added %u regex which should match whole unicode characters.
- utf8.c Added BIG5toUTF8, KOI8toUTF8, ISO1toUTF8, ISO2toUTF8 charset
- config options.
- utf8.c Added GBK1TOUTF8 charset config option. When enabled 2 byte
- GBK codes are translated to unicode.
- utf8.c Added GBK-1 charset config option which should be able to
- handle GB18030.
- mapper.c Added a UNICODE GRAPHICS group to #map legend, this will
- allow you to customize most of the unicodegraphics symbols.
- variable.c Added #format <variable> %S option to do a spell check.
- Returns the number of errors found. Still a work in
- progress.
- People using %S to get the session name should switch to
- using #info session save.
- data.c Added #info session option, this data can be saved.
- draw.c Added #draw RAIN {<VARIABLE>} {[SPAWN]} {[FADE]} {[LEGEND]}
- Use tt++ -M for a default example.
- class.c Added #class clear, load, and save. See #help class.
- main.c Configurations and pathdirs are automatically assigned to
- the CONFIG and PATHDIR class on startup. Somewhat
- experimental as there may be unforseen complications.
- list.c Added #list <list> collapse.
- mapper.c Updated #map {} output.
- nest.c Added better #local support.
- variable.c Added #cat command. See #help cat.
- event.c Added SWIPED N/NE/E/SE/S/SW/W/NW events. These do not work
- on Termux yet, but I've asked the Termux dev to enable
- advanced mouse mode by default.
- draw.c Added #draw TABLE type which comes with the GRID option to
- change the drawing behavior. Requires a nested string
- argument. Under construction.
- mapper.c Added #map flag terrain on/off option to enable or disable
- terrain displaying. Default for new maps is on.
- mapper.c Added #map terrain <name> <symbol> [flag] and #map unterrain
- Creates a symbol, which can be colored, for the given
- terrain type. Density flags are DENSE, AMPLE, SPARSE, SCANT,
- omit for default density. Range flags are NARROW, STANDARD,
- WIDE, and VAST, omit for default.
- Decay flags are FADEIN and FADEOUT which speak for
- themselves. DOUBLE will expect the terrain symbol to be
- 2 characters or a double-width unicode character.
- variable.c Added %C format option to store the given number using
- chronological notation.
- People using %C to get the screen width should switch to
- using #screen get cols <var> and #screen get rows <var>
- mapper.c Added a 4th argument to landmarks which will indicate the
- distance from which the landmark will be visible in a future
- #map describe command.
- draw.c Added HUGE option to #draw. Only supports uppercase letters,
- numbers, and a few punctuations for now.
- cursor.c Added #cursor tab <list|scrollback> <backward|forward>
- option. Allows people with custom tab settings to upgrade
- to the new format before I start messing with it.
- list goes exclusively through the tab list, scrollback goes
- exclusively through the scrollback buffer, use both list and
- scrollback to go through both.
- line.c Added #line capture <variable> <command> option.
- mapper.c Added the MAP MOUSE LOCATION event to go along with the
- SCREEN MOUSE LOCATION event. MAP MOUSE LOCATION is more
- accurate than regular MAP click events. It needs to be
- trigged with #screen raise mouse location, which is not
- supported by all terminals.
- You'll need to use ./configure --enable-dec-locator for xterm
- to enable the MOUSE LOCATION events.
- list.c Added #list <var> shuffle
- mapper.c I'm working on a new speedwalk standard that will work with
- diagonal exits. Initial support is added to the #map at,
- #map goto, and the #map jump commands. Old speedwalk support
- is going to be left unchanged.
- The format is similar to old speed walks, except that
- speedwalks like 2ene need to be changed to 2e1n1e.
- #map jump and #map at will use virtual traversal, meaning you
- can move through walls as long as the destination is an actual
- location.
- #map move and #map goto will use physical traversal, meaning
- #map goto 10w only works if there is a straight line of 10
- rooms leading west, while #map move 10w will create 10 rooms
- if static mode is disabled. Keep in mind that #map move will
- trigger map movements events while #map goto will not.
- Regular #config SPEEDWALK speedwalks are unaffected.
- mapper.c Added MAP MOUSE LOCATION event which allows more accurate
- mouse clicking reports in unicode mode on terminals which
- support it. Appears to be some obscure compile time option
- on xterm.
- mapper.c AsciiGraphics and UnicodeGraphics mapping modes now report
- the exit that was clicked on MAP MOUSE click events in the
- %2 argument.
- screen.c Added #screen raise SCREEN MOUSE LOCATION, the SCREEN MOUSE
- LOCATION in turn will report row,col,-row,-col, as well as
- the row,col,-row,-col for the pixel position of the mouse
- within the character cell. %8 will report the pixel position
- as a 3x3 cell using values 1 through 9.
- mapper.c Added the BLOCK exit flag and room flag. Works like AVOID,
- but also prevents movement into the room.
- mapper.c Added #map landmark <name> <vnum> [desc] and #map unlandmark.
- Landmarks work as fast lookup aliases and to give tintin an
- idea of locations of interest to eventually describe the map
- in words for screen readers.
- mapper.c Added #map exit <dir> color <code> option.
- mapper.c Added exit coloring for avoid/hide/invis flagged exits.
- main.c Added -V startup option to show version number.
- daemon.c Added better link lost handling to daemons.
- cursor.c Fixed #help event section on {SCREEN FOCUS}.
- math.c Added metric suffix support to #math, see #help metric.
- variable.c Added #echo %M to print numbers using the metric system,
- supported suffixes are K M, m, and u.
- mapper.c Added #map sync <filename> which will try to synchronize the
- currently loaded map with the file being read. Should be a
- valid alternative to #map read at all times.
- Sep 2019 2.01.92
- ------------------------------------------------------------------------------
- mapper.c Added #map dig <exit> {{roomid}{<key>}} {NEW} support.
- Added #map goto {{roomid}{<key>}} {DIG} support.
- mapper.c Added the roomid field to map rooms. When using #map goto or
- #map run on a roomid regular expressions cannot be used.
- Roomid's are case sensitive, must be matched exactly, and
- are expected to be unique.
- daemon.c Added #daemon {kill|list}. See #help daemon.
- daemon.c Added #daemon {attach|detach}. See #help daemon.
- main.c Can launch tt++ with the -R argument to reattach.
- data.c Added #info MCCP option.
- draw.c Added TUBED drawing option.
- scan.c Added #scan FILE {commands} option. See #help scan.
- mapper.c Can provide multiple ; separated commands to #map move at
- once. For example: #map move {n;e;s;w}
- main.c Added support for starting tintin with telnet://host:port
- draw.c Added ANSI, UNICODE, JEWELED and FILLED prefixes.
- tables.c Removed #forall command.
- mapper.c Added #map center <x> <y> <z> to set the center of the map
- viewer, default is 0 0 0.
- split.c Added SCREEN SPLIT and SCREEN UNSPLIT events.
- nest.c Added VARIABLE UPDATED event.
- draw.c Added the BUMPED prefix to prefix a scroll region box with an
- enter. You create a scroll region box by using 0 as the top
- row argument. Treat the other arguments as if the top row
- is set to 1.
- draw.c Finished rounded box drawing, to get the old behavior use
- the CIRCLED prefix.
- config.c Added #config {mouse tracking} {on|off|debug|info|debug info}
- to enable/disable info/debugging for all mouse clicks.
- Use #config {mouse tracking} {on} to reset to normal.
- help.c Updated #help regex to state that %. and %+ should no longer
- be used. This will allow future expansion of tintin's regex
- syntax. Use {.} and {.+} and {.?+} instead.
- variable.c Added support for %+10w and %-10w to #format. Negative numbers
- subtract the given value from the screen width when wrapping.
- text.c Added initial tab displaying support.
- config.c Added TAB WIDTH config option.
- nest.c Added a notice for people still using $variable[] instead of
- *variable[]. I'll change $variable[] eventually to be
- identical to $variable[%*].
- math.c Added .. ellipsis support to define ranges in tables. It can
- also be used in #math to join two 32 bit integers into a 64
- bit integer.
- terminal.c Now initializing a more advanced keyboard mode upon startup,
- if a macro stops working check if you have to redefine it to
- a new sequence.
- math.c By default tintin does a string vs regex comparison when
- using == and !=. Added === and !== to do string vs string
- comparisons.
- config.c Made configurations less lazy, making it easier to detect
- when settings aren't properly inherited or changed globally.
- screen.c Added #screen scroll option, similar to #split but uses square
- notation to define the scroll region.
- screen.c Added #screen fill option.
- terminal.c Added SCREEN ROTATE PORTRAIT and SCREEN ROTATE LANDSCAPE
- events.
- mapper.c #map offset will now rescale along with the window.
- split.c The #split command has been changed to where it sets the
- number of top split lines if only one argument is given.
- The 2nd argument sets the number of bottom split lines which
- defaults to 1. The 3rd and 4th argument set the left and right
- split lines and when used will automatically enable vertical
- split mode.
- Split initalization will use unicode if #config charset is
- set to utf-8
- buffer.c The #buffer get syntax has been changed to treat 1 as the
- oldest line in the buffer, and -1 as the most recent.
- Unfortunately that's not backward compatible, but it's in
- line with the other row behavior changes, so at least it
- will be consistent.
- text.c With #split enabled and #config wordwrap set to a positive
- value tintin++ will attempt a vertical split.
- draw.c More feature complete, see #help draw.
- vt100.c Added better cursor save/restore handling.
- update.c Added support for centisecond delays (0.01) and moved ticks to
- deciseconds (0.1).
- Reduced input and session polling lag from 25 ms to 5 ms,
- which comes at a slight increase in cpu usage.
- draw.c Added TEED prefix for #draw, subsequently #draw middle and
- #draw center have been removed as they did the same and
- were somewhat confusing terms.
- misc.c Added some #bell options, see #help bell.
- #bell {flash|focus|margin|ring|volume} {argument}
- variable.c #format %X now will also take unicode characters as input.
- #echo %X ┓ displays 2513 and #showme \u2513 displays ┓
- path.c #path run no longer uses delays but uses its own timer system,
- you can use #path stop to stop running, and if you enter
- #path run again you'll continue where you stopped.
- trigger.c Named delays are now automatically converted to one shot
- triggers. #undelay will use #untick if the argument begins
- with a letter.
- mapper.c Changed #map destroy to #map destroy {area|world} {arg}
- files.c Added {READ ERROR} and {WRITE ERROR} events.
- trigger.c Added #line oneshot support to all triggers and variables.
- line.c Added #line oneshot to create oneshot triggers. Right now
- only works for #ticker.
- line.c Added #line debug to execute given line in debug mode.
- substitute.c #config color is now taken into account when displaying
- color codes, downgrading colors as needed.
- tables.c When using color names in highlights all lowercase color names
- will be dark by default, while capitalized color names
- will be light. So 'blue' is dark while 'Blue' is light. This
- allows using 'b Blue' for a light blue background.
- draw.c Added the ability to prefix a draw option with a color name
- or color code to draw colored lines and boxes.
- Aug 2019 2.01.91
- ------------------------------------------------------------------------------
- vt100.c Added %2 rows %3 cols arguments to the VT100 SCROLL REGION
- event to increase ease of use.
- mapper.c Changed #map at to also take an exit for the location.
- data.c No longer saving or displaying the priority of triggers which
- are set to the default priority.
- mapper.c Added #map map <rows> <cols> draw <square> to draw the map at
- the given location. This is no real alternative for using #map
- offset as #map offset allows mouse map events.
- draw.c Added unicode drawing options.
- line.c Added #line logmode {html|plain|raw} {argument} Allows you
- to execute a command with a temporary logging mode.
- mapper.c Now drawing + and - for muds using nu dn eu ed exits.
- macro.c Added ^ support to macros to make a macro only trigger at the
- start of input. If you want to macro a literal ^ use \^ at
- the start of the line. It behaves very similar to the ~ for
- color triggers.
- mapper.c Improved exit drawing in unicode mode.
- draw.c Added #draw command and #help file.
- mapper.c Added #map update option to force an update of the vtmap. Keep
- in mind the vtmap will only update once every 0.1 seconds.
- screen.c Added #screen clear {split|top|bottom} to clear split lines.
- config.c Added #config {wordwrap {on|off|number} when a number is given
- tintin will wrap at the given width, and will also report the
- given width to MUDs over TELNET.
- config.c Added #config {telnet} {on|off|debug} which allows enabling or
- disabling telnet support. The debug option is the same as
- #config {debug telnet} on and will eventually replace it. To
- disable debug mode use #config telnet on.
- help.c Added #help button
- button.c Added #button.
- Jul 2019 2.01.90
- ------------------------------------------------------------------------------
- mapper.c Added MAP FOLLOWED MAP event which triggers on map movement.
- %0 = new vnum %1 = old vnum %2 = exit name. Keep in mind
- that this event isn't triggered when using #map goto.
- config.c Added #config {PACKET PATCH {AUTO} option which currently
- only enables to 0.1 seconds when #split is enabled.
- msdp.c Added MAP_ROOM_INFO msdp event.
- math.c Strings in #if and #math can now be defined using {string}
- instead of "string". The quote syntax will remain valid.
- mapper.c Added #map offset <row> <col> <row> <col> to define a square
- within which the vt map will be printed.
- screen.c Added #screen clear option which allows clearing the screen,
- the scrolling region, or a <row> <col> <row> <col> square.
- For all square operations you must define the top left and
- bottom right corner. Negative numbers are allowed which
- behave identical to #showme.
- mapper.c #map map now allows a very large range and when logging will
- use the configured log mode. This allows generating a large
- html map.
- mapper.c Improved the #map legend interface and made it easier to
- update by using the index number. I haven't added special
- legends for ascii and unicode graphic modes yet.
- buffer.c Added #buffer up 1 and #buffer down 1 to scroll the buffer up
- or down by one line. Values of 2 and higher are allowed as
- well with the maximum set at the screen size.
- msdp.c Added some SCREEN based MSDP events to #port. Renamed a few
- #screen arguments / events to something I was happier with.
- chat.c Added #chat accept <buddy> [boost] option for faster file
- transfer. The boost value must be between 1 and 1000.
- screen.c Added #screen get <top_row|bot_row|top_split|bot_split> <var>
- vt100.c Added VT100 SCROLL REGION event.
- main.c Added SYSTEM ERROR and CATCH SYSTEM ERROR events.
- mapper.c Added #map color symbol option.
- files.c Added accidental overwrite protection when trying to write
- a command file to a .map file. Use {force} to force. It's
- suggested to use .tin files for command files.
- mapper.c Added accidental overwrite protection when trying to save a
- map to a .tin file. Can add the {force} argument to force
- writing anyways. It's suggested to use .map for map files.
- mapper.c Made all map search options require a perfect match. To look
- for a sub string one needs to use #map find {text%*} or
- #map find {%*text%*}
- mapper.c Exits created in the global room should now work without
- needing to set a special alias that performs a #map goto.
- This also means that if you set the exit command on an exit
- in the global room it ought to work.
- mccp.c Enabled MCCP3 for #port which allows two-way compression.
- This should be useful for people who send a lot of data back
- and forth. It uses TELNET option code 87.
- port.c Added initial telnet support to #port. This still needs some
- more work to get MSDP working, and I'm also working on
- the ability to use JSON syntax with MSDP event handling.
- telopt_server.c Enabled.
- parse.c Added a debug call for incorrect abbreviation checks.
- mapper.c Added invisible exit flag. It's intended to make exits
- invisible. If you want to make hidden rooms invisible try
- #map color hide <208>
- mapper.c Added up/down exit flag colors in unicodegraphics mode.
- screen.c Added some more screen stuff, see #help screen.
- parse.c Added experimental change where in command lookups a space
- can be substituted with a _ character. For example
- #config {COMMAND ECHO} ON equals #config COMMAND_ECHO ON.
- If this change causes unforseen problems it'll likely be
- reverted.
- telopt_client.c No longer sending proper telnet replies for echo due to
- infinite loop problems on a few muds that improperly
- handle telnet negotiations.
- mapper.c Improved void room handling in unicodegraphics mode.
- prompt.c Using #prompt or #showme without a column argument will
- clear the line.
- main.c Improved signal handling.
- update.c The %2 value of TIME events now holds the day of the week
- instead of the week of the year. The value is between 0 and 6
- and specific events for each week day are possible.
- update.c The %3 value of TIME events holds the day of the month. The
- value is between 0 and 31 and specific events for a day of the
- month are now possible.
- main.c Updated system error handling.
- mapper.c Improved #map color command.
- mapper.c Further improved unicodegraphics mode.
- mapper.c Further improved blockgraphics mode.
- mapper.c Added #map color avoid
- mapper.c Added #map color hide
- prompt.c Changed #prompt to use the new {row} {col} input.
- mapper.c Changed the #map map command which now has the syntax:
- #map map {rows} {cols} {append|write|list|variable} {arg}
- terminal.c Changed WINDOW RESIZE %0 to list rows, and %1 to list cols.
- event.c Changed all MOUSE events to %0=row %1=col %2=-row %3=-row
- *.c Currently there are two big problems that need to be addressed
- to continue smooth development.
- 1. In VT100 row 1 is the top line, while in tintin row 1 is
- the split line.
- 2. In VT100 row, col (y, x) notation is used, while I've been
- favoring col, row (x, y) notation.
- While this may seem like a minor issue, I'm utilizing VT100
- more often using more complex operations, and TinTin++ is
- currently pretty much mirrored in the way it behaves. This
- results in relatively simple math becoming weird unintuitive
- math, making already complex code even more complex, resulting
- in bugs and unreadable code that requires a lot of mental
- gymnastics to figure out.
- Subsequently I decided on a major interface change that will
- result in several compatibility issues.
- #split will stay the way it is.
- #showme {text} will stay the same
- #showme {text} {0} will become invalid.
- #showme {text} {1} will print on the top line.
- #showme {text} {-1} will print on the bottom line / input
- line.
- #showme {text} {-2} will print on the default split line.
- #prompt {text} {substitution} will stay the same and print
- on the default split line.
- #prompt {text} {substitution} {0} will become invalid.
- #prompt {test] {substitution} {1} will write to the top line.
- #prompt {text} {substitution} {-1} will write to the bottom
- line / input line.
- #prompt {text} {substitution} {-2} will write to the 2nd line
- from the bottom, which is the default split line.
- All code that takes {col} {row} as an argument will be changed
- to {row} {col}. The main reason for this change is consistency,
- and because I've repeatedly swapped row and col in VT100 which
- can be a tricky bug to track down.
- session.c Added the 'ats' keyword to the session find routine to return
- the active tintin session.
- mapper.c Fixed the #map map {<width> x <height>} calculations.
- buffer.c When using #snoop on a session #showme and a few other things
- were not displayed. This should be fixed now.
- nest.c Added basic syntax highlighting for variables, only works
- when using #var {variable>
- tokenize.c Added basic syntax highlight for lists, only works when
- using #<list> {list}
- help.c Added TIME help file.
- tokenize.c Fixed a bug with nested #while commands.
- port.c Changed #event {PORT MESSAGE} to {PORT RECEIVED MESSAGE}
- which triggers when a message is received from a connection.
- Added #event {PORT MESSAGE} and {PORT LOG MESSAGE} which
- trigger on internal messages.
- All these can be prefixed with CATCH.
- variable.c Fixed two crash bugs in #format, it remains a somewhat
- vulnerable command, so you should never allow a 3rd party
- argument to set the format string of #format or #echo, though
- parsing 3rd party arguments as a #format/echo argument is safe.
- Safest is to use #line ignore #showme {text} if you want to
- print text that is ignored by triggers.
- telopt_server.c Added a TELNET server for #port, it's not hooked up yet,
- but the code merge may have caused some telnet bugs. Please
- report any unusual telnet behavior.
- mapper.c Fixed some issues with #map legend, should be able to use it
- to change the legend now.
- buffer.c Fixed some more scrolling issues.
- README Updated the README file and added the NEWS and docs/syntax.txt
- files. The NEWS file primarily contains a list of changes that
- impact compatibility between versions.
- tel_client.c Fixed CHARSET REQUEST handling.
- buffer.c Fixed longstanding issue with the handling of long lines.
- Mar 2019 2.01.8
- ------------------------------------------------------------------------------
- update.c Added MAP UPDATED VTMAP event, triggers right after each
- vtmap redraw.
- config.c Added CHILD LOCK config option to disable tintin command
- input. This is useful for people who want to give third
- parties remote access to a tintin++ session.
- line.c Enabled the #line substitute arguments option which has a few
- limited usecases.
- main.c Added better #! hashbang support, with %0 in the PROGRAM START
- event holding all unrecognized launch arguments. %1 holds the
- 1st argument (program name), %2 the 2nd argument, etc.
- data.c Added #INFO SYSTEM option, with #INFO SYSTEM SAVE saving the
- data to the info[SYSTEM] variable. Current variables
- supported are CLIENT_NAME and CLIENT_VERSION.
- event.c Added %4 and %5 arguments to mouse click events which hold the
- word and line that was clicked. Under construction.
- net.c Slightly improved traditional prompt handling, but the code
- will need a proper update to work properly.
- parse.c Added UNKNOWN COMMAND event, triggers on #jklfdjl and other
- non-existent commands.
- screen.c Added the #screen command, still under development.
- telopt.c Added VT100 OSC en CATCH VT100 OSC events.
- port.c Fixed an issue with #port and #chat on Mac OS X.
- mapper.c Added #map global which allow setting the vnum of a room that
- contains exits for global transportation commands, like for
- example the recall location.
- mapper.c #added #map roomflag noglobal to indicate rooms that block
- global transportation commands, like norecall rooms.
- input.c Added CATCH RECEIVED INPUT event.
- Added RECEIVED KEYPRESS event.
- Added CATCH RECEIVED KEYPRESS event.
- mapper.c Added support for up/down displaying in blockgraphics mode.
- mapper.c Added #map flag direction to enable/disable the showing of the
- direction arrow in the mapper. Also includes a minor
- modification in the legend.
- utf8.c Added KOI-8 to UTF-8 conversion support, which is enabled with
- #config charset koi2utf
- mapper.c Added #map flag blockgraphics mode, still needs some more
- work.
- variable.c Updated %a to take a UTF-8 sequence and print the
- corresponding 21 bit decimal unicode value. This requires for
- #config CHARSET to be set to an UTF-8 mode to work.
- Updated %A to take a 32 bit decimal value and print the
- corresponding unicode UTF-8 sequence. This requires for
- #config CHARSET to be set to an UTF-8 mode to work.
- Added %x which takes a hexadecimal value and prints the
- corresponding unicode UTF-8 sequence.
- Added %X which convers a 64 bit unsigned decimal value to
- a 64 bit hexadecimal value.
- Added %D which converts a 64 bit hexadecimal value to
- a 64 bit unsigned decimal value.
- math.c Fixed an issue with 63-64 bit math.
- mapper.c Added #map flag unicodegraphics mode.
- utf8.c Added #config charset FANSI option that maps code page 437 to
- UTF-8. Requires an UTF-8 terminal to work and you can try out
- fansi art at 8bit.fansi.org 4201.
- main.c The -s startup option will start tt++ in screen reader mode.
- mapper.c Added support for direction displaying in mudfont mode.
- utf8.c UTF-8 character detection should be synched with xterm.
- mapper.c #map legend is now completely different and supports various
- default legends to choose from, namely:
- [ASCII NESW ] [ 1] [ 32]
- [UNICODE NESW ] [ 1] [ 32]
- [UNICODE NESW LINE ] [ 1] [ 16]
- [UNICODE NESW MISC ] [ 17] [ 24]
- [UNICODE NESW DIRS ] [ 25] [ 32]
- [UNICODE NESW TUBE ] [ 1] [ 32]
- [MUDFONT BRAILLE TUBE] [ 33] [164]
- [MUDFONT BRAILLE LINE] [ 33] [164]
- [MUDFONT PRIVATE ] [ 33] [164]
- [MUDFONT CURVED ] [161] [164]
- [RESET ] [ 1] [164]
- The legend exits of 164 characters and when setting for
- example UNICODE NESW DIRS you're only redefining 8 characters
- from position 17 to position 24.
- prompt.c #prompt and #showme now take a 3rd argument that sets the
- column number at which the text is printed. The column number
- must be between 1 and the maximum width of the screen. If a
- negative number is provided the distance is measured from the
- right. The line isn't automatically cleared when using
- #showme with a column argument.
- input.c Added support for fullwidth UTF-8 characters. This won't be
- working perfectly until unicode is better standardized.
- config.c Added #config CHARSET BIG2UTF. When enabled text you receive
- will be translated from BIG-5 to UTF-8, and data you send will
- be translated from UTF-8 to BIG-5. This should allow someone
- to play a BIG-5 mud using an UTF-8 capable terminal.
- path.c Added #path describe to give a basic description of the
- mapped path. Might be of interesting for anyone using a
- screen reader.
- utf8.c Added UTF-8 character width detection.
- mapper.c When #map list is used with a variable the variable is now
- properly cleared. In addition #map list will report the
- relative x y and z coordinates of the found rooms which can
- be used with #map jump. This update changes the table
- structure of the variable returned by #map list.
- mapper.c Added #map legend reset option and fixed legend saving.
- mapper.c Added new mudfont mode based on the braille unicode block.
- mapper.c Changed the RIVER map room flag to CURVED and added support
- for it in simple and mudfont mode.
- mapper.c Added click events that trigger when clicking a room on the
- vt map reporting the room vnum.
- session.c More properly terminating zombie processes after using #run.
- telopt.c Added support for the CHARSET telnet option. Currently
- supporting UTF-8, BIG-5, and FANSI.
- path.c Added #path save <length|position> <variable> options.
- Feb 2019
- ------------------------------------------------------------------------------
- There was a question regarding copyright and licensing
- recently so I made some changes and I'm writing this entry to
- clarify a few things.
- 1992 Peter Joachim Unold released TINTIN III with the implicit
- right to create derived works and the request for derived
- work to rename the client and clearly state the author. On
- usenet Peter Unold later confirmed that he considered his
- source code release to be public domain.
- 1995 Bill Reiss released TinTin++ 1.5 without a copyright notice,
- two mentions of authorship, and the implicit understanding
- that the work is considered public domain with the exception
- of the tintin15.txt manual which is explicitly copyrighted to
- Joann Ellsworth. It is also made clear that derived works
- should not use the name TinTin++.
- 2001 David Chan released TinTin++ 1.85 without a copyright notice
- just like all previous TinTin++ releases and 4 mentions of
- having made changes in the source code.
- 2001 David Chan and Robert Ellsworth released TinTin++ 1.86 under
- the GPL 2 or later with the 2002 copyright assigned to David
- Chan, Robert Ellsworth, and a reference to the CREDITS file
- on July 12th, 2001.
- David Chan would have been unable to do so legally without the
- explicit permission of Bill Reiss and several other notable
- contributors unless TinTin++ 1.85 which was released without
- a copyright notice or license was considered by all parties to
- be public domain software.
- Subsequently David Chan nor Robert Ellsworth could
- retroactively return copyright to previous authors. However,
- David Chan and Robert Ellsworth could consider themselves,
- and they in fact did, the copyright holders of the public
- domain TinTin++ 1.85 derived GPL 2 licensed software they
- titled TinTin++ 1.86.
- The reason they did this can only be guessed at, but I assume
- they were tired of hosting, developing, and answering
- questions about TinTin++. The easiest way to get the source
- code permanently hosted was by debianizing it, which required
- licensing the code under GPL 2, which could only be done by the
- copyright holder.
- 2001 The TinTin++ 1.86 package was debianized by Jordi Mallach
- <jordi@debian.org> on 22 Aug 2001.
- 2001 Robert Ellsworth, aka Joann Ellsworth, as the copyright holder
- licensed the tintin15.txt manual under the GPL on 28 Aug 2001.
- 2004 Igor van den Hoven received permission from Bill Reiss to
- release TinTin++ derived code under the name TinTin++.
- 2004 Igor van den Hoven released TinTin++ 1.90 on March 13 under
- the GPL 2 or later with the 2004 copyright notice referring
- to the CREDITS file. Due to the inclusion of the tintin15.txt
- file the code could only be legally released under the GPL
- 2 or later.
- Version 1.90 featured a new mathematics engine and regular
- expression interpreter, telnet negotations, a scroll back
- buffer, enhanced VT102 interpretation, a more standardized
- TINTIN scripting language, a nifty string formatter, internal
- color manipulation, and a back to basics command structure.
- TinTin++ 1.90 contained no source code from TinTin++ 1.86 and
- over 50% of the 1.85 code had been deleted or rewritten.
- 2008 Igor van den Hoven released TinTin++ 1.98.3 under the GPL 2
- or later with the copyrighted tintin15.txt manual removed.
- At this point 90% of the code was rewritten and what remained
- was primarily heavily modified code originally written by
- Peter Unold and Bill Reiss.
- 2019 Igor van den Hoven released TinTin++ 2.01.8 under the GPL 3
- or later. The copyright of over 99% of the source code is
- held by Igor van den Hoven with minimal contributions from
- others, making him the sole copyright holder.
- TinTin++, as of version 2.01.8, may not be distributed under
- GPL 2, and can only be distributed under GPL 3 or later. The
- reason for this is the exploitation of a serious loophole in
- the GPL 2 license.
- The TinTin++ software as of version 1.87 is NOT public domain,
- as the GPL 2 & 3 licenses explicitly require a legal copyright
- holder in order to legally enforce the license. Nor do I
- desire to relinquish my rights to do as I please with software
- that I've worked on for close to 20 years.
- If anything is unclear feel free to contact me.
- Feb 2019 2.01.7
- ------------------------------------------------------------------------------
- class.c Added proper class nesting. When closing the active class,
- the last active class is activated. This change will cause
- trouble for scripts that don't properly close classes.
- class.c Added #class {class} SIZE {variable} option to store the size
- of a class in a given variable.
- event.c Added the SHORT-CLICKED mouse events. It triggers when the
- time between pressing and releasing the mouse button is
- less than 0.5 seconds. The event is not triggered when
- double or triple clicks occure, but will trigger on the
- first click of a double click, just like a triple click
- event will be preceded by a double click event.
- event.c All mouse events now report the inverse x and y position
- using the %2 and %3 arguments.
- event.c Added the LONG-CLICKED mouse event. It triggers when the time
- between pressing and releasing the mouse button is greater
- than 0.5 seconds.
- variable.c Added better support for wrapping escaped characters with
- #format %w.
- path.c Added #path create, destroy, goto, move start, stop, swap, undo
- which are somewhat document in #help path.
- You can now have a position on a path, which is displayed
- with #path map. This allows using #path move backward when a
- #path walk forward is interrupted.
- Jan 2019 2.01.6
- ------------------------------------------------------------------------------
- tinexp.c Using $$variable in #action triggers is no longer valid. Use
- $variable instead. If the variable needs to be substituted
- right away use:
- #line sub var {#action {$var} {#loop 1 3 cnt #showme $$cnt}}
- event.c Added {DOUBLE-CLICKED} and {TRIPLE-CLICKED} mouse events
- these events trigger on 2 and 3 clicks within 0.5 seconds.
- A triple click will reset the mouse state.
- event.c Added {MOVED }, {PRESSED }, {RELEASED } and {SCROLLED } mouse
- events. Use #INFO EVENT ON to see the full events. The row
- position is reported using the same method as with #prompt.
- For each click three events are generated, one generic one,
- one with the row position as measured from the top, and one
- with the row position as measured from the bottom.
- The MOVED event only triggers when the mouse is moved while a
- button is pressed.
- %0 contains the column and %1 the row.
- config.c Added MOUSE TRACKING config option which enables mouse
- tracking events. While mouse tracking is
- enabled shift needs to be hold in order to select text with
- the mouse if you want to copy and paste text.
- cursor.c Added WINDOW FOCUS IN and WINDOW FOCUS OUT events.
- tick.c Fixed micro delays not getting properly sorted.
- event.c Added #info {events} {on} option to display messages when
- events are thrown. As this can get quite spammy these
- messages can be gagged as well.
- gag.c Added #debug and #info messages for gags.
- telopt.c Renamed all telnet events that prevent the execution of the
- default telnet handling code to CATCH IAC <TELNET CODE> adding
- several events that did not yet exist.
- Telnet events without default handling code like MSDP and GMCP
- were not renamed.
- telopt.c Added better telnet loop protection for echo negotiations.
- scan.c Changed #scan syntax to #scan {ABORT|CSV|TSV|TXT} {filename}
- CSV reads a comma separated file which triggers the
- SCAN CSV HEADER (first line) and SCAN CSV LINE (subsequent
- lines) events. Values containing spaces require quotes, and
- two quotes "" are required to escape a quote.
- TSV reads a tab separated file which triggers the
- SCAN TSV HEADER and SCAN TSV LINE events.
- TXT is an updated and faster version of the old #scan.
- The old #scan syntax is no longer supported.
- config.c Changed the random number generator to 64 bit with each
- session having its own unique seed that can be set with
- #config {random seed}.
- Jan 2018 2.01.5
- ------------------------------------------------------------------------------
- math.c Fixed bug with floating point math.
- line.c Added #line verbatim option.
- cursor.c Added the #cursor brace open, and #cursor brace close
- commands. This to easily insert the { and } characters from
- within a macro, which currently is rather complicated.
- tinexp.c Added support for <Fxxxxxx> and <Bxxxxxx> 24 bit color codes.
- F stands for foreground, B for background, xxxxxx is a
- hexadecimal RGB value. The terminal must support truecolor
- for these to work.
- session.c Added on|off option to #snoop.
- data.c Added #info {list} {LIST|SAVE} option to list the content of a
- list or save it to a variable.
- tokenize.c Improved trailing space parsing.
- mapper.c Added exit weights.
- mapper.c Added #map get all <var> option.
- main.c Added the -a <argument> startup option, which is passed to the
- %2 variable of the PROGRAM start event.
- buffer.c Added #buffer lock {on|off} option.
- session.c Fixed #port session close being shown as a time out.
- tinexp.c Added \UXXXXXX escape code which takes 6 hexedecimal digits.
- tinexp.c Added \uXXXX escape code, XXXX must be a 4 digit hexadecimal
- unicode index, which is translated to a UTF-8 sequence.
- tinexp.c @ $ * and & characters send from the server are only escaped if
- the key matches an existing variable. Keep in mind that ${ *{
- and &{ are always escaped.
- tinexp.c Added support for <Fxxx> and <Bxxx> 12 bit color codes. F
- stands for foreground, B for background, xxx is hexadecimal RGB
- value. For example <F0F0> will print in bright green. The
- terminal must support truecolor for these to work.
- To use 24 bit truecolor codes use \e[38;2;R;G;Bm where R G B
- are decimal values between 0 and 255. \e[48;2;R;G;Bm will print
- background colors.
- path.c Added support for multiple arguments to #unpathdir.
- line.c #line log {filename} {text} was extremely slow, at least on
- cygwin, because it was opening and closing a file descriptor
- for each log call. Multiple logs to the same file are much
- faster now, with each session having its own dedicated file
- descriptor to speed up consecutive writes to the same log
- file.
- config.c Added config RANDOM SEED option to set a custom seed for the
- random number generator. Useful for machine learning scripts
- and some other obscure stuff.
- system.c Added popen failure check for #script.
- mapper.c Fixed issue with #map undo not properly handling void rooms.
- nest.c Fixed memory issue causing a crash on very large variables.
- config.c Added #config INHERITANCE option. Default is on, set to off
- to prevent triggers from getting inherited. Configurations
- are still inherited from the startup session.
- config.c Added #config CHARSET AUTO option. TinTin++ will try to
- automatically detect UTF-8 and BIG5 encoding.
- session.c SESSION CREATED now triggers after the filename provided with
- #session, #ssl, #run, or #port has been read.
- parse.c Removed dot notation support for variables. #var bla.bli blo
- is no longer valid, nor is $bla.bli. The code didn't add any
- functionality while it was causing all kinds of issues. Sorry
- for the inconvenience, not one of my brightest ideas.
- telopt.c Updated MTTS to report SCREEN READER setting.
- config.c Added SCREEN READER config option.
- telopt.c Updated MTTS to report the ANSI, 256, and TRUE color setting.
- config.c Replaced 256 COLOR config with COLOR MODE config option,
- options are AUTO, NONE, ANSI, 256, or TRUE.
- vt102.c Added truecolor COLOR PATCH support. Not well tested so far.
- log.c Added truecolor html logging.
- input.c No longer spawning blank lines with #config {command echo}
- off, if you want the old behavior you can set your command
- color to <008> or <aaa>.
- tinexp.c Added %! as a regular expression option to prevent the auto
- capturing of a match. For example %!*, %!w, %!d etc.
- %!{ } can be used to the same effect to embed a regular
- expression without automatically adding paranthesis.
- tinexp.c Added an exception so %*{text} is treated as a regular
- expression instead of a variable. As of the last version
- *{text} is a valid variable.
- variable.c Added the %H #format option to generate a 32 bit hash for the
- given string.
- substitute.c Fixed argument substitution problem.
- main.c Can use #end {\} to terminate tintin silently.
- system.c Added #scan abort option
- Oct 2017 2.01.4
- --------------------------------------------------------------------------------
- main.c Added proper greeting handling for narrow terminals, mainly for
- people using tt++ on an android phone.
- variable.c Added proper \ handling in string length calculations.
- variable.c #unvariable takes additional arguments to unvar several
- variables at once.
- tinexp.c Added support for *{variable} to show variable/table keys. This
- is useful when low level data processing is needed.
- For example, *{+1} shows the key of the first variable.
- list.c Added #list {var} simplify {variable} option which saves a
- list (which internally is a table) as a semi-colon separated
- list to the provided destination variable.
- {{1}{bli}{2}{bla}{3}{blo}} becomes {bli;bla;blo}
- May 2017 2.01.3
- --------------------------------------------------------------------------------
- mapper.c Added #map legend support to assign custom characters for
- the #map flag MUD FONT display mode. By default they're set
- to map to the unicode private use area.
- mapper.c By default an UTF-8 #map legend is created for those who do
- not use ASCII graphics. The ANSI legend was pretty much
- unusable and most terminals are supporting UTF-8 now. Windows
- does not support all box drawing characters, hopefully this
- will be fixed in the future.
- mapper.c Removed support for the vtgraphics drawing mode which worked
- on very few terminals.
- utils.c Verbosity is automatically enabled for debug mode to avoid
- logging inconsistencies.
- port.c Added #port command, similar to netcat.
- chat.c #chat prefix works now
- math.c Better #math debug through #debug VARIABLE on
- mapper.c Added map exit <dir> dir <number> option.
- action.c Fixed action crash bug that slipped in
- telopt.c Added telnet events for IAC GA and IAC EOR
- Jun 2015 2.01.2
- --------------------------------------------------------------------------------
- mapper.c Added map <radius> <variable name> {v} option to save the map
- output to a variable.
- log.c html log files now correctly set the charset to UTF-8 or big5
- if applicable.
- tokenize.c Added support for local variables with the #LOCAL command. Most
- commands that manipulate variables will use a local variable
- if it has been declared.
- utils.c Fixed crash bug on substitutions on system messages.
- session.c Showing all connect retry attempts and seconds left.
- session.c Any manual input while connecting will cancel connect retry.
- main.c Can create macros for ctrl-d and ctrl-z again.
- mapper.c Added #map color background option to set a background color
- for the map display.
- variable.c Added optional width argument to #format %w. Also added UTF-8
- support to %w.
- variable.c Attempt to fix %p crash bug on OS X.
- Fixed compilation issue for OS X.
- Jan 2014 2.01.1
- --------------------------------------------------------------------------------
- chat.c Added CHAT MESSAGE event, %0 contains the chat color and prefix,
- %1 omits chat color and prefix.
- chat.c Added #chat prefix option.
- mapper.c Can now provide multiple flags at once when using
- #map roomflag and #map insert.
- line.c Added #line quiet option.
- cursor.c Fixed tab bug with multi-word tabs.
- event.c Fixed bug with events defined in multiple sessions.
- tinexp.c Added @<session name>{<substitution>} option to perform a
- function-like substitution in another session and retreive
- the result. Primarily useful for getting variables.
- highlight.c Added no-blink no-underscore and no-reverse #highlight options.
- highlight.c Added option to use escape codes in the #highlight color field.
- class.c Added #class {<class>} list {<list>} option.
- mapper.c Added #map list {roomflag} option.
- list.c Fixed bug with using #list clear on a nested variable.
- substitute.c Added patch by Nya to properly handle colored substitutions.
- math.c Added // operator to calculate sqrt // 2 or cbrt // 3
- math.c Added ** operator to calculate power
- tinexp.c Added IGNORE options to variables and functions.
- main.c The command history is automatically saved again.
- ssl.c Added SSL support based on KBTin code by Adam Borowski.
- tinex.c $ @ and & are now escaped when received as part of an action for
- added security.
- session.c Added SESSION CREATED event.
- parse.c Fixed command echoing when executing commands in another session.
- Mar 2013 2.01.0
- --------------------------------------------------------------------------------
- session.c #session takes a filename as an additional argument, if the
- session succesfully connects the file will be read.
- variable.c Fixed #echo {%f} {5 / 3} handling.
- cursor.c Added #cursor get and #cursor set options.
- parse.c Added support for nesting using the . argument.
- mapper.c Added map_search_compile option, increasing search speed.
- list.c Added #list TOKENIZE option.
- cursor.c Fixed the cursor PASTE BUFFER option.
- event.c Added the VARIABLE UPDATE <VAR> event.
- cursor.c Added stripping of semi-colons when auto tabbing.
- configure.in Better error handling by Slysven.
- Mar 2012 2.00.9
- --------------------------------------------------------------------------------
- line.c Added a #line strip option to strip color and escape codes.
- mapper.c Fixed the handling of colored symbols in the ascii map.
- input.c RECEIVED INPUT now triggers before input is parsed.
- mapper.c Fixed #map undo handling for #map insert.
- nest.c Fixed crash when using #var a[b]c x
- tokenize.c Fixed crash when using #case outside a #switch.
- cursor.c Added stripping of tailing dots and commas when auto tabbing.
- variables.c #format %A now properly handles BIG5 and UTF-8.
- session.c Added SESSION TIMED OUT event.
- variable.c Fixed substitution problem with #unvariable.
- mapper.c Added support for a {variable} argument to #map list to store
- the returned data into a variable. Using {roomname} and
- other keywords from #map set will work as well.
- mapper.c Added #map exit <dir> save to store exit data in a variable.
- mapper.c Added basic color compression support.
- mapper.c Fixed the #map legend display in vtgraphics mode.
- mapper.c Added automatic initialization of a UTF-8 based legend when
- creating a map with #config CHARSET set to UTF-8.
- mapper.c Fixed unnecessary redrawing of the VT map.
- list.c Now properly handles nested arguments.
- telopt.c Disabled telnet handling when using #run.
- mapper.c Added better UTF-8 handling for room symbols.
- net.c Added the RECEIVED PROMPT event.
- variable.c Fixed a bug in #format with left aligning meta text.
- mapper.c Fixed a bug with path finding related to weighted rooms.
- mapper.c Added #map flag symbolgraphics option to display the room symbol
- instead of a drawing symbol when in non asciigrahpics mode.
- mapper.c Added #map color here option to set the color of the current
- location.
- mapper.c Fixed a path finding issue related to the avoid flag.
- Sep 2011 2.00.8
- --------------------------------------------------------------------------------
- main.c No more advertisements.
- mapper.c Back to void rooms only being allowed two exits, as handling
- multi-exit void rooms adds too much complexity.
- mapper.c Updated the fill_map routine to use breadth-first initialization
- which should significantly improve execution times.
- prompt.c Added proper UTF-8 string length checking for prompt drawing.
- mapper.c Room names are no longer automatically set on creation.
- mapper.c Added the #map vnum command to change the current vnum.
- mapper.c #map link now requires the 'both' argument for a two-way exit
- to be created.
- variable.c Added support to #format for %f to print floating point numbers.
- variable.c Fixed color spacing bug in #format's %s handling.
- mapper.c Added terrain as a searchable option to #map list, goto, find,
- and run.
- mapper.c Added roomweight to the #map get and #map set options. By
- default the weight of a room is set to 1.0 and can be anywhere
- from 0.001 to 1000. The path finder will favor rooms with a low
- weight.
- mapper.c Made the layout of #map info more aesthetically pleasing and
- added the listing of entrances.
- substitute.c Fixed bug where functions could overwrite the original
- substitution's arguments.
- highlight.c Added support for xterm 256 color names, dark azure, dark ebony,
- dark jade, dark lime, dark orange, dark tan, dark silver, dark
- violet, light azure, light ebony, light jade, light lime, light
- orange, light tan, light silver, light violet.
- variables.c Added the %A #format option which prints the corresponding ASCII
- value of the given character. Useful for low level string
- handling.
- Apr 2011 2.00.7
- --------------------------------------------------------------------------------
- main.c Added -s option to launch tt++ with a custom seed, undocumented
- till I get to think it over.
- math.c Improvements to #switch.
- telopt.c Added basic low level VT100 stripping for answer back codes.
- telopt.c Added MSDP array support.
- mapper.c Added a set and get option to #map exit that stores and
- retrieves from a data field.
- mapper.c Added the terrain and data fields to #map set and #map get. The
- data field is intended to contain a table, eliminating the need
- for future extensions.
- system.c When using #run followed by #zap the created child process will
- be properly killed instead of left to hang as a zombie process.
- tick.c When setting a delay the final delay time is echoed.
- event.c Added some extra security to event triggers.
- telopt.c Added MTTS support. On a third TTYPE request MTTS will be
- reported followed by a bitvector that indicates whether ANSI,
- VT100, UTF-8, and 256 colors are enabled. The UTF-8 and 256
- color settings can be configured by the user. VT100 is reported
- as disabled if #split mode is enabled - this because the split
- screen mode needs to be disabled for server side VT100
- interfaces to work.
- system.c Added some extra security to the #script command.
- system.c Changed the #script command to behave like a two argument
- command in preperation of removing the rather awkward
- single argument support.
- line.c Added #line ignore option to execute a command without
- checking any triggers.
- config.c Added a 256 COLOR option. When called with auto it'll guess at
- the terminal's 256 color capabilities.
- variable.c When setting a variable the final variable definition is echoed.
- variable.c Added support for BIG5 and UTF8 string formatting.
- cursor.c Added support for BIG5 and UTF8 input handling.
- config.c Added session based BIG5 and UTF8 #config CHARSET option.
- substitute.c Fixed word boundary matching for substitutions.
- highlight.c Fixed word boundary matching for highlights.
- nest.c Math is no longer performed on table keys, mainly to reduce
- annoying false positives, and because the behavior can be
- scripted with math functions. Math is still performed when
- looking up an index.
- path.c Renamed #path map to #path show, #path map still works, but it
- doesn't properly describe what the command does.
- path.c Added #path unzip option that'll load a speedwalk.
- line.c #line logverbatim is now fully verbatim.
- log.c Added a #log off option. #log append and overwrite can now be
- called while logging is already enabled.
- Jan 2011 2.00.6
- --------------------------------------------------------------------------------
- buffer.c Added better multi-line scroll back handling when word wrap is
- disabled.
- telopt.c Braces are now properly converted in raw gmcp data.
- highlight.c Fixed a bug causing only the first highlight on a line to
- trigger.
- line.c Added a #line {verbose} {<commands>} option which forces
- verbosity on the given commands.
- buffer.c The first match for #buffer find is now 1 instead of 0.
- buffer.c Added support for negative page numbers, causing #grep to search
- from the beginning to the end of the scroll back buffer. The
- first page is now page 1 instead of page 0.
- buffer.c Added a NULL check to prevent possible crashes, not ideal as it
- hides an underlying bug.
- net.c Added the RECEIVED OUTPUT event with %0 containing the received
- output from the server. Can be used to create multi-line
- triggers, though it wouldn't be very efficient.
- main.c No longer enabling DECCKM on startup so keypad mode works
- correctly with MinTTY, it should also result in more reliable
- cross-terminal behavior. This might change the sequence of key
- presses on some systems, so remap macros that stop working.
- mapper.c Added #map resize <size> option to increase the maximum number
- of rooms.
- mapper.c Added #map get worldsize option.
- mapper.c Added #map get worldflags option and fixed some displaying issues
- in the #map exit command.
- update.c Added several time events, YEAR, MONTH, WEEK, DAY, HOUR, MINUTE,
- SECOND, DATE mm-dd, DATE mm-dd hh:mm, TIME hh:mm, TIME hh:mm:ss.
- Events like YEAR 2012, MONTH 04, HOUR 13, are valid as well.
- %0 to %6 hold year, month, week, day, hour, minute, and second
- for each event.
- math.c Added support for automatic dd:hh:mm:ss time to second
- conversion. For example, #math test 1:12:32:17 would store
- 131537 in test. #delay 10:00 #bell would ring the terminal bell
- after 10 minutes. This change will effect associative arrays
- consisting of numbers and colons.
- tinexp.c Updated #replace to support regular expressions. Like with the
- #regex command the &1..&99 arguments can be used.
- Oct 2010 2.00.5
- --------------------------------------------------------------------------------
- session.c Fixed split settings not getting properly inherited from the
- startup session.
- advertise.c Updated with 2011 sponsors.
- system.c do_script() and do_system() now call refresh_terminal(), this
- due to php calls messing up the terminal settings.
- terminal.c Added the refresh_terminal() function which will reset the
- terminal settings to the tintin default.
- mapper.c Fixed the MAP EXIT ROOM event, it was reporting the next room
- rather than the current room for %0. %1 now holds the new room,
- and MAP ENTER ROOM will hold the old room in %1.
- mapper.c Added the option to make vnum specific events, like MAP EXIT ROOM
- 42 or MAP ENTER ROOM 27.
- vt102.c Fixed bug in the VT102 state handler.
- mapper.c Added the option to provide a vnum for #map delete.
- tokenize.c Fixed a bug with the verbose state being lost when starting a
- new session using an alias.
- tinexp.c Fixed a bug with embedded variables not getting substituted when
- used in nested variables.
- Aug 2010 2.00.4
- --------------------------------------------------------------------------------
- tokenize.c Added a better verbatim and verbosity handler to more
- generically deal with aliases and input triggered events.
- mapper.c Several mapper messages are no longer displayed when used in
- scripts.
- vt102.c Added proper \e[0;0r VT100 handling.
- telopt.c Added IAC DONT TTYPE handling, allowing servers to reset the
- TTYPE negotiation state.
- telopt.c Added support for cycling through terminal types. On the first
- TTYPE request TINTIN++ is reported, on the second request the
- TERM environment variable is reported.
- misc.c #zap now takes an optional argument to zap a specific session.
- text.c When UTF8 is defined in tintin.h UTF8 characters should get
- wordwrapped correctly.
- telopt.c Added support for module like MSDP events.
- mapper.c Added #map uninsert <direction> command which does the exact
- opposite of the insert command.
- mapper.c Added #map at <location> <command> command which executes the
- given commands at the given location.
- variable.c Allowing math in #format %t time seeds.
- path.c Fixed #path zip command.
- prompt.c Added better #prompt {line} {substitution} {0} support to print
- a mud prompt and pending input on the 0 line.
- mapper.c Added #map map 80x20 <filename> {a} option to log in append
- mode, by default an overwrite is performed.
- path.c Added the option to use #path load {n;e;s;w;u;d}
- path.c When using #path run {delay} you can remove pending run commands
- (fairly) safely using: #undelay PATH %d
- This will also work for #map run {location} {delay}
- Jul 2010 2.00.3
- --------------------------------------------------------------------------------
- mapper.c When path finding the path will be highlighted on the map.
- telopt.c Added support for GMCP events and JSON to TINTIN conversion.
- mapper.c Merged the #map exit and #map exitdir into the #map exit command,
- adding options for COMMAND, DIRECTION, FLAG, NAME, and VNUM.
- mapper.c Added support for exit flags, no actual exit flags have been
- implemented yet.
- mapper.c Added #map goto {vnum} {dig} option to have goto dig a room
- if the room does not exist.
- mapper.c Added #map dig {dir} {<vnum>} option to dig an exit to the
- specified vnum.
- mapper.c Added NOFOLLOW flag support to stop auto following of the
- mapper.
- nest.c Fixed freeze bug caused by using a semi-colon between
- associative array elements.
- variables.c Statements like %+10s now ignore colors.
- variable.c Escapes are now handled correctly by %L in #format.
- input.c Fixed an issue in echo_command causing broken packets to
- be echoed without triggering any actions or events.
- mapper.c When setting an exit command it will work like an alias when
- in that room.
- list.c #list {var} add now allows semi-colon separated arguments.
- list.c #list {var} create now allows semi-colon separated arguments.
- variable.c #variable allows additional arguments which can be used to
- merge nested variables.
- nest.c Added add_nest_node function which is a copy of set_nest_node
- except that it doesn't clear the variable.
- telopt.c Added MSDP_OPEN and MSDP_CLOSE support.
- telopt.c MSDP arrays no longer generate an event for each item, instead
- a list is generated.
- tintin.h Lowered BUFFER_SIZE to 20000 because of crash reports.
- files.c #write now only saves triggers that do not belong to a class.
- mapper.c Added MAP ENTER MAP and MAP EXIT MAP events.
- split.c Redrawing the VTMAP whenever the split settings are reset,
- typically on session switch and screen resize.
- Apr 2010 2.00.2
- --------------------------------------------------------------------------------
- line.c Added the #line substitute options which allows the
- substitution of variables, functions, colors, and
- escape codes in the given argument.
- config.c Added a config option to enable BIG5 support.
- mapper.c Added an optional vnum argument to #map get and #map set,
- calling #map get on an invalid vnum results in the variable
- being set to 0 while #map set calls on invalid vnums do
- nothing.
- terminal.c Added SCREEN RESIZE event.
- session.c Added SESSION ACTIVATED and SESSION DEACTIVATED events.
- nest.c Nested variable calls to non existing nests now return
- "" rather than "0", this to allow $var[%*] calls to work
- correctly with empty variables. I originally added the "0"
- response for if checks, but this is obsolete with the
- much more reliable &variable[] call.
- buffer.c Added a check to avoid a potential crash on displaying the
- scrollback buffer in show_buffer(), needs a better fix but I
- don't have the time and patience.
- tables.c Removed #suspend command, #cursor suspend is available instead.
- tokenize.c Added BIG5 handling for #parse
- tintin.h Fixed an error in the SCROLL macro that determines whether
- something is printed inside or outside of the scrolling region.
- tinexp.c Function arguments are no longer space but semicolon separated.
- mapper.c Updated messages to be non triggerable and to only echo on manual
- input.
- Feb 2010 2.00.1
- --------------------------------------------------------------------------------
- help.c Added documentation for #map exitdir
- net.c Fixed a bug with color patch prepending the current line's color
- rather than the previous line's color.
- vt102.c Improved 256 color patching handling.
- vt102.c Added better \b handling, so muds using backspaces won't cause
- wrapping or scrollback issues.
- path.c #path load and #path save now load and save to variables, rather
- than aliases.
- mapper.c Added #map dig {<direction>} {new} option.
- mapper.c Added support for loading map files edited in Windows.
- tinexp.c Added support for separating function arguments using semicolons.
- buffer.c Now only stores a buffer line as a simple variable if no upper
- bound argument is given. Added support for dealing with a
- lower upper bound to store the lines in reverse.
- math.c Fixed floating point handling.
- data.c Fixed floating point associative array handling.
- Jan 2010 2.00.0
- --------------------------------------------------------------------------------
- list.c Changed substitution order for #list add to substitute before
- breaking up the arguments.
- tinexp.c Added escaping of existing functions using @@
- tokenize.c Added tokenization of #regex.
- data.c A trigger's priority can now be a floating point numbers.
- tinexp.c Fixed COMMAND_SEPARATOR related bug introduce in 1.99.9.
- misc.c Added escape substitutions to vt row echo calls.
- buffer.c Added #buffer get option.
- Nov 2009 1.99.9
- --------------------------------------------------------------------------------
- update.c Fixed crash bug with delays.
- math.c Fixed issue with negative numbers.
- main.c Fixed infinite reconnect trigger loop with #end.
- tintin.h Can now alter the COMMAND_SEPARATOR definition in tintin.h to
- change the command separator character.
- buffer.c Added #buffer clear option.
- math.c Fixed bug with ~ handling.
- tick.c Fixed a bug with delays not substituting variables right away.
- Sep 2009 1.99.8
- --------------------------------------------------------------------------------
- math.c Added check to bypass inf and nan in tintoi.
- update.c Fixed a potential memory overflow in the input parser.
- misc.c Fixed displaying bug with semi-colons in echos.
- nest.c Added support for $variable[regex] to return lists. For
- example $variable[%*]
- tinexp.c No longer required to escape literal ^ and $ signs.
- So #regex {A ^ B} {A ^ B} returns true now instead of false.
- net.c Instead of exiting, tintin tries for 1 second to write data
- to a session before closing the session.
- tinexp.c $$<string> only gets converted to $<string> if $<string> makes
- a valid variable. Same for &&<string>.
- tokenize.c Added support for using ; in #foreach.
- misc.c Added support for using ; in #forall.
- mapper.c Updated the map grid to allocate memory for a future
- #map dump 99x99 <file> command.
- Jul 2009 1.99.7
- --------------------------------------------------------------------------------
- mapper.c Added #map color <rooms|exits> <color> option.
- mapper.c #map list uses all location fields now, displays distance, and
- no longer displays exits.
- mapper.c Added desc, area, and note field to rooms.
- mapper.c Added checking for exits as well as desc, area, and note for
- the map goto and map find commands.
- tokenize.c Substituting the arguments of #return.
- nest.c $variable[] returns "" if the variable exists but has no nests
- *.c Updated triggers to substitute variables.
- tinexp.c Added %i and %I to toggle case in-sensitive matching.
- misc.c Added #echo {{spam}{row}} support.
- parse.c Yet another attempt to get verbatim mode working properly.
- variable.c Renamed #replacestring to #replace
- tinexp.c All commands now use tintin regular expressions. Instead of
- * and ? use %* and %? - for perfect matches uses ^string$.
- This change affects the #regexp and #if commands.
- tokenize.c Added #write support for #loop and #foreach.
- tokenize.c Added #foreach {list} {variable} {commands}
- tokenize.c #loop syntax is now: #loop {min} {max} {variable} {commands}
- variables.c The argument list of #format and #echo are no longer nested,
- this probably requires many scripts to be updated.
- nest.c Now only showing non existing nested variables as 0, unnested
- variables will be shown as $variable if they do not exist.
- files.c Added support for saving nested variables.
- list.c Updated list support for nested variables.
- data.c The kill command now takes a 2nd argument allowing to kill
- specific items in the chosen list.
- nest.c Added support for math within brackets.
- math.c Added get_alnum routine.
- nest.c Added support for $variable[] showing all indices.
- nest.c Added support for $variable showing all nested variables.
- nest.c Can now assign nested variables directly nested pairs of braces.
- nest.c Added support for &variable reporting the variable's index.
- tokenize.c Added #else command.
- parse.c brackets now provide nesting so #var bla[bli bli] x will
- execute as #var {bla[bli bli]} instead of #var {bla[bli}
- data.c Accessing an variable index now requires +1 instead of 1.
- mapper.c Added MAP EXIT ROOM event.
- tokenize.c Added #switch #case and #default commands.
- math.c Fixed crash bug with #math.
- list.c Added list srt and ins support for nested list variables.
- data.c Sorting numeric variables as integers instead of as strings.
- text.c Fixed crash bug in wordwrap code.
- net.c Fixed double action triggering on prompts in split mode.
- variables.c $1 now references the first variable, $2 the second, etc.
- variable.c Uninitialized variables now return 0.
- data.c Added nested variables. As in #var $bla[this][that] 1
- data.c Changing from linked lists to sorted arrays.
- cursor.c Replaced #cursor echo with 'echo on' and 'echo off'
- cursor.c Modifying the input buffer while tabbing will reset the
- tab finder.
- May 2009 1.99.6
- --------------------------------------------------------------------------------
- cursor.c Added forward and backward tab completion patch by Ben Love.
- forkpty.c Added forkpty patch by David Champion. It allows tintin to
- run on Solaris and other systems that lack forkpty().
- April 2009 1.99.5
- --------------------------------------------------------------------------------
- *.c Made code c++ compatible.
- system.c Added 2nd argument to textin for a cumulative per line delay.
- telopt.c Added event handlers for MSDP, NEW-ENVIRON, and ZMP.
- substitute.c #sub {trigger} {.} no longer gags text, use #gag instead.
- substitute.c Now allowing multiple substitutions per line which are
- automatically substring substitutions.
- March 2009 1.99.4
- --------------------------------------------------------------------------------
- utils.c Fixed 100 move map crash bug.
- input.c Now sending \r on enter when using #run, seems to give the best
- behavior.
- log.c Added xterm 256 color html logging.
- terminal.c Disabled default ctrl-s and ctrl-q behavior.
- March 2009 1.99.3
- --------------------------------------------------------------------------------
- data.c Now properly inheriting triggers from the startup session.
- net.c Now fetching IP address when connecting to a server.
- variable.c Now possible to use escape codes in #replace
- vt100.c Tabs are no longer stripped in the scrollback buffer.
- help.c Updated event helpfile with event arguments.
- telopt.c Added generic telnet subnegotiation event.
- telopt.c Added better broken packet support for telnet negotiations.
- variable.c now possible to use #var bla {} to set an empty variable.
- event.c Extended the event handler to easily accept additional arguments.
- tinexp.c Now possible to send NUL bytes with #send using \x00 or \c@.
- This is as far as the support for non strings goes though.
- tinexp.c Can use #regex on an empty string now.
- input.c Resetting command color at end of command.
- tinexp.c %%w, %%*, etc, should escape properly now.
- parse.c Fixed VERBATIM behavior, aliases can now be used in verbatim
- mode.
- alias.c Now possible to #ignore aliases.
- highlight.c Fixed highlights.
- March 2009 1.99.2
- --------------------------------------------------------------------------------
- tinexp.c Added pre-compiler for triggers, making them execute much faster.
- input.c Macros now default to \ca to \cz for control characters instead
- of readline's \C-a to \C-z. This because PCRE uses \c and it
- makes sense to use a universal system. Old control codes still
- work.
- mapper.c Can now use #map create {number of rooms}, by default the number
- of rooms is set to 15000. World size is stored as C <number> in
- map files.
- February 2009 1.99.1
- --------------------------------------------------------------------------------
- telopt.c Added MSSP support, use: #config {debug telnet} on, to see the
- output from a MUD server supporting MSSP.
- tinexp.c Added pre-parser to convert tintin globs to regexps.
- tinexp.c Now using PCRE (Perl Compatible Regular Expressions)
- tinexp.c Added \cx "control-x", where x is any character.
- tinexp.c Added \0xx, where x is an octal number.
- February 2009 1.99.0
- --------------------------------------------------------------------------------
- misc.c #showme and #echo now can have a / as a suffix to stop a
- linefeed from being added.
- vt100.c Added an extra measure to prevent losing track of the cursor
- position.
- documentation Updated the credits file and my mods file.
- tables.c Added a full telnet option table.
- tables.c Added END OF PATH event.
- tokenize.c Now shows debug info for triggers with #debug enabled.
- buffer.c No longer reprinting screen using page-up at the top of the
- scrollback buffer to stop refresh lag with slow terminals.
- tinexp.c Fixed incorrect displaying of xterm 256 background colors.
- config.c Removed timestamp config option, a scripted #event based
- alternative has been added to the SCRIPT file.
- cursor.c Added cursor option for auto tab.
- config.c Added auto tab option to set the amount of lines of the scroll
- back buffer used for auto tab completion.
- January 2009 1.98.9
- --------------------------------------------------------------------------------
- variable.c Rewrote the 'd' format option to use a digit, mainly to enable
- the + option of normal digit formatting.
- parse.c Fixed speedwalk toggle bug.
- tinexp.c Added <g00> to <g23> xterm 256 color codes to support the
- greyscale colors.
- history.c Updated history command with the list, size and character
- options.
- tokenize.c Fixed ; issue sending out enters in the pre-parser.
- action.c Fixed ; issue in actions, which managed to unfixed itself.
- history.c Updated the history command, now takes #history list to view
- the command history.
- buffer.c Updated the buffer command to use generic command interface.
- December 2008 1.98.8
- --------------------------------------------------------------------------------
- tokenize.c New pre-parser to deal with nesting issues.
- misc.c Added #while {var} {commands} command.
- misc.c #loop no longer works like a while loop.
- misc.c The $loop, $parse, and $forall variables are no longer
- automatically set.
- Makefile.in Added tokenize.o
- files.c #write now formats its output.
- tinexp.c Casting regex arguments to integers so it works properly on os x.
- config.c Added a config option to enable/disable MCCP support.
- variable.c Changed %t format option to use a strftime format instead to
- print the current time.
- telopt.c Streamlined telopt handling slightly to deal with MCCP errors.
- October 2008 1.98.7
- --------------------------------------------------------------------------------
- alias.c Variables can be used in alias triggers, working pretty much
- the same way as they do in actions.
- mapper.c When leaving a map a last room is set, which can be returned
- to with #map return. The last room is stored when saving a map,
- and #map return will work as well after reading in a map.
- help.c Updated the math helpfile with available bit operations.
- misc.c #echo no longer triggers actions.
- help.c Updated the showme and echo help entries.
- mapper.c #map map now takes an optional <x>x<y> size argument and an
- optional filename argument to log the map output to file.
- Useful for people who want to tail -f -s 0.1 a map window.
- config.c Added a timestamp config option to add timestamps to log
- files using the strftime format.
- September 2008 1.98.6
- --------------------------------------------------------------------------------
- mapper.c No longer need braces to use the delay option in map travel
- and map run.
- mapper.c Added static room flag.
- mapper.c Can now specify on/off for setting global flags and room flags.
- mapper.c Added breadth first support for the map drawing routine, based
- on code by Bryan Turner.
- mapper.c Added support for 3 letter room symbols.
- alias.c Variables passed along as an alias argument now go by value
- instead of by reference.
- mapper.c Added the asciivnums flag which displays room vnums in the ascii
- map.
- August 2008 1.98.5
- --------------------------------------------------------------------------------
- mapper.c Added #map jump <x> <y> to goto rooms using coordinates
- relative to the user's current room.
- list.c Added #script {var} {command} option.
- input.c Fixed bug with the first input character being ignored in
- character mode.
- tinexp.c Can now escape variables using 2 or more dollar signs.
- cursor.c Fixed bug with ctrl-w
- cursor.c Fixed bug with ctrl-r's input offset.
- mapper.c When using #map find, run, and goto and there are multiple
- matching rooms the nearest room will be returned.
- July 2008 1.98.4
- --------------------------------------------------------------------------------
- cursor.c Added glob/regex support to reverse history searches.
- tinexp.c wildcard searches should work as old again, and regexp searches
- work more like old wildcard searches.
- tick.c Can use variables for ticker names.
- mapper.c Changed #map exit to #map exitcmd
- mapper.c Added #map exitdir command, which allows setting a direction
- for unusual exits so they can be displayed on the map.
- mapper.c Changed #map walk to #map run, and fixed the optional delay
- argument.
- mapper.c Fixed optional delay argument for the #map travel command.
- mapper.c Void rooms can have more than two exits again if the exits form
- a straight line.
- mapper.c Fixed going through void rooms with #map travel.
- variable.c #format will use the current time if no time value is provided
- for the %M %Y %D %d and %t arguments.
- mapper.c asciigraphics is now the default map display setting.
- terminal.c Enabled the ISIG flag allowing ctrl-c to be mapped.
- cursor.c Updated ctrl-d to allow exiting tintin.
- cursor.c Updated ctrl-c to clear the line rather than exiting tintin.
- config.c Changed #config {echo command} to #config {command echo}
- config.c Added the #config {command color} {<000>} option.
- mapper.c #map insert now allows adding a roomflag as the 2nd argument.
- tinexp.c Can now use %{variable} besides %0 - %99 in actions.
- June 2008 1.98.3
- --------------------------------------------------------------------------------
- mapper.c It's now possible to use strings in the map legenda, mainly for
- terminals supporting UTF-8.
- mapper.c Void rooms now work with unusual exits as well.
- mapper.c Added some unlisted map commands to the #map and #help listing.
- input.c Verbatim mode now only works on manual input, actions and macros
- will have their commands processed normally.
- mapper.c #map map now accepts a given radius.
- config.c #config packet patch now takes a floating point seconds argument
- instead of milli seconds. The valid input range is between 0.00
- and 10.00 seconds.
- config.c Added the #config regexp on/off option.
- input.c Added the RECEIVED INPUT event.
- tinexp.c Added the match function to work with #config regexp.
- cursor.c Added support for deleting words forwards using alt-d
- path.c Added #path zip option to format a created path into
- speedwalk notation.
- tinexp.c \[ and \] no longer escape to { and }, instead \x can
- be used, the values are shown in #help escape.
- tinexp.c All regexp's should substitute escape codes.
- tintin19.txt Rewrote the large manual file to contain a brief up to date
- manual instead. #help remains the primary help source.
- tintin15.cr Removed the tintin15.txt copyright notice as the documentation
- by Robert Ellsworth is no longer used.
- May 2008 1.98.2
- --------------------------------------------------------------------------------
- tables.c Home and End now use cursor home and end.
- input.c Added support for \x and \b in macros.
- net.c Fixed a bug with stacking prompts.
- cursor.c Pressing ctrl-r (history search) while searching will place
- the found search in the input field.
- cursor.c Added left_word and right_word for alt b and f behavior.
- March 2008 1.98.1
- --------------------------------------------------------------------------------
- main.c Command history is no longer automatically saved and loaded.
- history.c Added history read and write option.
- cursor.c Fixed displaying of ctrl-r reverse command history search.
- *.c Added punctuation to most messages.
- *.c Fixed function arguments overwriting action arguments.
- tinexp.c { and } in triggers will be translated to \x codes.
- line.c Added the line command to group #gagline and #logline.
- tables.c Added the 'program termination' and 'received line' events.
- February 2008 1.98.0
- --------------------------------------------------------------------------------
- cursor.c Added the #cursor enter option
- input.c Fixed #macro usage in character mode.
- chat.c Fixed an exploit to erase files with #chat.
- chat.c Fixed a crash bug in the negatiation routine, apparently
- sscanf doesn't check line feeds.
- chat.c Lowered the maximum read from socket size to half of
- BUFFER_SIZE to prevent buffer overflows.
- log.c Fixed a coloring bug with html logging.
- alias.c Fixed a bug with alias parsing.
- December 2007 1.97.9
- --------------------------------------------------------------------------------
- highlight.c Added 'dark' as a valid color name.
- vt102.c Added get_color_codes function.
- text.c Now printing the previous color code on each new line.
- config.c Added a color patching option.
- log.c Fixed append logging in html mode for cygwin.
- parse.c Went back to the more robust old school memory usage with
- some changes to still allow for recursion.
- telopt.c re-enabled GA prompt handling.
- main.c Fixed a bug with the startup argument routine.
- November 2007 1.97.8
- --------------------------------------------------------------------------------
- input.c Fixed some chinese character related issues.
- parse.c Fixed some chinese character related issues.
- tinexp.c Added the option to use %00 to %99
- tinexp.c Must now escape using %% rather than %%90
- path.c Added #path run <delay> option.
- highlights.c #highlight now colors all matches on a line.
- tinexp.c Functions now only use %0 to %99 rather than &*
- October 2007 1.97.7
- --------------------------------------------------------------------------------
- variable.c Fixed some coloring issues with the %w format option.
- input.c Macros no longer trigger with config convert meta enabled.
- net.c Fixed prompt handling issue for triggers in split mode.
- tinexp.c Added the regexp command to use regexp string comparisons.
- August 2007 1.97.6
- --------------------------------------------------------------------------------
- input.c Fixed some server side VT issues with command echoing.
- text.c Tintin no longer line wraps when word wrap is disabled, this to
- fix pasting issues, and assuming that most terminals will line
- wrap correctly.
- history.c No longer add input with less than 2 bytes to the history.
- cursor.c Added prefix history searching.
- files.c Fixed verbose behavior when reading a file which reads a file.
- net.c Fixed address reporting in #session.
- variable.c Added %w option to wrap text.
- August 2007 1.97.5
- --------------------------------------------------------------------------------
- Fixed some bugs in socket handling.
- #run now shows the stderr when failing to run.
- Fixed a bug with #config {packet patch}.
- July 2007 1.97.4
- --------------------------------------------------------------------------------
- Added the #run command to run various applications inside tintin.
- Added packet defragmentation at the socket level.
- Fixed a buffer overflow in the scrollback buffer's prompt
- handling.
- July 2007 1.97.3
- --------------------------------------------------------------------------------
- Added the #script command to run any kind of script client side.
- Fixed a variety of minor bugs.
- June 2007 1.97.2
- --------------------------------------------------------------------------------
- Fixed buffer overflow with receiving several prompts.
- Fixed bug with scrollback lines not being properly deleted.
- Added #map explore and #map travel options.
- May 2007 1.97.1
- --------------------------------------------------------------------------------
- Added #map insert
- Fixed bug with #list fnd
- Fixed bug with prompts in buffer
- Set #delay {name} {command} {delay} as alternative syntax
- opposed to #delay {delay} {command}
- April 2007 1.97.0
- --------------------------------------------------------------------------------
- chat.c Configure now detects a missing pthread library.
- tick.c Delay now takes a name argument as the 3rd argument.
- tick.c Added #undelay command.
- cursor.c Added the option to paste deleted input with ctrl-y
- March 2007 1.96.9
- --------------------------------------------------------------------------------
- list.c Added #list {list} clr option to empty a list.
- list.c Added #list {list} srt option to insert in alphabetic order.
- parse.c Defined a COMMAND_SEPARATOR variable instead of ';' checks.
- utils.c Fixed some display issues for #showme and untriggered prompts
- in split mode.
- session.c Now uses #session {name} {host} {port}
- tinexp.c Can now use %0 (all args) and %1 to %9 in functions.
- memory.c Increased the maximum internal memory size from 10 to 50KB.
- debug.c Set the maximum number of iterations to 10K.
- February 2007 1.96.7
- --------------------------------------------------------------------------------
- mapper.c Fixed fast forwarding shortest path searches through void rooms.
- mapper.c Fixed #map link not deleting old links.
- mapper.c Fixed drawing of void rooms.
- help.c Added a cleaned up version by Simon.
- cursor.c History next and prev now put the cursor at the end of the line.
- gag.c Seperated gags from substitutions.
- files.c Inproved accuracy of #read's error report.
- path.c Merged all path commands into one generic path command.
- March 2007 1.96.8
- --------------------------------------------------------------------------------
- main.c Added getopt supported command-line argument handling.
- main.c Added [-t title] option to set the title bar.
- files.c Now stripping all trailing spaces and tabs in #read.
- utils.c Added show_debug command to display debug messages a bit easier.
- net.c Added IPv6 support.
- cursor.c Added cursor_echo function to toggle local echo.
- cursor.c Added cursor_insert function to toggle insert mode.
- tinexp.c Using $variable[index] now works with lists.
- variable.c Can set list indexes with #var {variable[index]} {text}
- January 2007 1.96.6
- --------------------------------------------------------------------------------
- cursor.c Fixed behavior of ctrl-e for osx.
- log.c Fixed newly introduced crashbug with #logline
- highlight.c Now parses <###> color codes to allow for 256 colors.
- function.c Can now use undescores in function names.
- tables.c Added map list for #map undo and message handling.
- main.c Added pathdirs for diagonal exits and spatial coordinate info.
- mapper.c Now using spatial coordinates from pathdirs. This requires
- users to reset their saved pathdirs. If used correctly mapping
- should work for muds with a non standard exit system.
- mapper.c Added movement history for #map undo
- mapper.c Updated #map undo to use the map movement history
- cursor.c Fixed bug in ctrl-e behavior
- misc.c Removed old debug message in #send.
- mapper.c Added room symbols.
- mapper.c Added #map set to set various attributes
- mapper.c Added #map get to get various attributes and store them as
- variables.
- mapper.c #map walk {location} {0.5} will now run to the location with
- 0.5 second delays between commands.
- input.c Added input_printf for consistent echo handling
- tables.c Added generic variable and function substitution for #map
- input.c Now checking for negative characters when converting meta
- characters. Should fix issues when creating macros with
- swedish and german characters.
- buffer.c Can now use #buffer f with negative numbers to find the first
- instead of last occurance of a string. Also made the no match
- found string triggerable.
- mapper.c Can now use case insenstive room finding with wildcards in
- #map find and other room search related commands.
- tintin.h Placed lists in alphabetical order.
- event.c Added a basic event system, check #event
- December 2006 1.96.5
- --------------------------------------------------------------------------------
- buffer.c fixed up color handling of commands.
- *.c Put on my dirty boots and annihilated all lib readline related
- stuff. Readline sucks donkey balls. You can quote me on that.
- terminal.c Merger of echo.c and scrsize.c
- terminal.c Added init_terminal to force character mode for input handling.
- terminal.c Added custom screensize handling.
- rl.c Now forwarding data on stdin to input.c
- input.c Added basic command parsing options.
- history.c Added tintin-esque command history support.
- cursor.c Deals with cursor handling for input.c
- tables.c Added a command table for cursor.c
- cursor.c Added support for some readline-esque input handling.
- tab.c Added my own (improved) tab handling.
- tab.c Moved tab handling to cursor.c
- vt102.c Made some improvements to the VT102 support.
- cursor.c Added history browsing with up, down, ctrl-p and ctrl-n. Made
- some minor improvements over the readline version.
- utils.c Added ins_sprintf function that properly inserts a string
- within another strong. Has formatting capabilities.
- input.c Added process_input as the main input function.
- input.c Added read_line function for default command parsing.
- input.c Added read_key function for character mode.
- main.c Moved suspend and exit functions to main.c
- main.c Fixed #suspend handling.
- split.c Now adjusting NAWS when changing split screen.
- cursor.c Added do_cursor for using cursor features in macros.
- history.c Added do_history for history manipulation.
- rl.c Moved to update.c
- *.c Tintin is now officially lib readline free. Good riddance.
- The binaries are 40% smaller.
- tinexp.c Added 256 xterm color support using <aaa> to <fff> with rgb
- values. Background colors are set with <AAA> to <FFF>
- tintin.h Added gtd->flags for global flags instead of using cludgy
- flags on gts->flags.
- cursor.c Added cursor_redraw_line routine which adds readline input
- scrolling behavior. Tintin will probably work quite poorly on
- non VT100 terminals now.
- tables.c Added list flags to work around the fact that I use lists for
- stuff they weren't originally intended for. Updated list parsers
- throughout the source code.
- main.c Added a signal handler for SIG_TSTP to handle ctrl-z smoothly.
- input.c Escaped unmatched sequences are now automagically meta converted.
- cursor.c history prev and next can now be used in combination with the
- history search function.
- mapper.c Improved map drawing by using virtual coordinates.
- mapper.c Added a flag to enable vt graphics mode. A hopefully universal
- legenda is: 250 223 222 200 220 186 201 204 221 188 205 202 187
- 185 203 206 246
- mapper.c Added a flag to draw 6x3 ascii graphics which allows displaying
- rooms going ne, nw, se, sw, u, and d.
- misc.c Can no longer use commas in #loop. When using 1 argument with
- #loop it's assumed
- misc.c Can now use math in delays, as in #delay 1d5 smile.
- mapper.c Added the void roomflag which can be used to turn rooms into
- links. This is mainly useful to fit overlapping areas on the
- same map without using the hide flag.
- December 2006 1.96.4
- --------------------------------------------------------------------------------
- class.c classes are now properly inherited from the main session.
- misc.c fixed chinese character issue with #parse.
- parse.c fixed parsing issues introduced in 1.96.3.
- mapper.c debugged and updated alpha mapping code to beta.
- tables.c added a mapping related sub-command table.
- November 2006 1.96.3
- --------------------------------------------------------------------------------
- telopt.c Updated telopts to login on globalvillage bbs.
- buffer.c Added buffer find option, which works much like grep but instead
- places the scrollback buffer at the given search string.
- tinexp.c Can now add lists of keywords between square brackets divided
- by seperators, for example [his|her|its] in actions. The actual
- text is stored in the next %0-9. Cannot be used for highlights.
- list.c array_fnd function allows searching for words in lists.
- path.c can now save loaded paths backward.
- August 2006 1.96.2
- --------------------------------------------------------------------------------
- variables.c Removed #getitemnr, obsolete with the #list command.
- variables.c Removed #getlistlength, obsolete with the #list command.
- variables.c Removed #removestring, obsolete with the #replacestring command.
- math.c Added tineval to properly evaluate == and !=
- chat.c Now setting NONBLOCK on the chat port due to reports about
- disconnects hanging tintin.
- config.c Added #config {log level} {low|high} which is a hidden config
- option. Defaults to high, when set to low tintin will log the
- raw mud output.
- August 2006 1.96.1
- --------------------------------------------------------------------------------
- misc.c Fixed a spacing issue in do_showme.
- mapper.c Fixed map drawing.
- telopt.c Fixed telnet negotations to login on ISCA BBS.
- math.c Commas are now stripped from numbers.
- math.c Added support for floating point math.
- tick.c Can use 1d10 etc for the times in #delay.
- main.c Added -h and -e as startup options.
- June 2006 1.96.0
- --------------------------------------------------------------------------------
- data.c Rewrote #killall to accept arguments to kill specific lists.
- chat.c Added #chat unitialize.
- chat.c Added basic support for group chats.
- chat.c Added support for colored names.
- highlight.c Fixed crash bug for invalid highlights.
- class.c Fixed crash bug with #killall related to classes.
- chat.c Added #chat send which allows sending custom chat commands.
- chat.c Fixed link lost crash bug.
- April 2006 1.95.9
- --------------------------------------------------------------------------------
- input.c Fixed some bugs in the character mode support.
- misc.c Placed the functions in alphabetic order and added #SEND which
- will send the given argument directly to the mud. Useful for
- sending escape sequences because you cannot start a mud
- command with an escape sequence.
- scrsize.c If in character mode tintin depreps the terminal temporarily
- when sending NAWS. Yet another annoying readline bug.
- chat.c Added DND (do not disturb) feature. When enabled tintin will
- no longer accept new chat connections.
- Fixed a bug in the DNS lookup routine for addresses starting
- with a number.
- Can now chat to people by entering their ip address. Useful to
- deal with auto ip bans.
- parse.c Complex multi words aliasses are now possible.
- data.c Priority lists are now sorted alphabetically per priority level
- class.c #class class read <file> no longer parses files for the given
- class. The code was too messy to maintain. Instead it'll open
- the class, read the file, and close the file.
- alias.c Added support for complex multi word aliasses.
- chat.c Added #chat public option, accepts the all argument.
- chat.c Added #forward all which included session output
- chat.c Added #color which sets the default color
- chat.c Added a boost option for #chat accept to quadruple download
- speeds, might cause file corruption on bad connections.
- class.c Rewrote some code, #unclass should work now.
- data.c Issueing #tick {name} twice will now reset the ticker.
- math.c Fixed invalid input handling.
- misc.c Snooping a non existant session no longer crashes tintin.
- March 2006 1.95.8
- --------------------------------------------------------------------------------
- buffer.c While the concept works the code should be more solid. Fixed
- some bugs in the buffer code causing scrolling to crash
- on long help files.
- buffer.c Added a #buffer lock option which resembles scroll lock.
- log.c Fixed a bug in #log append which caused it to not generate
- html headers.
- chat.c Modified the threaded chat functions to minimize accessing
- global data.
- chat.c Fixed formatting bug causing chat messages containing %s to
- crash the client.
- chat.c #chat who now shows user flags
- parse.c Removed old code that allowed using " " instead of { } in
- a couple of commands such as #format. While I used it in
- some example scripts the code is causing problems.
- data.c Can now use #unmacro by exactly matching the macro instead of
- having to use \\ for a single \.
- input.c TinTin now enables character mode with echo off and SGA enabled.
- December 2005 1.95.7
- --------------------------------------------------------------------------------
- main.c Added a command reference table to speed up the processing of
- commands slightly.
- tinexp.c The body of a by braces surrounded variable name will be
- substituted now, allowing variables as variable names.
- parse.c No longer sending message spam when using an alias
- buffer.c Fixed a long standing crash bug in the buffer cleanup routine.
- tinexp.c Now matching arguments in triggers like the old tintin did. This
- will interfere with a couple of triggers but shouldn't be too
- big a problem. %0 to %9 will capture the smallest possible
- amount of text instead of the biggest.
- telopt.c IAC EOR and GA spams are dealt with better with {debug telnet}
- enabled.
- telopt.c Dealing with packet fragmentation in the odd case an IAC EOR or
- GA code is split, not sure if it works since it's hard to test.
- October 2005 1.95.6
- --------------------------------------------------------------------------------
- chat.c Added multi threading for opening new chat connections.
- parse.c Added protection for infinite loops.
- utils.c Added hex_number translation function.
- tinexp.c Can now use \x?? where ?? is a hexadecimal number.
- *.c Changed usage of \e with \033 since \e isn't supported on all
- systems.
- misc.c #debug all log, logs debug info without displaying it.
- Makefile.in make install now copies tt++ to /usr/bin
- parse.c Can now disable verbatim mode after enabling it.
- tables.c Got rid of unneeded table size for the command, help, and
- config table.
- variable.c Added %D %M %Y options to print the day month year.
- misc.c Added parse command to parse strings.
- misc.c Fixed double variable substitution for #echo.
- August 2005 1.95.5
- --------------------------------------------------------------------------------
- chat.c Added some extra chat functionality: paste, serve, forward,
- ignore and peek.
- tinexp.c Fixed parsing of function arguments some more.
- list.c Added #list command with basic list support.
- August 2005 1.95.4
- --------------------------------------------------------------------------------
- tinexp.c Fixed some bugs in substitute that slipped in.
- tinexp.c Added skipping of chinese characters in regexp functions.
- data.c Fixed crash bug with killing classes
- function.c Fixed an issue with #return in fuctions stopping the execution
- of multiple commands.
- rl.c pressing control-c while connecting will abort the connection
- instead of exiting the program.
- chat.c Added back the chat module that was originally included with
- version 1.86. I pretty much rewrote it while at it.
- configure BIG5 configuration was giving me issues on slackware.
- Since I didn't feel like figuring out how the script works
- I changed it from --enable-big5 to --big5 and fiddled with
- the script till it seemed to work again.
- July 2005 1.95.3
- --------------------------------------------------------------------------------
- tinexp.c Now substituting functions and arguments (if needed) in a
- function's argument list.
- tinexp.c Ending a command with \ will escape the EOL (\r\n) which won't
- be appended to the end of the line. Same story for #showme.
- telopt.c Added negotiating of EOR (end of record).
- telopt.c IAC GA and EOR will now be seen as prompt markers.
- files.c Now skipping chinese characters in #read
- July 2005 1.95.2
- --------------------------------------------------------------------------------
- data.c Added option to use 'all' in #message, #ignore, and #debug to
- toggle everything at once.
- files.c Removed the #writesession command, it's obsolete with the new
- #class command.
- class.c #class write now adds #class open/close to the begin and end
- of the file.
- files.c Cleaned up a bunch of confirmation messages and made them
- gaggable.
- tab.c Variables and functions in a #tab are now substituted at
- evaluation time.
- Juny 2005 1.95.1
- --------------------------------------------------------------------------------
- files.c If the bracing level is off in the last line tintin reports
- the correct line instead of 0.
- rl.c reading the default readline init file when leaving tintin.
- Should help with a couple of shells not handling this properly.
- echo.c removed some experimental code that ended up causing double
- echoing when switching between sessions.
- split.c fixed screen switching for muds with native vt102 interfaces.
- session.c added #session {-|+|number} options to switch between sessions.
- files.c no longer showing output while using #scan to speed things up
- for huge log files.
- misc.c Added #return which used in an #if check allows bailing out of
- a semicolon seperated command string. If used in a #function
- you can also add an argument to it to set the result, as
- opposed to setting the $result variable directly.
- June 2005 1.95.0
- --------------------------------------------------------------------------------
- macro.c Added prompt handling for macro's. Still not perfect.
- scrsize.c Fixed resetting of split data when resizing the screen.
- split.c Now drawing split lines on all static regions to increase
- clarity for newbies.
- misc.c Can now use #showme {text} {row}, with a row number given
- #showme will act like #prompt.
- misc.c Can use #echo {{format} {row}} {{arguments}} as well.
- rl.c Fixed #snoop messing up in #split mode.
- parse.c Got rid of the code seperating high and low priority actions,
- no longer valid with the #gagline command.
- antisubstitute Removed antisubstitutions since there seems little reason to
- ever need them.
- rl.c Checking internal messages for prompt gags now
- May 2005 1.94.9
- --------------------------------------------------------------------------------
- files.c Added #scan {filename} which will read in a file and send it to
- the screen as if it was send by a mud. This allows one to view
- raw color logs, turn on logging and save the file in a different
- format, as well as adding gags and other text filters to make
- things more readable. I set the default logging mode to raw
- since ansi log files can now be converted to html ones.
- data.c updatenode_list was acting odd, fiddled with it till it stopped
- crashing. Not sure what the problem was.
- May 2005 1.94.8
- --------------------------------------------------------------------------------
- rl.c Fixed packet patch, and added a default patcher for split mode.
- Fixed the displaying of #alias, #action, etc.
- May 2005 1.94.7
- --------------------------------------------------------------------------------
- main.c Fixed #split mode being handled correctly when suspending a
- session.
- data.c Removed excessive color usage when displaying triggers which was
- resulting in crashes.
- rl.c No longer clearing the screen when exiting tintin++.
- table.c Added flags for commands, so far only automatically substituting
- variables and functions for commands that have the sub flag.
- May 2005 1.94.6
- --------------------------------------------------------------------------------
- rl.c Now adding all keyboard input to the scrollback buffer.
- rl.c When in #split mode with no #prompt defined tintin tries to
- mimic normal behavior, which includes placing input at the
- end of the prompt.
- prompt.c #prompt matched lines are now written to the scrollback buffer,
- to simulate the old behavior make an #action executing #gagline.
- May 2005 1.94.5
- --------------------------------------------------------------------------------
- rl.c Fixed a bug that caused prompts to be printed twice.
- debug.c Fixed possible crash from overloading the debug stack.
- variable.c Added #debug messages for #replacestring and #format.
- split.c Fixed various #split bugs when creating or switching sessions.
- buffer.c #buffer {i} will now give some info about the scrollback buffer.
- tick.c #delay now works in the startup session. Tickers are still
- disabled.
- class.c #class <class> read <file>, now only reads in stuff that belongs
- to the given class name. Hence in order for this to work you
- need #class <class> open, and #class <class> close, calls in
- the file itself for this to work.
- help.c Removed David Chan from the credit screen shown when starting
- up TinTin++. I'm sure he had the best intentions, but he spend
- two years making insignificant changes, fiddling with variables,
- adding patches written by others, before vanishing into thin air.
- April 2005 1.94.4
- --------------------------------------------------------------------------------
- tintin.h Now using strtoll instead of atoll since old platforms only
- support strtoll.
- telopt.c With #config {CONVERT META} set to ON mud output will have
- it's meta characters translated, this to aid in making color
- triggers.
- split.c Using #split 0 0 will create an input line without the split
- line. Useful for people who don't use #prompt.
- April 2005 1.94.3
- --------------------------------------------------------------------------------
- log.c Now flushing the log stream after every call so tailing a log
- file is an option.
- class.c Finished the #class command.
- split.c placed #prompt stuff in prompt.c.
- tinexp.c Added option to start a trigger with ~ in which case colors
- are included in string comparisons and substitutions.
- buffer.c Removed the #writebuffer command, must now use:
- #buffer {write} {filename}
- May 2005 1.94.2
- --------------------------------------------------------------------------------
- rl.c Internal messages are now printed to both the logfile and
- scrollback buffer.
- rl.c Fixed internal messages bumping the screen while scrolling in
- locked mode.
- rl.c Fixed a bug with displaying text that slipped in.
- buffer.c Added the option to use #buffer h/u/d/e for scrolling.
- tintin.h Removed unused macro DEFAULT_FILE_DIR.
- utils.c utime() function doesn't work correctly on cygwin, changed it's
- behavior to guarantee unique time stamps.
- buffer.c No longer writing #grep output the the scrollback buffer
- main.c Now clearing last command (often quit) when starting up tintin++
- config.c Turned #debugtelnet command into a hidden config option.
- Added a hidden config option named CONVERT META, which turns key
- presses into macro readable keyboard input.
- class.c Added basic support for classes, which is grouping for real.
- tables.c Set substitute priority to save correctly.
- May 2005 1.94.1
- --------------------------------------------------------------------------------
- log.c Added the option for a second argument to the #logline command.
- If second argument is used it will instead print the given line
- to file.
- variable.c Added %G thousandgroupingstring function to format to change
- for example 1000 into 1,000.
- May 2005 1.94.0
- --------------------------------------------------------------------------------
- rl.c mainloop now uses a threaded call for the old mainloop. This
- because the readline() function is blocking and I'm too lazy
- to code the stuff readline takes care of.
- The new mainloop tries to go at 100 loops per second.
- session.c Got rid of connect_delay for connecting sessions. Now using
- 1 timer.
- tick.c Changed #ticker to use floating point precision.
- Added delay command: #delay {seconds delay} {command}
- variable.c #format, added %L to print the argument's string length, and
- %U to print the number of micro seconds since epoch, increased
- the number of arguments from 10 to 20.
- misc.c Removed the #sleep command, never worked well and should be
- obsolete with the #delay command.
- misc.c #gagline, when called within an action it will gag the line.
- rl.c The #snoop code wasn't working, fixed it up.
- data.c Increased the buffer of show_list a little to avoid an overflow
- macro.h Changed how macros work, fixing problems like needing a \n at
- the end, needing an empty line, macros being added to the
- command history. Still can't find a way to have rl erase macros.
- Players can enter a command within a line of text using
- [[ command ]].
- Example: tell bubba (long line) [[chat hi bibbi]] (more text)
- rl.c Added the option to delay displaying and parsing possibly broken
- packets. Delay in micro seconds can be set with the PACKET PATCH
- config option. By default it's set to 0 (disabled).
- variables.c Fixed #replacestring which got messed up while I added variable
- substitution to it.
- rl.c Fixed echoing of commands in split mode.
- split.c Changes split and prompt to work more logical, people might
- have to change their scripts, new syntax:
- #split {number of top lines} {number of bottom lines}
- default equals: #split {0} {1}
- Fixed possible color bleeding in the split line, this for noobs
- who don't know how to use tintin's color codes.
- files.c /* and */ now only work when used outside braces.
- rl.c No more threading, made tintin crashy as well.
- variable.c Added %n (name) to #format, which capitalizes the first letter
- of the given string.
- buffer.c No longer resetting the buffer if the new scrollback size
- is the same as the old one.
- rl.c prompts automatically get a newline added in split mode.
- session.c Fixed problem with aliasses changing focus.
- rl.c Made #snoop output non triggerable.
- misc.c Added the $loop and $forall variables set in the #loop and
- #forall commands. Avoids dodgy &0 behavior in #functions.
- telopt.c Added dynamic allocation of buffer space for mccp and the
- normal output buffer.
- rlhist.c 1 character long commands are once again added to the command
- history.
- files.c If a bracket is missing TinTin gives a hint at what line the
- error might be.
- tinexp.c Added option to surround a variable with brackets.
- variables.c Removed restrictions on variable names.
- math.c Fixed bug with #if returning the wrong session pointer.
- log.c Added #logline command for actions to log 1 line of text
- rlhist.c If no repeat match is found an error message is printed.
- parse.c Added a check to ingore a trailing ';'.
- data.c Increased buffer size for displaying aliasses.
- config.c Changed packet patch config option from micro to milli seconds.
- files.c Changed calls to isblank() (GNU only) with isspace()
- files.c Only stripping leading spaces now, so #var bla { } will work
- once again.
- files.c I got tired of confusing readnew and readold, so I removed
- readold.
- February 2005 1.93.9
- --------------------------------------------------------------------------------
- split.c Fixed infinite loop in do_unprompt
- rl.c Added the option to call show_message() with a NULL argument
- for more generic usage.
- tintin.h Set BUFFER_SIZE to 10000 OUTPUT_SIZE to 65000
- and FILE_SIZE to 150000
- files.c Added option to #read and #write using a variable.
- buffer.c Fixed some dodgy behavior of the scroll back buffer, it should
- scroll ultra fast as well now.
- The buffer command now only prints the last screen worth of
- text, too lazy to re-code floating screen indexes atm.
- Added scroll lock to the config menu, to freeze the screen
- while scrolling.
- February 2005 1.93.8
- --------------------------------------------------------------------------------
- tick.c Took care of uninitalized tickers firing prematurely.
- session.c Added option to make a trigger on session termination.
- files.c Added a check for #read being used on a directory.
- rl.c Fixed home/end keys being bound correctly.
- split.c Allowing multiple prompt triggers to fire on the same line
- Fixed split line being 4 '-' short
- December 2004 1.93.7
- --------------------------------------------------------------------------------
- tinexp.c Now only converting ; to : for actions, not for aliasses etc.
- path.c Made END OF PATH message triggerable.
- variable.c added the do_internal_variable command, which does the same
- as do_variable, but allows to set a blank variable. Used by
- do_format and do_replacestring.
- rl.c added the show_message function which only shows messages from
- setting aliasses, variables, etc when called from the command
- line, unless debug is enabled.
- rl.c Now using the more_output buffer previously only used by the
- scrollback buffer to double check actions.
- December 2004 1.93.6
- --------------------------------------------------------------------------------
- net.c Fixed a crash bug that slipped in with hiding passwords.
- net.c Commands are now added to the buffer/log files while in split
- mode.
- highlight.c Fixed bug with variables and functions not being used.
- Finished highlight code, it no longer messes up old colors.
- October 2004 1.93.5
- --------------------------------------------------------------------------------
- files.c Added the option to comment using /* comment */ in script files.
- math.c Upgraded to do 64 bit instead of 32 bit operations.
- variables.c Added the replacestring command.
- mapper.c Added the function find_coord, which tries to find a room at the
- given coordinate, starting room being 0,0,0
- October 2004 1.93.4
- --------------------------------------------------------------------------------
- math.c Fixed a crash bug that slipped in.
- tinexp.c Set \[ to escape as { and \] to escape as }.
- main.c Now setting application keypad mode and ESC 0 prefix on startup.
- telopt.c Changed dont_oldenviron response to wont_oldenviron response,
- reported to fix the ability to login on some server types.
- September 2004 1.93.3
- --------------------------------------------------------------------------------
- log.c Fixed a typo that broke the log command, as well as adding
- newlines to plain logging.
- rlhist.c one letter commands are no longer added to the history.
- August 2004 1.93.2
- --------------------------------------------------------------------------------
- mapper.c added the redit command, for basic mapper manipulation, still
- needs a bit more work.
- telopts.c Added a telnet patch from Julia Longtin which adds the basic
- telopt negotiations to initialize a telnet session when
- connecting to port 23.
- rl.c Seeming the readline_echoing_p is reset to TRUE whenever
- something is written to the terminal, so I simply set it to
- whatever it should be several times a second now in the main
- loop.
- July 2004 1.93.1
- --------------------------------------------------------------------------------
- tintin.h added a room and exit structure for an auto mapper.
- mapper.c added a creation functions for rooms and exits.
- files.c added the #readmap function to read in a map.
- mapper.c added a routine to display an ascii map.
- mapper.c added an algorithm to calculate the shortest path between two
- rooms.
- main.c the verbatimchar is set as \\ instead of \ as default, this to
- allow escaping braces at a later date with this config option
- causing trouble.
- June 2004 1.93.0
- --------------------------------------------------------------------------------
- log.c added variable substitution to *arg.
- misc.c added variable substitution to *arg.
- parse.c changed escape character behavior, #format will need %+4s
- instead of %4s if used in an argument or action. Used to
- be possible to use \%4s but that's no good.
- tinexp.c \a \e \n \r \t are now translated to the according characters.
- (\a equals what #bell does, \r\n would equal #cr, \e is ESC)
- parse.c removed premature stripping of '\' character in the parsing
- routines. Escaped characters are dealt with when data is send
- to the mud or screen.
- April 2004 1.92.0
- --------------------------------------------------------------------------------
- misc.c removed speedwalk command, it's a config option anyways.
- March 2004 1.91.0
- --------------------------------------------------------------------------------
- parse.c made sure $variables are substituted in the parsing command,
- as well as $vars being substituted as session A passes a
- command to session B. Otherwise variables remain variable
- untill the final execution stage.
- data.c Added nesting syntax highlighting for lists.
- math.c Added support for "T" and "F" (feature was lost in rewrite)
- math.c Added the 'd' operator for a random dice roll
- config.c rewrote some basic stuff in the configuration routines,
- the original setup was a bit dodgy.
- highlight.c Added priorities to highlighting
- substitute.c Added priorities to substitutions
- split.c Added check so a prompt isn't shown for background sessions.
- variable.c Added %R and %C to #format for nr of rows and columns
- March 2004 1.90.0
- -------------------------------------------------------------------------------
- misc.c added a higher precision to the #sleep command, you can now
- enter #sleep 0.5 to sleep for half a second, precision is in
- miliseconds. Also using nanosleep now, with additional support
- to continue sleeping.
- variables.c added %t to #format, which will print the epoch time.
- added %T to #format, which will print the military time
- of the provided number as: hours:minuts
- added %d to #format, which will print the military data of the
- provided number as: day:month:year (if there's no such thing
- as a military date I hope you still know what I mean).
- rl.c set tintin to 100 loops per second, might seem too much, but
- it doesn't matter cpu wise, and it's always fun when tintin's
- triggers beat those of most other client.
- math.c added + - ! and ~ to the mathexp interpreter.
- regexp.c added color support. codes are entered as <abc> and is pretty
- much translated as : \e[a;b+30;c+40m with '8' counting as
- a skipped color code. People can write their own functions to
- make tintin display colors of their own choice.
- variables.c added %R to #format, which will print a number between 1 and
- the given number in the argument. Removed #random command.
- added %m to #format, which will do the same as #math
- regexp.c added option for end of line terminator ^ so adding ^ to the
- end of the line will make tintin return false if the regexp
- returns with an unfinished match string.
- main.c I update the credit screen, figured it would appropriate to
- put my own name on it after all this work. I turned it into
- a helpfile while at it, #help credits should show it.
- regexp.c made the substitute recursively double check variables and
- functions if they hold a variable of a different kind, useful
- for variables or functions holding color codes.
- misc.c added ignore and debug commands, debug won't do an aweful lot
- as of yet though.
- variable.c figured I should add some more color support, so added a way
- to format tintin color names, using #format %c {name}
- variable.c #format again, %h will create a tintin header line.
- variable.c fixed how variable assignment was being dealt with in triggers,
- can now change and display variables correctly on the fly.
- rlhist.c changed command repeation behavior.
- rlhist.c removed the history command, no longer needed to look up the
- index, just a working short memory.
- config.c added repeat on enter option in config.
- parse.c the command part of a line received by parse input
- has vars and functions substituted right away.
- If passing a command to another session the functions and
- variables are substituted as well, setting the values of
- the controlling session.
- math.c Added the tintoi and tincmp functions, which are enhanced
- versions of atoi and strcmp.
- net.c Added some code to stop enters being written to the scrollback
- buffer, useful for people using #cr to bust a prompt.
- rl.c Got rid of the prompt saving stuff, now using brute force,
- refresh the prompt everytime the screen is updated. This to
- work around a bug in readline that gives odd behavior with
- cursor movement.
- March 2004 1.89.0
- -------------------------------------------------------------------------------
- math.c Added a close to complete mathematical expression routine.
- Needs some work still but it works. Also allows for comparing
- strings <= >= == != if you enclose the strings in " ". It's
- quite a bit better than the old one, though it's not supporting
- T, F, and '!' since it's string based, shouldn't be too hard
- adding some better string support.
- ivars.c stripped all the stuff that is now covered by math.c or
- variables.c only leaving #ifexits. And then it occured to me
- that #if {"$variable" != "$*"} {true} {false} would
- very well replace the 'ifexits' check. So ivars.c is no more.
- data.c deletenode_list now properly keeps track of a global update
- node. Can only use one noderoot->update per program state.
- session.c cleanup_session now properly keeps track of a global update
- node. Can only use one gtd->update per program state.
- rl.c fixed up the split screen behavior, should be a stable prompt
- and correct text presentation in split mode now.
- February 2004 1.88.0
- -------------------------------------------------------------------------------
- net.c added telopt negotiations in net.c for naws, terminal type,
- and mccp (version 2)
- tintin.h added the zlib library and a session buffer for mccp
- tintin.h added a 64KB output buffer, I'll just asume that the mud
- output contains a linefeed before BUFFER_SIZE is reached. This
- should make output processing a bit smoother, and saves me
- from fiddling too much with chopped up data.
- rl.c added the tintin_printf and tintin_printf2 functions which
- format the argument list and pass the data on to tintin_puts
- or tintin_puts2
- tintin.h changed the node list struct to work with a head/tail pointer,
- and turned it into a double linked list, updated all .c files
- affected by this change.
- *.c cleaned up the code, using tabs instead of spaces and aligning
- the brackets.
- main.c switched from rand to rand48, it's seeded once upon startup
- which is sufficient.
- main.c added a global tintin session (gts) the idea is to get rid of
- most global variables.
- tintin.h added a bitvector to the session structure which will contain
- all session flags, various changes throughout the code changing
- global variables into flags.
- rl.c fixed up the cursor positioning for split mode and fixed the
- linewrap routine which was off by 1 character, resulting in
- extra lines on a perfect match.
- added a special flag for mud output for split mode, to avoid
- color loss when restoring the cursor (which also restores the
- cursor color, hence the color loss)
- tables.c new c file, which will contain some tables, the current setup
- is a bit tedious.
- tintin.h moved all header files into tintin.h cause the old setup with
- 40 headerfiles was giving me a headache (literally).
- Grouped it into typedefs, globals, constants, macros,
- structures and functions
- tintin.h changed all commands to use the COMMAND typedef, as well as
- all commands now use universal arguments and naming, this to
- make a command table.
- *.c There's always a session now, with a few checks for gts (global
- tintin session) which cannot send or receive data. Passing
- session data along with a couple of functions which should
- make background sessions less spammy.
- strhash.c Added a simple string hash routines which I'll be using for a
- scroll back buffer. It uses a bit of memory, but should save a
- lot more for big scroll back buffers.
- main.c changed tstphandler to call kill with a null pid, otherwise it
- wouldn't work when tintin was started from a script
- ivars.c removed backwards compatibility for fixedmath
- buffer.c scroll back buffer and a grep command added
- rl.c made the init_readline function actually initilize readline,
- added 4 default keybinds for the scrollback buffer.
- tintin.h added a keymap to the tintin_data structure, which will be
- used for keybinding.
- text.c got rid of the linewrapper in rl.c and added a word wrap
- routine instead.
- log.c all vt102 codes cept the linefeed are stripped for logged data,
- the lowlog thingie can still be used.
- chat.c Removed this entirely, it's a mess and there are many stand
- alone p2p chat programs available.
- *.c moved some more global data to the session and data structures
- rltick.c removed entirely
- ticks.c removed entirely
- tick.c wrote a new ticker from scratch, uses alarm(1) to sleep 1
- second, the user can now define a list of tickers, pretty much
- like aliasses, they'll trigger when the timer expires. Added
- the 'tick' and 'untick' command for manipulation.
- macro.c added 'macro' and 'unmacro' commands for keybinding, I couldn't
- figure out how to actually undo the real macro's though
- without using a messy hack, so I just skipped that till later
- for now.
- session.c Got rid of the zombi code, will try to add a better connection
- handler at a later data, but the zombi code is not the answer.
- tintin.h Changed architecture further turning the lists from individual
- lists into an array of lists. Added an array in tables.c for
- additional data.
- substitute.c Changed the default #gag char from '.' to character 255, this
- to prevent weird behavior when a dot is displayed on an empty
- line for any kind of reason.
- config.c Added a configuration menu, defaults are loaded upon startup.
- walk.c Removed, didn't really look into it deeply, but I adjusted
- path.c to allow user progged walking using a ticker.
- parse.c Added 2 action checkers, first one checks priority 0 to 4,
- after that substitutions are checked, priority 5 to 9 is
- checked after substitutions.
- parse.c do_one_line now strips colors per default before passing the
- text on to check_one_action
- action.c rewrote the %0 - %9 check_one_action regexp routine, it's
- a bit cleaner and slightly faster now.
- action.c rewrote substitute_vars, ';' is changed to : per default
- variable.c rewrote subsitute_myvariables, no longer supporting $number
- variables. ';' is stripped per default. This also easily
- allows a change so variables can contain numbers.
- variable.c #format {variable} {format} {arguments}
- This allows string formatting, numbers are not supported.
- Added a format parser for further functionality, for now %l
- will lowercase, %u will upper, and %r will reverse the
- argument given. There's a maximum of 10 arguments.
- variable.c Due to the format command, prepad, postpad, tolower, and
- toupper are no longer required, so I removed the commands.
- I realise this generates a backward compatibility issue, but
- it's easier to find the new commands without 70 old commands
- spamming the help files and command lists.
- split.c moved the split screen stuff from rl.c to this new file, and
- placed the prompt commands/routines there as well.
- January 2004 1.87.0
- ------------------------------------------------------------------------------
- After getting tired of seeing my favorite mud client being
- trashed on TMC or simply not having the required functionality
- that is expected nowadays to be worth mentioning, I figured it
- was time to see what I could do. So I downloaded the latest
- official tintin++ release v1.86b and started an evaluation.
- It didn't take long to find out the main problems. Over
- functionality, inconsistant command syntax, total chaos,
- anarchistic implementation views, all in all enough to end up
- deleting about 33% of the code, and rewriting over 50% of what
- remained. Halfways during that process I ran into Bill on the
- wintin forum and I promptly asked him permission to release an
- official tintin++ derivative. And it was agreed that I could,
- if he liked what I came up with. To make a long story short, I
- finished a beta version several weeks later and got Bill's
- permission to name it tintin++.
- The next step was getting permission for the manual, I googled
- up a notification from the authors which said the manual had
- been GPL'ed, see tintin15.cr, last issue fixed.
- August 2001 tintin15.cr
- ------------------------------------------------------------------------------
- This package was debianized by Jordi Mallach <jordi@debian.org> on
- Wed, 22 Aug 2001 03:23:36 +0200.
- It was downloaded from http://mail.newclear.net/tintin/archive.htm.
- Upstream Authors: Davin Chan <davinchan@earthlink.net>
- Robert Ellsworth <rse@newclear.net>
- See the CREDITS document for the full list of contributors.
- Copyright:
- Tintin++ was relicensed under the GNU General Public License on
- July 12th, 2001, when version 1.86 was released. The full text
- of the GNU GPL can be found in /usr/share/common-licenses/GPL on
- Debian systems.
- Additionally, the Tintin++ manual was placed under the GPL at my request
- by Robert Ellsworth, it's author. The following is the mail in which he
- granted me permission to publish it under the new license:
- > From: "Robert Ellsworth" <rellsworth@wattsup.com>
- > Subject: RE: Tintin install mess
- > To: "'Davin Chan'" <davinchan@earthlink.com>,
- > "'Jordi Mallach'" <jordi@sindominio.net>
- > Date: Tue, 28 Aug 2001 09:53:50 -0400
- > In-Reply-To: <3B8AF5A5.557E35E0@earthlink.com>
- > X-Mailer: Microsoft Outlook, Build 10.0.2627
- >
- > Well,
- >
- > RE #1) Well, being that I am the author, then yes, I have no problem
- > with the changing of the manual to GPL. :-)
|