ViewVC Help
View File | Revision Log | Show Annotations | Download File
/cvs/Convert-UUlib/doc/HISTORY
Revision: 1.2
Committed: Sun Oct 13 13:51:00 2002 UTC (21 years, 7 months ago) by root
Branch: MAIN
CVS Tags: rel-1_11, rel-1_10, rel-1_12, rel-1_34, rel-1_33, rel-1_32, rel-1_31, rel-1_71, rel-0_7, rel-1_8, rel-1_3, rel-1_5, rel-1_4, rel-1_7, rel-1_6, rel-1_06, rel-1_04, rel-1_05, rel-1_08, rel-1_09, rel-1_62, HEAD
Changes since 1.1: +20 -2 lines
Log Message:
*** empty log message ***

File Contents

# Content
1 #
2 # $Id: HISTORY,v 1.32 2002/04/02 10:06:35 fp Exp $
3 #
4
5 PROGRAM HISTORY
6 ---------------
7
8 (remember that all _dates_ are dd.mm.yyyy)
9
10 0.1 (15.06.1994)
11 -----
12 First release. Took less than a week of coding. Most features should work now.
13 All files I encountered can be decoded properly. Some special cases, however,
14 are still untested. This version was updated two or three times without
15 upgrading the version number because that were just minor changes.
16
17 0.2 (23.06.1994)
18 -----
19 DOS support! After getting some requests for a DOS version, many portions of
20 the code have been completely rewritten so that the file data is not loaded
21 into memory. Instead, just an index is saved. Added +e option to select file
22 extensions. Added +i option to disable user questioning.
23 Some special cases to evaluate the part no. of the subject line added
24 Automatic uncompress / gunzip (need to have them installed)
25 Tar file handling - extract files right out of a tar archive. This is done
26 from uudeview itself, so you won't need an external tar.
27
28 0.3 (30.06.1994)
29 -----
30 Getting smarter every day. After I found some postings with spelling mistakes
31 in the subject line (namely "something.zip" instead of "something.arj"), I
32 began to program "Smart Part Merging System" (SPMS (R)). It detects that the
33 parts of "something.zip" are just the missing parts of "something.arj" and
34 merges both files. This feature will still need a lot of maintenance, since
35 there are a lot of special cases.
36 Added a ton of features. Now you can list the files or enter commands to do
37 anything with them (you can enter "xv $") to watch the file.
38 Installed a signal handler for SIGINT (Ctrl-C). If the program was interrupted
39 by the user, it left LOTS of temporary files in /usr/tmp. They will now be
40 cleaned.
41 Again, the user interface was changed. I did that in 0.2, so why not again
42 in 0.3. I hope you'll agree it's a bit better now.
43 The program now checks if gunzip has failed (it tests if the resulting file
44 has less than 2 bytes).
45 Fixed a bug with filenames that contained spaces at the end.
46 Linked files in tar archives are now ignored.
47 In 0.2 each file was decoded before the user was prompted what to do. This
48 was quite slow on some machines. Now the files are only decoded on request.
49
50 0.3.42
51 --------
52 I'm quite lazy with documenting all the changes I made to the source code.
53 I hope I will keep online this time. To do this, I have invented the patch-
54 level number. Since I have made a lot of changes to the original 0.3 release,
55 I start with patchlevel 42.
56
57 0.3.43
58 --------
59 - gets suspicious if it finds multiple begins/ends within the same post
60 and opens up a new file record
61 - Treats "BEGIN -- CUT HERE" line exceptionally, because it frequently looks
62 like valid uuencoded data and fooled the program. The 4-line-safety barrier
63 didn't catch because the real data followed immediately.
64
65 0.3.44 (25.01.1995)
66 --------
67 - added lots of patches to allow for Mime Base64 decoding ... mostly because
68 I want to decode this Lion King MPEG from alt.binaries.multimedia
69
70 0.3.45 (29.01.1995)
71 --------
72 - added XX decoding scheme. Was really simple after having to change every-
73 thing for the above MIME stuff anyway. Just another decoding table. Hope
74 it works.
75
76 0.3.46 (01.02.1995)
77 --------
78 - included groundworks for desperate mode. I don't know -- should I leave
79 the '-d' command line option out?
80
81 0.3.47 (03.02.1995)
82 --------
83 - written my own more function. previously, I just called system(), but this
84 was (a) unstable and (b) didn't work in QuickWin
85 - included '(i)' action to show file info; either part 0, or part 1 up to the
86 begin line
87 - desperate mode finished. Moved the original '-d' (decompress) option to
88 '-x' (didn't use it anyway, and needs major rewriting) and replaced it
89 with new desperate option
90
91 0.3.48 (04.02.1995)
92 --------
93 - wrote an case-insensitive string compare function. Have migrated the
94 extension detection to case-insensitivity
95 - added some code to detect some common file suffixes (jpg, gif etc.)
96 added SPMS check: parts of files will not be merged if they have different
97 but correct suffixes (if one of the files' suffix is not recognized, it
98 might just be spelled wrong, so this doesn't prevent merging). This should
99 stop SMPS from merging together complete junk.
100 - generalized Unix Makefile. Now I only have to change a version number in
101 one place (well in three places if I consider DOS&Windows with other make
102 files).
103 - added multiple passes to SMPS. In first pass, only "exact fits" are merged,
104 in second pass only files with minimal differences, in third pass, everything
105 - stripping some boring headers in file (i)nfo
106 - now it should also accept files with less than 4 lines of data
107 - finally found the 'bug' that declared some final lines as invalid -- the
108 encoder has stripped unnecessary chars. Added more checks ...
109
110 0.4 (06.02.1995)
111 -----
112 - After getting no bugreports for a few weeks (either nobody uses the program
113 or it does work after all), I renamed 0.3.48 to 0.4. There is so much dif-
114 ferent from the original 0.3 that I simply need to indicate these changes
115 to users. And besides, it's my birthday :-)
116 - Deleted "ALPHA" indication from the windows version. Now fully integrated.
117 - moved MIME check in front of UUdata check. Strongest semantics first.
118
119 0.4.1 (08.02.1995)
120 -------
121 - Added additional check for a part number on the subject line:
122 "test.gif 3 of 4" was detected to be 4, now done correctly.
123
124 0.4.2 (10.02.1995)
125 -------
126 - bugfixed uudeview.c:IsKnownExtension() which would core dump on some
127 systems due to NULL read access. Thanks to J. Wilkinson,
128 <jcw@stuey.eng.pko.dec.com> for pointing out the problem.
129 This isn't fatal for DOS, and also shouldn't be fatal in Windows.
130
131 0.4.3 (14.02.1995)
132 -------
133 - some people couldn't compile the Unix version because I used two
134 non-standard string functions, strrstr() and strdup(). Thought they
135 were defined everywhere. Now I've written them on my own.
136 - moved _FP_strnicmp() to uuutil.c
137
138 0.4.4 (24.02.1995)
139 -------
140 - trimmed comments in header files because some compilers warned about
141 "nested comments"
142 - fixed annoying bug in CheckGlobalList() that caused infinite loops
143 and may also have caused core dumps if more than 98 parts were missing
144 from a posting
145 - added another clause to the detection of a part number on the subject
146 line after getting a file by the name of abc-1019.gif, where a part num-
147 ber of 1019 was detected
148
149 0.4.5 (02.03.1995)
150 -------
151 - Added workaround for Netscape, which completely messes up encoded data
152 on some setups. It replaces &,<,> by their html equivalents and occasio-
153 nally inserts some junk HREF links. Now whenever an invalid line is found,
154 it is NetscapeCollapse()d, in the hope it's decodeable afterwards.
155
156 0.4.6 (11.04.1995)
157 -------
158 - wow, I just see that it's been a long time since the last bugfix. I guess
159 it is indeed getting better :-)
160 - UUdeview would ignore files with double-spacing (one line of data followed
161 by an empty line). Now, all empty lines are ignored. I just hope this
162 doesn't add problems elsewhere. Thanks to Gary for this one.
163 - a slight bug in the Base64 detection made the program fail to pick up the
164 destination filename when quoted
165
166 0.4.7 (07.05.1995)
167 -------
168 - the mime detection was looking for the "Content-Type" message. Now, this
169 tag is accepted case-insensitive.
170 - if no trailing lines were at the end of a Base64-encoded file, some data
171 was written twice, resulting in trailing garbage data.
172
173 0.4.8 (22.05.1995)
174 -------
175 - all string compares are now case insensitive, especially because I
176 found mime headers in all kinds of variations
177 - small bug fixed that caused uudeview to ignore some files where the
178 first part didn't have encoded data
179 - included checking if files exist, prompting the user whether it shall
180 be overwritten. suggested and coded by Kevin B. York
181 - new: the encoding engine! incorprorated into the launcher in Windows,
182 for Dos/Unix, it's in the external 'uuenview' program.
183
184 0.4.9 (07.06.1995)
185 -------
186 - allows an 'end' after the encoded data with only an _empty_ line
187 inbetween. Previously, I expected a valid encoded line with zero
188 data, meaning that the single character on that line is '`' (UUE)
189 or '+' (XXE)
190
191 0.4.10 (14.06.1995)
192 --------
193 - funny bug fixed: if the decoder found a valid UUencoded line in a
194 supposed MIME-data file, it decoded the single line and exited. In
195 my case, a MIME header triggered this.
196 - fixed bug with more than one MIME-encoded file in a single message.
197 - serious bug fixed when overwriting an existing file: I had forgot-
198 ten O_TRUNC when opening the file, causing some undefined behavior.
199
200 0.4.11 (16.06.1995)
201 --------
202 - renamed all variables 'this' and 'new', as some C++ compilers don't
203 like using these keywords as names
204 - renamed the variable 'inpfile' in uudeview.c:more(); I had a type
205 of the same name (ec@matufia.sp.TRW.COM)
206
207 0.4.12 ()
208 --------
209 - more smartness (although I now can't remember where, probably everywhere)
210 - fixed problem with multiple MIME attachments in a single mail
211 - can now decode news articles from lynx, which were messed up similar
212 to Netscape news files, only worse.
213 - one appearance of strdup() in uuio.c slipped through. Now replaced
214 by _FP_strdup()
215 - Instead of having to choose to rename or overwrite existing files each
216 time, you can now enter 'a' once to overwrite them all.
217 - The Ultrix C compiler ignored hex escape sequences, which were used in
218 uuenview.c for CRLF. Now they're in octal.
219 - not so picky if the last line is longer than expected. some encoders
220 (more than one!) failed to let the last line end where it was supposed
221 to end.
222 - complete rewrite of uuenview. It can now email and post files direcly.
223 For the purpose of posting, a mini inews program, written by Steven Grady,
224 <grady@postgres.berkeley.edu>, is included in the distribution
225 - finally: manual pages! And make install works as well as make install.man!
226 Thanks to all the people who have been bothering me for months :)
227 - uudeview and uuenview can now behave similar to uudecode and uuencode
228 if called like that (ln -s uudeview uudecode). Of course, you don't
229 loose any smartness. My ultimate goal is to replace these outdated tools.
230 - attempt to enforce stronger subject-line semantics. uuenview prints the
231 part numbers in brackets (partno/numparts) and the file name in hard
232 brackets [ filename.tar.gz ], and this is what the decoder looks for first.
233
234 0.4.13 (20.10.1995)
235 --------
236 - after sending out so many 'beta' versions of 0.4.12 and being asked
237 whether there's a new one available, I've decided to skip an official
238 0.4.12.
239 - Scan speed greatly improved. And if you're sure you only have one article
240 per file, you can use the undocumented "-f" option for even more speed.
241 But then everything becomes quite unsafe, as incomplete files are only
242 detected when decoding.
243 - don't ignore RETries
244 - reworked most documentation, and rearranged the rest. All packages now
245 only include the documentation the reader really needs
246 - Win version includes a new version of the Launcher, compiled with the
247 new encoding routines, and also remembering its screen position and size
248 - Oops, the Netscape repair code was partially broken and needed some repair
249 itself.
250 - xxdecoding was broken because of over-tolerant uudecoding
251 - uudecoding was broken because of over-tolerant uudecoding :(
252
253 0.4.15 (20.01.1996)
254 --------
255 - Implemented my own version of fgets() that allows to transparently read
256 lines terminated either with LF (Unix), CRLF (DOS) or CR (Mac). Sadly,
257 it's slower than the original.
258 - in previous versions, I have very much relaxed the checking for uudecoded
259 lines (valid_data()). Now I only allow the less strong code (meaning,
260 allow the data look more weird, more off the specs) if I'm sure it actually
261 _is_ uuencoded data. This should work in all cases because it was usually
262 only the last line with was "erroneous"
263 - included option '-b' to let part numbers in [] take precedence over ()
264 this only affects the kind of brackets uudeview looks to find a part
265 number _first_
266 - fixed problems with multiple MIME attachments
267 - got rid of the 'Ignore Replies' switch. It caused lots of confusion and
268 didn't really help anything.
269 - included option '-f' for fast scanning. Only works if each input file
270 contains at most one article. Many sanity checks cannot be performed
271 because much less data is gathered, thus many invalid files may get
272 processed.
273 - added e(x)tract command; but (d)ecode stays default.
274
275 0.4.16 (21.01.1996)
276 --------
277 - a tiny typo, which was introduced for debugging purposes but not removed,
278 broke 0.4.15. This was especially problematic for the Windows version.
279
280 0.4.17 (09.02.1996)
281 --------
282 - once again a stupid 16 bit problem introduced in 0.4.15. In uunconc.c:
283 uunconc(), the variable pppos, used to remember the file position, was
284 declared as int. Because of this, on 16 bit systems, it looped over and
285 over, but the file pointer never reached maxpos :-(
286 This patchlevel was only released as uudv[dw]04h but not as Unix version
287 because 32 or 64 bit systems weren't affected.
288
289 0.4.18 (not publicly released)
290 --------
291 - this is an intermediate beta test version. With all the changes going
292 on, I expect everything to settle into a 0.5 release sooner or later.
293 - got rid of some bugs
294 - Base64-encoded lines can now have arbitrary length (not limited to
295 multiples of four)
296 - support for BinHex decoding added. No encoder yet.
297 - complete re-layout of the code. All the encoding/decoding stuff has
298 been moved into a seperate, system-independent library, while the
299 enveloping standalone programs uuencode and uudecode are just front-
300 ends to this library.
301 - another front-end has been added, uutcl, which makes the library
302 functions available to Tcl/Tk programs
303 - A Tcl/Tk script, xdeview, uses these functions and provides a graphical
304 frontend
305 - support for decompressing and tar files has been removed. They didn't
306 work reliably, and aren't the job of a decoder anyway.
307 - BinHex and Base64 lines may have space characters at the end of the
308 line
309
310 0.4.19 (not publicly released)
311 --------
312 - More changes everywhere. Fixed another problem with Base64 files.
313 - Improvements everywhere :)
314 - Added progress meter to the decoder
315
316 0.5.0 (07.06.1996)
317 -------
318 - Well, thought I have to release the stuff sooner or later.
319 - Fed the code into CVS for better revision control.
320
321 0.5.1 (10.06.1996)
322 -------
323 - Fixed problem with multiple tiny Base64 files in a single message.
324
325 0.5.2 (15.06.1996)
326 -------
327 - Cleaned up some code; now using size_t parameters for fread() and
328 fwrite() and such.
329 - Fixed problem with short BinHex files.
330 - Use the initial and trailing colon `:' of BinHex files as
331 `begin' and `end' markers.
332 - Only encode to message/partial embedded messages if we really
333 have more than one part; otherwise encode directly to toplevel
334 MIME body.
335
336 0.5.3 (23.06.1996)
337 -------
338 - Complete rewrite of the scanning routines, which have been moved
339 to uuscan.c and grown into the largest chunks of code.
340 - Mime files are properly treated with a pretty complete Mime par-
341 ser. Outside of Mime messages, the scanner falls back to the old
342 behaviour.
343 - Offers to `decode' plain text (and quoted-printable text) files
344 with -t option.
345 - Intermediate preview release.
346
347 0.5.4 (21.07.1996)
348 -------
349 - Rewrote encoding functions. The system-dependent stuff has moved
350 to the outside of the library.
351 - Minor changes not affecting the frontend.
352
353 0.5.5 (21.08.1996)
354 -------
355 - Bugfixes:
356 - Sometimes, the file pointer wasn't properly rewound to the beginning
357 of the headers after bumping into them.
358 - The Binhex RLE decompressor produced garbage with repetition counts
359 greater than 127 (which were expanded into negative integers)
360 - Stripping the last CRLF of a plain-text message was fatal if the
361 piece was really an unhandled message/multipart part.
362
363 0.5.6 (28.08.1996)
364 -------
365 - The Mime-Id buffer in uuencode.c:UUE_PrepPartial() was too small,
366 causing it to be partially overwritten
367 - Added code to read part number and file name from UUEnview-Style
368 headers. Especially important for filename detection with pure
369 Base64. I consider this an ugly hack, but users call for it.
370
371 0.5.7 (04.09.1996)
372 -------
373 - Added "attach" option to uuenview: read a msg from stdin and attach
374 one or more files using proper MIME multipart/mixed style.
375 - Fixed configure script: we might need $x_includes for <tk.h>
376 - Fixed rules for "make install"
377
378 0.5.8 (13.09.1996)
379 -------
380 - Fixed output filename when encoding dotfiles
381 - Fixed uudecode compatibilty mode (would crash when reading stdin)
382 - Fixed bug with long header lines (was actually a bug in _FP_strncpy)
383 - Fixed bug when mailing directly from uuenview. The recipient address
384 length must be added when composing the command.
385 - Added configure options --enable-sendmail and --enable-inews
386
387 0.5.9 (29.09.1996)
388 -------
389 - Fixed percentage display for >20Meg files on 32bit systems, where
390 100*fsize becomes > MAXINT ...
391 - Fixed problem with "--- cut here ---" lines that were misinterpreted
392 as MIME boundaries.
393 - A user tried to decode a file with an early truncated MIME message
394 and another message later with the same boundary. Consequently, all
395 data inbetween was ignored. Added check for a Content-Type with the
396 same boundary when scanning a subpart.
397 - Allow to specify more dumbness on UUDeview's command line to ignore
398 subjects as well as part numbers. Fixed a problem with dumb mode as
399 well.
400
401 0.5.10 (01.10.1996)
402 --------
403 - Plugged memory leak in uucheck.c:PreProcessPart()
404
405 0.5.11 (03.10.1996)
406 --------
407 - Added workaround for broken uuencoded files sent from MS Exchange.
408
409 0.5.12 (23.12.1996)
410 --------
411 - Fixed bug with aborted decoding runs that the tempfile was deleted,
412 but UUFILE_TMPFILE was still set.
413 - Make uudeview return a more or less sensible return value: 0 if all
414 files were decoded successfully, 99 for miscellaneous errors, 2 if
415 all files failed to decode, or 3 if some files were decoded okay
416 and others failed.
417 - Added -n option to uudeview to not print progress bars.
418 - You can now set global options for UUDeview in the UUDEVIEW environ-
419 ment variable. Options set there may be overrridden on the command
420 line.
421 - Some tweaking to make some troublesome input files (for example with
422 interleaved blank lines) decode.
423 - Fixed bug that caused erroneously decoded data when UUencoded data
424 looked like Base64 (because of the overlapping alphabet)
425
426 0.5.13 (09.01.1997)
427 --------
428 - Fixed bug in uuscan.c.
429 - Fixed another bug in uuscan.c which happened when a filename
430 on the Content-Type line happened to contain a header keyword.
431 - Fixed infinite loop when trying to descramble Netscape data;
432 in one place we were looking for <a href=, but we would only
433 be unscrambling this if a double-quote was following.
434
435 0.5.14 (30.04.1997)
436 --------
437 - Fixed problem with the uuencode compatibility of uuenview.
438 - Do not throw away plain text or quoted-printable parts which
439 have explicit filenames.
440 - Fish out another one of those stupid "--- this is the end ---"
441 lines that looked like uuencoding.
442
443 0.5.15 (08.06.2001)
444 --------
445 - Fixed problem with quoted-printable MIME messages, whose decoding
446 included their header.
447 - Added handling for AOL folder files which resemble a MIME multipart
448 message without a header -- they start off with a boundary line.
449 - Fixed a buffer overrun problem by adjusting output line size
450 - Always "decode" MIME bodies which have a filename set in their
451 Content-Disposition field
452 - Fixed an end-of-line problem with MIME bodies
453 - Hopefully fix some Base64 false detections by ignoring seemingly
454 Base64-encoded lines that are shorter than 40 characters
455 - Added -a option to uudeview to auto-rename a file if the target file
456 exists (i.e. foo.gif would become foo.gif.1).
457 - Make xdeview compile and run with Tcl&Tk > 8.0
458 - Do not use "dangerous" gets in minews, replace by fgets
459 - If the file looks like MIME, be more strict when scanning "text/*"
460 parts for encoded data.
461 - Add +o option to never overwrite files (useful in non-interactive
462 mode)
463 - Add -c option to autoclear input files from which anything was decoded.
464 Use with care - UUDeview does not care about anything else in that file.
465 - Add -z option for improved MIME compliance on MIME messages.
466 - Improved encoding detection, it should now be less sensitive to data
467 that looks both like uu and Base 64.
468 - Add -r (Reply-To:) and -f (From:) options to uuenview
469 - Support encoding as quoted-printable
470 - Support "encoding" as plain text
471 - Add -t and -q options to uuenview for that
472 - Make the encoding to be used depend on the last -ubxtq option, so that
473 you can send plain text and binary attachments on the same command line.
474 - Make uuenview read the $UUENVIEW command line option
475 - Tag attachments as "text/plain" if plain text or quoted printable is
476 used and no other mime type is appropriate.
477 - Recognize a boundary when scanning a file in "freestyle" mode. This is
478 similar to the AOL handling above.
479
480 0.5.16 (26.08.2001)
481 --------
482 - fix handling of "x-uue" encoded MIME attachments
483 - bug fix for file renaming
484
485 0.5.17 (06.03.2002)
486 --------
487 - fix handling of quoted parameters
488 - some support for yEnc encoding
489
490 0.5.18 (02.04.2002)
491 --------
492 - fix for yEnc files in UUInfoFile
493 - patch by Matthew Mueller:
494 - add CRC generation and checks for yEnc
495 - accept yEnc files where the tab character is not escaped
496 - improved error checking for yEnc files
497