[comp.sources.bugs] bsd version of arc

zeeff@b-tech.UUCP (Jon Zeeff) (04/06/88)

Subject: bsd version of arc
Newsgroups: comp.sources.d

After running lint on this thing, I find it amazing that it works for 
anyone.  Does anyone have diffs for a lint free version or a version 
with the bugs removed?  (yes, some nasty ones did turn up) 

--Jon

Moral of the story: "lint *.c" isn't hard to do.  Always use it on 
any code you work on.  
-- 
Jon Zeeff           		Branch Technology,
uunet!umix!b-tech!zeeff  	zeeff%b-tech.uucp@umix.cc.umich.edu

eichin@athena.mit.edu (Mark W. Eichin) (04/06/88)

In article <4395@b-tech.UUCP> zeeff@b-tech.UUCP (Jon Zeeff) writes:
>Subject: bsd version of arc
>Newsgroups: comp.sources.d
>
>After running lint on this thing, I find it amazing that it works for 
>anyone.  Does anyone have diffs for a lint free version or a version 
>with the bugs removed?  (yes, some nasty ones did turn up) 
>
>--Jon
>
>Moral of the story: "lint *.c" isn't hard to do.  Always use it on 
>any code you work on.  
>-- 
>Jon Zeeff           		Branch Technology,
>uunet!umix!b-tech!zeeff  	zeeff%b-tech.uucp@umix.cc.umich.edu


I built it here (vax 4.3bsd) and tried un-arc'ing something I had been
sent, and had it barf with "Stack Overflow" and other errors. It would
also produce total garbage for some of the files.

On following up another announcement, and finally being able to get
through to IUVAX.CS.INDIANA.EDU, I ftp'd their version. It is
definitely newer, although most of the work is adding a `squash'
module. The diffs that DIDN'T deal with squash mode follow:

diff -r ARC/arclzw.c IUarc/arclzw.c
109c109
< #if MSODS
---
> #if MSDOS
565c565,566
<     local = (pred + foll) | 0x0800;    /* create the hash key */
---
>     local = ((pred + foll) | 0x0800) & 0xffff;    /* create the hash key */
>     /*local = (pred + foll) | 0x0800;    /* create the hash key */
574c575,576
<     return ((pred+foll)*15073)&0xFFF;  /* faster hash */
---
>     return (((pred+foll)&0xffff)*15073)&0xFFF;  /* faster hash */
>     /*return ((pred+foll)*15073)&0xFFF;  /* faster hash */
diff -r ARC/arcm.h IUarc/arcm.h
25c25
< #define ARCVER 8   /*                   archive header version code   */
---
> #define ARCVER 9   /*                   archive header version code   */

This version still hangs in certain parts of the archive I was
attacking, but now only gets stuck on one file. Someone who wants to
seriously hunt this down can ask me, but effort would be better spent
in finding a more recent version of ARC to post!

I don't know who at indiana it was, but the scrap of posting I still
have follows:

>   Someone ported the actual PC Arc program to Unix and posted it last year.
>We have a copy of the source here. You can ftp it from pub/arc/* at
>iuvax.cs.indiana.edu.

				Mark Eichin
			<eichin@athena.mit.edu>
		SIPB Member & Project Athena ``Watchmaker'' 

creps@silver.bacs.indiana.edu (Steve Creps) (04/06/88)

In article <4385@bloom-beacon.MIT.EDU> eichin@athena.mit.edu (Mark W. Eichin) writes:
>In article <4395@b-tech.UUCP> zeeff@b-tech.UUCP (Jon Zeeff) writes:
[ deleted ]

>On following up another announcement, and finally being able to get
>through to IUVAX.CS.INDIANA.EDU, I ftp'd their version. It is
>definitely newer, although most of the work is adding a `squash'
>module. The diffs that DIDN'T deal with squash mode follow:
>
[ deleted ]

>I don't know who at indiana it was, but the scrap of posting I still
>have follows:
>
>>   Someone ported the actual PC Arc program to Unix and posted it last year.
>>We have a copy of the source here. You can ftp it from pub/arc/* at
>>iuvax.cs.indiana.edu.

   I wrote that. I guess I should add that the version we have is just as
it was taken from the net and unshared. No changes were made at this site.
I don't remember who posted it to the net, but it's possible the original
shar files are somewhere at an archive site. Probably would be a good idea
to find who posted it to the net in the first place.

-	-	-	-	-	-	-	-	-	-
Steve Creps on an Ultrix machine at Indiana University.
	creps@silver.bacs.indiana.edu (192.12.206.2)
	{pur-ee ihnp4 rutgers pyramid}!iuvax!silver!creps
	creps@iubacs.bitnet (forwarded)

ip@mill.me.uucp (Bevis Ip) (04/07/88)

In article <4395@b-tech.UUCP> zeeff@b-tech.UUCP (Jon Zeeff) writes:
>Subject: bsd version of arc
>Newsgroups: comp.sources.d
>
>After running lint on this thing, I find it amazing that it works for 
>anyone.  Does anyone have diffs for a lint free version or a version 
>with the bugs removed?  (yes, some nasty ones did turn up) 

You'e right, the code is quite dirty.  I have BSD version of arc running on
DEC (BSD4.3), SUN (SUN3.4) and MIPS (UMIPS-BSD) machines; they all works
fine for extracting files, but only the one running on DEC works for
creating/updating archives.  (BTW, I tried all posted versions, from the
first working BSD version to the latest squashing patch.) If any one has a
fully working version running on either SUN or MIPS, I will appreciate it if
one could send me a copy.

>Moral of the story: "lint *.c" isn't hard to do.  Always use it on 
>any code you work on.  

I think the morale for people in this case is to get it to work first, and
then worry about lint's complains about other people's code.  It is
sometimes easier and more enjoyable to rewrite stuff from scratch than to do
2nd or 3rd hand hacking, like here.

/bevis
-- 
Bevis Ip        Univ. of Toronto, Dept. of Mechanical Engineering
UUCP  :  {ihnp4,allegra,decwrl,decvax}!utcsri!me!ip
         {pyramid,uunet}!utai!me!ip
ARPA  :  ip%me.toronto.edu@csnet-relay.arpa
BitNet:  ip@me.UTORONTO                 CSNet :  ip@me.toronto.edu

gnu@hoptoad.uucp (John Gilmore) (04/08/88)

I have a version of "arc" with numerous bugs removed.  It seems to
create, extract, list, and test files in all archives I have run across
(except damaged archives, which it complains about now rather than core
dumping on).  Arc files it has created have been moved to msdos without
trouble, and vice verse.  It's still really slow and stupid, but I
didn't fix design problems, just bugs.

Many months ago, I sent my version to somebody at umix who claimed to
be willing to maintain a master "Unix ARC" source.  I no longer have a
record of who that was, and they don't seem to have distributed it or
answered any of these net queries.

I am *not* willing to send out copies to everybody who asks.  I am *not*
willing to act as a clearing house for arc bugfixes.  I *am* willing to send
my version to a person who *is* willing to do the above two things.

In other words, I don't mind sharing my bug fixes, I just have no
interest being stuck maintaining the damn thing, or having to handle a
lot of email about it.  How about a serious volunteer responding by
posting in comp.sources.d?  (Then everybody can email their versions to
this person, who had better be willing to merge a lot of bugfixes from
a lot of wierd versions of arc.)
-- 
{pyramid,pacbell,amdahl,sun,ihnp4}!hoptoad!gnu			  gnu@toad.com
  I forsee a day when there are two kinds of C compilers: standard ones and 
  useful ones ... just like Pascal and Fortran.  Are we making progress yet?
	-- ASC:GUTHERY%slb-test.csnet