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