diff -u 870527-ibm-pc/README 861030-darmon/README --- 870527-ibm-pc/README Wed May 27 00:12:39 1987 +++ 861030-darmon/README Sat Feb 11 20:45:04 1995 @@ -1,20 +1,23 @@ -Here are versions of uuencode and uudecode that will work on an IBM -PC. There is a version for Turbo Pascal and one for Microsoft C. -Porting them into other machines, languages or dialects should not -pose a large problem. +Relay-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site hoptoad.uucp +From: darmon@polaris.UUCP (Pierre Darmon) +Newsgroups: net.sources +Subject: Modified Turbo Pascal uudecode/encode. More user-friendly. +Date: 30 Oct 86 01:12:40 GMT +Date-Received: +Reply-To: darmon@polaris.UUCP (Pierre Darmon) +Organization: IBM Research, Yorktown Heights, N.Y. -Sorry about the lack of documentation, but the programs are easy to -use, so you should not have a problem. I don't know why a UNIX -site would not have these in the first place, but at least your -manual should tell you how to use them. If you are not using UNIX -at all, you have my sympathy. +The following are the Turbo Pascal source files for uudecode and uuencode, +modified from the net posting to display the remaining bytes to be processed, +instead of filling up the screen with periods. It also displays the percentage +left. See my previous posting to net.micro,net.micro.pc and net.sources for +details. -The Pascal programs' author is unknown. The C programs were -provided by Don Kneller. +Enjoy! -Tom Reingold -Rockefeller University -New York City -UUCP: {seismo | harvard | ihnp4}!cmcl2!rna!rocky2!reintom -BITNET: REINTOM@ROCKVAX -ARPANET: reintom@rockefeller.arpa + +-- + +Pierre Darmon, IBM Thomas J. Watson Research Center. +.....seismo!philabs!polaris!darmon. +darmon.yktvmz.ibm@csnet-relay Only in 861030-darmon: diffs diff -u 870527-ibm-pc/uudecode.pas 861030-darmon/uudecode.pas --- 870527-ibm-pc/uudecode.pas Wed May 27 00:12:39 1987 +++ 861030-darmon/uudecode.pas Sat Feb 11 20:44:32 1995 @@ -6,9 +6,11 @@ TYPE string80 = string[80]; VAR infile: text; + fi : file of byte; outfile: file of byte; lineNum: integer; line: string80; + size,remaining :real; procedure Abort(message: string80); @@ -23,8 +25,11 @@ begin {NextLine} LineNum := succ(LineNum); - write('.'); - readln(infile, s) + {write('.');} + readln(infile, s); + remaining:=remaining-length(s)-2; {-2 is for CR/LF} + write('bytes remaining: ',remaining:7:0,' (', + remaining/size*100.0:3:0,'%)',chr(13)); end; {NextLine} procedure Init; @@ -43,7 +48,11 @@ reset(infile); {$i+} if IOresult > 0 then abort (concat('Can''t open ', infilename)); - writeln ('Decoding ', infilename) + writeln ('Decoding ', infilename); + assign(fi,infilename); reset(fi); + size:=FileSize(fi); close(fi); + if size < 0 then size:=size+65536.0; + remaining:=size; end; {GetInFile} procedure GetOutFile; @@ -158,7 +167,7 @@ then abort('Illegal character in line.'); { write(line[lineindex]:2);} if line[lineindex] = '`' then nextch := ' ' - else nextch := line[lineIndex] + else nextch := line[lineIndex] end; {nextch} procedure DecodeByte; diff -u 870527-ibm-pc/uuencode.pas 861030-darmon/uuencode.pas --- 870527-ibm-pc/uuencode.pas Wed May 27 00:12:40 1987 +++ 861030-darmon/uuencode.pas Sat Feb 11 20:44:51 1995 @@ -18,6 +18,7 @@ line: array [0..59] of char; hunk: array [0..2] of byte; chars: array [0..3] of byte; + size,remaining :real; { procedure debug; @@ -70,6 +71,9 @@ reset (infile); {$i+} if IOResult > 0 then abort (concat ('Can''t open file ', infilename)); + size:=FileSize(infile); + if size < 0 then size:=size+65536.0; + remaining:=size; write('Uuencoding file ', infilename); i := pos('.', infilename); @@ -131,7 +135,9 @@ end; {writeout} begin {FlushLine} - write ('.'); + {write ('.');} + write('bytes remaining: ',remaining:7:0,' (', + remaining/size*100.0:3:0,'%)',chr(13)); writeout(chr(bytesInLine + offset)); for i := 0 to pred(lineLength) do writeout(line[i]); @@ -167,6 +173,7 @@ begin {encode1}; if numbytes = bytesperhunk then flushhunk; read (infile, hunk[numbytes]); + remaining:=remaining-1; numbytes := succ(numbytes) end; {encode1} @@ -190,5 +197,6 @@ begin {uuencode} init; while not eof (infile) do encode1; - terminate + terminate; + writeln; end. {uuencode}