]> granicus.if.org Git - fortune-mod/blob - fortune-mod/ChangeLog
Update the changelog and bump ver to 1.99.5.
[fortune-mod] / fortune-mod / ChangeLog
1 (Note: this file has been re-arranged to be in reverse chronological
2 order, which is The Right Thing for ChangeLogs - DLC)
3
4 March 25, 2017 (fortune-mod-1.99.5)
5
6         Add a new cmake-based configuratio/build/install system.
7
8         Converted the source files to UTF-8.
9
10         Added automated tests.
11
12         Removed trailing whitespace.
13
14         Reformatted long (> 80 chars) lines.
15
16         Fixed many typos.
17
18         Fixed some compiler warnings.
19
20         Added a build-time option to remove the “-o” (= “offensive”) flag.
21
22         Incorporated some downstream patches from Linux distributions.
23
24
25 March 05, 2004 (fortune-mod-1.99.1)
26
27         Most of the changes have occurred at some point in time in the last
28         5 years.
29
30         A high number of spelling, punctuation, formatting and grammar
31         fixes.
32
33         Internationalisation support.
34
35         New -c option to see which file a fortune came from.
36
37 August 29, 1997
38
39   Incorporated a couple of minor changes made in the (old) Debian
40   fortune-mod package, including the addition of an extra data file
41   called 'cookie'.  Renamed some documentation files, and included some
42   install information for non-Linux users.  Added a "-v" option to
43   report the program version.
44
45   I intend to submit this distribution to SunSITE RSN.
46
47     -- Dennis L. Clark <dbugger@progsoc.uts.edu.au>
48
49 May, 1997
50
51   This release fixes many of the portability problems with the
52   fortune-mod program released by Amy Lewis in October, 1995.  The
53   previous version had many Linux-isms in it, which left it unworkable
54   on any other platform.  This version replaces most of these with more
55   standard calls, making it more likely to work under other platforms.
56   The Makefiles have been modified so that GNU's gcc and make are no
57   longer required: any standard make and ANSI-compatible C compiler
58   should work.  Sorry, pre-ANSI compilers are not supported (c'mon, this
59   is the 90's, darn it!)
60
61   This version has been tested to work on SunOS 4.1.x as well as Linux.
62   All changes made to the sources were as platform-independant as
63   possible.  Therefore, no "#ifdef LINUX" or "#ifdef SUNOS4" directives
64   appear in the code.  An effect of this is that a number of 'implicit
65   declaration' warnings are emitted by gcc under SunOS 4.1.x, but this a
66   problem with SunOS's standard headers, not with the program or the
67   compiler.  The benefit of this approach is that it eases the work of
68   expanding the port to include other platforms. Bug reports and fixes
69   for other platforms are most welcome!
70
71   A few "standard" C function calls were replaced with more standard
72   counterparts at various points.  Generally, when there was a choice
73   between a BSD version of a function and a POSIX version, the POSIX
74   version was favoured (even though fortune originated on BSD).  An
75   exception to this was the regex functions: either POSIX or BSD
76   versions can be used, with selection made via the top-level Makefile.
77
78   Fortune and strfile also compiles on Solaris 2.5, but a discrepency
79   between the declaration and implementation of 'struct dirent' on the
80   test platform caused fortune to execute incorrectly there.  It is not
81   certain whether this is a bug in the header file, the C library, or
82   the test platform.
83
84   While the making of this release was not meant to become a bug
85   search-and-destroy mission, some bugs were inadvertently discovered
86   and fixed. including the known bug of using -a with a file that occurs
87   in both the offensive and inoffensive directories.  Fixing this
88   particular bug required a way to be able to separately identify two
89   fortune files with the same name, with one in the inoffensive
90   directory, the other one in the offensive directory.  Now, such a name
91   will be taken to be the inoffensive file by default.  However, you can
92   now append '-o' to a fortune name, and the '-o' will be removed and
93   the offensive directory will be searched.  Thus you can say (assuming
94   you use the distributed datfiles):
95
96         fortune 80% politics politics-o
97
98   Which has an 80% change of giving an "inoffensive" political fortune,
99   and a 20% change of giving an "offensive" political one.  Note that
100   this makes fortune-mod backwards-compatible with BSD fortune, but only
101   for users, not fortune database maintainers.
102
103   Of course, this solution only passes the buck: with the above example
104   again, if you have a 'politics-o' file in your inoffensive directory,
105   you are back to square one.  OTOH, seeing that '-o' originally was
106   meant for offensive fortunes, using it for inoffensive ones is simply
107   asking for trouble.
108
109   Bug fixed: Fortune's definition of a fortune length (for -s and -l)
110   was inconsistent.  Unordered fortunes counted the 2 delimiting
111   characters (as hinted in the man page), but sorted or randomized
112   fortunes did not.  Now the delimiting characters are _NEVER_ counted,
113   so you will always get the length limit you expect.
114
115   Another bug fix: -l and -s can now work together with -m.  Previously
116   -l and -s were ignored when -m was in effect.  The new behaviour helps
117   me count how many long or short fortunes there are in a file.
118
119   Ansify has been removed from the package, as well as some filter
120   scripts from NetBSD that no longer appear useful.  Randstr has been
121   kept, but has not been improved in any way.  It at least has a man
122   page: maybe somebody will find it useful.
123
124   Some of the documentation (including the man pages) has been improved
125   and updated, and some files have been renamed so that the package
126   looks less Linux-specific.
127
128     -- Dennis L. Clark <dbugger@progsoc.uts.edu.au>
129
130 Late October 1995
131   Ansify has been abandoned.  I'm going to distribute this working version
132   of fortune, and then see how difficult it would be to add termcap/terminfo
133   enhancements to fortune itself--I don't anticipate serious problems, but
134   I'd rather go ahead and get this on the net.
135
136   A last-minute change was made to the way that percentages are displayed
137   with -f; it is now in the format nnn.nn%.  The reason for this is that
138   with the multiplication of small files, fortune -af displayed a large
139   number of "0%"s--no worse than the old version, but not helpful.
140
141   The fortunes database was finally cleaned up, and this version is now
142   being distributed (at least, I hope it is).  I don't consider the current
143   division of fortunes among files absolutely canonical; some are certainly
144   in the wrong places.  But things are *better*.
145
146 Amy A. Lewis    alewis@email.unc.edu
147
148 Mid-October '95
149   Another utility, ansify, now compiles; it has not been tested at all, so
150   it may not work even slightly.
151
152   Ansify is a rather stupid program, all things considered, but the work on
153   it does raise an interesting possibility for an enhanced fortune.  At
154   present, the fortune databases contain x^Hy sequences for underline and
155   special characters (and this can be extended to include bold, = x^Hx).
156   Ansify is stupid because it doesn't use the proper tools, ie termcap or
157   terminfo (hmmm ... since it works on files, that may not be so stupid);
158   it appears that if that can be done, then a termcap/terminfo enhanced
159   fortune could be produced, which would recognize the existence of ^H in
160   a string and attempt to display using appropriate control sequences.
161   This sort of modification would be of greater interest to casual users,
162   I think, than even the bug fixes, and since it would not force changes
163   in the storage of fortunes, it is eminently portable.  Consider this a
164   'todo' announcement.
165
166 Added (early October 95):
167   A new executable, rot, which is a rot13 filter (a caesar cipher). Most
168   probably have caesar, but on the other hand, if you compile this mess
169   as root, caesar probably isn't in the path.
170
171   A new parameter to fortune, -n, which permits you to specify the length
172   at which to break between long (-l) and short (-s) fortunes.
173
174   fortune -f now shows probabilities.
175
176   A bug: fortune -a nn% filename filename ... now fails without an error
177   message, if the filename named following the percentage exists in both
178   the inoffensive and the offensive directories (that is, if you have two
179   files containing definitions, one called fortunes/definitions and one
180   called fortunes/off/definitions, and call fortune as: fortune -a 10%
181   definitions religion politics ..., then fortune simply fails).  This
182   appears to be an artifact of the changes that were made in storage/
183   naming of offensive fortunes.  It only happens with the combination of
184   a percentage with -a and inoffensive/offensive files that share a name.
185   Temporary workaround: rename one or the other of the files (*sigh*  I
186   don't like that as a solution).
187
188   The man pages have been updated.  The old man pages are also available,
189   but are not installed unless you do it yourself (the new ones are).  The
190   new man pages have the extension .man; the old ones have numeric
191   extensions.
192
193   A place has been created for fortune files containing HTML tags (the
194   reason I started playing with this mess was because I wanted to be
195   able to format fortunes nicely for the web without having to run an
196   enormously complex script to figure out from formatting how best to
197   display things, a particular problem since the formatting isn't
198   consistent).  Tagged fortunes don't exist yet, and I'm seriously
199   considering creating a slightly different fortune binary that would
200   output the necessary headers and trailers (reducing the CGI script
201   to complete triviality) (-f isn't really needed for a webfortune).
202
203 Todo: I'm thinking of adding a -x to unstr, to rot13 the output.  This
204 would have the effect of putting all the necessary tools in one package.
205 It further breaks compatibility with BSD tools (which has *mostly* been
206 maintained, merely enhanced slightly, although the change in how
207 offensive files are distinguished from inoffensive might be regarded as
208 breaking compatibility) by adding yet another parameter to unstr, which
209 didn't have any, before.  So I haven't decided, yet.
210
211 Todo: KOI8 encoded fortunes?  They couldn't be rotated without a great
212 deal of trouble, of course.
213
214 More minor fixes:
215
216   The way that fortune -m prints its output has been slightly changed.  It
217   used to print the delimiter first, then, if this were the first fortune
218   from a particular file, it printed the name of the file in parentheses.
219   It now prints the first fortune without an initial delimiter; if the
220   fortune is the first from a particular file, it then prints
221   (filename), newline, delimiter, newline *to stderr*.  Redirect stderr to
222   stdout to get something *similar to* (but not the same as) the old
223   behavior.  The new behavior, if stderr is redirected to stdout, and
224   both are then redirected to a file, produces fictitious entries, one
225   per file in which a match was found.  However, whether stderr is
226   redirected or not, the new format produces files that strfile can
227   parse without choking (the old format, since it placed the filename
228   on the same line as the delimiter character, effectively forced editing
229   of the file in order to make it usable by strfile, unless the option of
230   concatenating two fortunes with an ugly "% (filename)" line separating
231   them was considered acceptable output).  Under the new display format,
232   if stderr is redirected into the file, you end up with filenames marking
233   the separation between files (as before), but they are now valid text
234   strings (which should probably, therefore, be deleted).
235
236   In other words, if you don't care what files the original text came from,
237   and want a new file containing (let us say), quotes from Mark Twain,
238   you might do:
239   fortune -am '-- Mark Twain' >twain
240   The files accessed would march down the screen; the fortunes would be
241   stored in parsable format into the file twain.  If, however, you planned
242   to edit (perhaps to remove the quotes from the original file, you might
243   then wish to redirect stderr to stdout.  Using bash:
244   fortune -am '-- Mark Twain' &>twain
245     or
246   fortune -am '-- Mark Twain' >twain 2>&1
247
248   [The above is now in the man page, more or less]
249
250 Late September, 1995
251   Too many changes to mention, really.  Look at the source code for
252   comments on individual files.  LINUX.DIF has been removed.
253
254   It is worth noting that strfile was completely broken as distributed,
255   and fortune had code to make it report a different file list than the
256   one it used to retrieve fortunes.  There's some rather strong language
257   on the subject in strfile.c; if it offends you, tough.
258
259   Bugs were fixed, and some enhancements were added.  Unstr, in
260   particular, has had its command line considerably enhanced.  Strfile
261   now *really does* sort, instead of merely setting the 'sorted' flag.
262   Ditto for randomizing.
263
264   Noteworthy: the way to distinguish between offensive and non-offensive
265   files has changed for fortune.  A second directory (which may be a
266   subdirectory of the main fortune directory; the program doesn't
267   add files recursively down a directory tree) has been added to
268   pathnames.h.  Offensive files should be placed there.  There is no
269   longer any need to add the -o suffix to file names, and the problems
270   with finding files (especially offensive ones) seem to have
271   disappeared in the process.
272
273   Currently, I'm working on breaking the fortune files themselves into
274   smaller, more manageable pieces, checking spelling, punctuation, and
275   grammar, and trying to reduce redundancy.  The eventual goal, after
276   the files are cleaned up, is another set of files carrying HTML tags,
277   which would then massively simplify a CGI script that calls fortune.
278
279   New Makefiles.
280
281   A 'randstr' (I want to call it 'lottery,' but I won't) utility, which
282   amounts to a poor woman's stripped-down fortune, to illustrate some
283   other possible uses of strfile-type random-access strings files.
284
285   Amy A. Lewis   alewis@email.unc.edu
286