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