HISTORY 2008-05-22 Fix 15merge to use Encode and deal with UTF-8 taglines and signatures correctly. 2003-06-18 Oops, 25asktag always asked for a tag regardless of $cfg{'asktag'} Thanks to Jasper Spaans for pointing that out. 2002-06-04 Various bugfixes and cleanups. Added a working 22reformat instead of just the template which has been around for a while. 2002-06-01 Add Noodles' patch from a while back to add an option to skip back to asking about a sig from the asktag plugin. A few miscellaneous cleanups. Wrote a HOWTO which is at: http://the.earth.li/~huggie/cgi-bin/moin/HtagHowto Made @M*@ and so on work to insert things /without/ worrying about their length. This means they won't be padded and so is primarily useful for the extra plugins and not taglines and allows you to put text right up against them without worrying about extra spaces. It does also work with taglines so @*@ inserts the tag but with /no/ formatting. (Request from Alex Walker) Added @NOTAG@ to stop any tagline being added. Macros still get expanded as do non-tag plugins. (Request from Alex Walker) Added plugin to check for existing unquoted sigsep and allow user to quit. (Request from Alex Walker) 2001-06-04 s/.pl$// in plugins and chmod 644 plugins/* since they don't really make sense separately from htag. Created TROUBLESHOOTING file. Move all the files around a bit to get the docs out from under the rest and to show that there are some. Move other docs out of subdirectories and into the docs/ dir. Move the sample config stuff into one place too. 2001-05-27 Change version number in HtagPlugin.pm to one that perl can check automagically and add a version to my use HtagPlugin line. 2001-05-25 Fixed up the cases where either the configfile has an error (always set $override{'nicedie'}) or the plugins do htagdie. htagdie has now disappeared in favour of nicedie so I've bumped the versioning in HtagPlugin.pm and nicedie has moved to HtagPlugin.pm 2001-05-09 Changed s/|$// to s/\|$// in sample.htrc Doh! 2001-04-30 - 0.0.18 Yes, I should definitely have released 0.0.18 by now. Ho hum. Added check of patterns used in changeheaders so if someone puts one that would kill us in we tell them nicely. Rolled tarball - probably won't be uploaded til 2nd May. 2001-04-16 Oops, shouldn't I have released 0.0.18 by now? Checked status of 0.0.18 and cleaned it up a little. Made multiple config file docs reflect the changes. Note that changes to the multiple config stuff mean that there is no more default directory for these scripts and the full path must be given. Also if you relied on the blank filename implied just $1 before you'll need to use $1 now although this probably means you need to add the path beforehand too. Setting $cfg{'tagline_comment_char'} to for instance '#' makes simple.pl ignore lines that start with that character. Improve error reporting from eval'd scripts some more. Support for multiple tagfiles using the tagfiles variable means (with the much saner multiple config support) that it's a lot easier to pick tagline files per recipient. I might even have to start using the multiconfig stuff now :) Support for fortune(1) as wanted by "The Big Nose" and Lim Swee Tat. It does have a probability value (adjust so that you get the right mix of fortunes and taglines) and an arguments parameter so you can point it at your own fortune files. It doesn't do anything clever with reformatting them and they don't fit easily in small sigs. It also doesn't parse the .dat files it just runs fortune(1) which is fairly icky really but hey. 2001-02-02 Feedback (oh my God other people use this? :)) led to a few changes: Change the cfgfile interface stuff so we eval just one file (~/.htrc or the file specified on the commandline with -c) then eval another that changes this default file in the changeheader stuff. Remove all the paranoia checks about symlinks for multiple config cases because they didn't really help and just caused config problems really. 2001-01-22 Check for UID/GID 0 before running. 2000-11-28 - 0.0.17 Put 01changeconf.pl into htag.pl instead. Tried to think about the idea of having dependencies instead of just a plugin dir or indeed a plugin list instead but gave up simply because I can't be arsed. I want to run all the plugins. This is the idea. Anyway, patches/ideas accepted. 2000-11-27 Fixed a strange bug due to a regexp in merge that meant that @B in a tagline wasn't expanding correctly sometimes. 2000-11-13 Fixed some of the eval code so it reports fatal errors. Made merge.pl remove spaces if there were only spaces between it and the end of the line. Retrigger the "-- " => "--" bug by using a quick fix and gave in and used a negative look behind assertion in my regexp. Requires perl 5.005 or higher I think. 2000-11-09 Upgraded to perl 5.6.0 and um didn't realise and ran htag.pl It seems to work with 5.6.0 :) 2000-10-27 Moved substtag.pl so it was called *after* the tag had been chosen. Oops. I should have more tags with substable bits in, yes. 2000-10-11 - 0.0.16 Fixed merge so that it works if a sig doesn't have any tagline bits. And so that multiple elements of the same plugin will work (e.g. having two separate @Uxx@ lines works now). Fixed Multiple Config stuff to work with more than one header cumulatively. Wrote README.Multiple_Config (referenced below but not written til now!) Moved 05* to 14* so that in the case where the tag doesn't fit and we have to go back we only go back one. 2000-10-08 - 0.0.16-pre-going-to-release-soon-honest (Eurostar :)) Implemented a "read and eval" parser for the plugins if they are in perl. This may well break things. Let me know if it does. Moved plugin_util to HtagPlugin. (tab completion works better now so I'm less annoyed so I'll be more productive. Or summat :)) 2000-09-24 - 0.0.16-pre Changed htag.pl and all plugins not to call srand because since perl 5.004 this is done automatically and uses a better random seed than I was giving it. Added documentation (in INSTALL) about how to create your local perl module dir and get all the plugins to use it. Created plugins/01changeconf (thus moved 01catsig to 02catsig). It allows multiple configs based on headers finally! See README.Multiple_Config 2000-08-15 - 0.0.15 Changed HtagPlugin to only require three arguments (Message file, Cfg file and VERSION) which all need to come from htag.pl Created plugin_util/HISTORY. Changed protocol of HtagPlugin to 0.0.2 Made new plugin system so that other plugins can substitute in easily. See marknlard.pl for an example. Added some new plugins (sesame, date, uptime) using this system. 2000-07-29 - 0.0.14 Changed HtagPlugin to return 254 when htagdie is called. Made htag.pl ask for keypress if exited with 254 but NOT if exited with 255 (i.e. user requested exit). Improved behaviour when command line options failed. Now we set $cfg{'nicedie'} from the beginning and nicedie everywhere then read in the config files which may turn it off. Added the "Mark 'n Lard" plugin. Added protocol version number and checking for same. 2000-06-28 - 0.0.13 Changed HtagPlugin to cope with "Lastname, Firstname" 2000-06-18 - 0.0.12 Fixed the subst* plugins to use the To: address not the From: address. (Doh.) Put more common code into the HtagPlugin module. 2000-06-06 - 0.0.11 Early in the morning. Released the new one properly. ... Converted to an init style plugins-invoked-in-order-of-number type thing to allow more flexibility. 2000-04-05 - 0.0.8 Allowed plugins to return the number to go back to... Infinite loops are protected against. exiting with 255 means quit htag.pl 2000-03-31 - 0.0.7 Made it like init. (Runs plugins in numerical order randomly picks ones with same order). 2000-03-24 - 0.0.6 Backends for - choosing tags. 2000-02-07 - 0.0.5 Fixed '-- ' thing. 2000-01-03 - 0.0.4 Fixed length "feature" of 0.0.3 Will now only use tags that fit the sigs' @[0-9]+@ bits. 1999-12-19 Released to the unsuspecting world... Started 6/10/1999 Realised that in 23 lines (of perl) you can actually do what huggietag 0.0.1 did in 39 (of C) and that implementing this shouldn't be *too* tricky. 3 hours to an almost working one. Scary. Ancient history: Switched to linux didn't find a good tagline program so tried to write one in C. Got quite far with it but decided C isn't a good language for string handling.