prc@erbe.se (Robert Claeson) (08/16/90)
I have had a few problems to make compress 4.0 compile properly on a number of systems without some tweaks in the Makefile. Furthermore, many System V unix'es uses file systems with long file names. I have felt it unneccesary to have compress complain when the file to be compressed has a name that is longer than 12 characters unless it really is run on a system that uses a file system with 14 character filenames. A more generic fix would be to have compress inquire (in some way) the number of characters a filename can have from the file system, since many different file systems can be in use on a system at the same time. Anyway, here is the patch. It shouldn't break anything that isn't broken. *** Makefile.old Thu Aug 16 13:19:35 1990 --- Makefile Thu Aug 16 11:24:55 1990 *************** *** 1,19 **** CC=cc COMFLAGS=-O BIN=/usr/bin MAN=/usr/man/man1 #define to "l" if manuals go on /usr/man/manl L=1 all : compress atob btoa ! compress : compress.c USERMEM ! $(CC) $(COMFLAGS) -DUSERMEM=`cat USERMEM` -o compress compress.c ! # USERMEM may have to be set by hand. It should contain the amount of ! # available user memory in bytes. See the README file for more info. ! USERMEM: ! sh usermem > USERMEM atob: atob.c $(CC) $(COMFLAGS) -o atob atob.c --- 1,17 ---- CC=cc COMFLAGS=-O BIN=/usr/bin MAN=/usr/man/man1 #define to "l" if manuals go on /usr/man/manl L=1 all : compress atob btoa ! # add "-DSHORT_FILENAMES" to the command line below if S51K file system is ! # in use. ! compress : compress.c ! $(CC) $(COMFLAGS) -DBITS=16 -o compress compress.c atob: atob.c $(CC) $(COMFLAGS) -o atob atob.c *** compress.c.old Thu Aug 16 13:19:55 1990 --- compress.c Thu Aug 16 11:22:51 1990 *************** *** 590,596 **** /* Generate output filename */ strcpy(ofname, *fileptr); ! #ifndef BSD4_2 /* Short filenames */ if ((cp=rindex(ofname,'/')) != NULL) cp++; else cp = ofname; if (strlen(cp) > 12) { --- 590,596 ---- /* Generate output filename */ strcpy(ofname, *fileptr); ! #ifdef SHORT_FILENAMES /* Short filenames */ if ((cp=rindex(ofname,'/')) != NULL) cp++; else cp = ofname; if (strlen(cp) > 12) { *************** *** 597,603 **** fprintf(stderr,"%s: filename too long to tack on .Z\n",cp); continue; } ! #endif /* BSD4_2 Long filenames allowed */ strcat(ofname, ".Z"); } /* Check for overwrite of existing file */ --- 597,603 ---- fprintf(stderr,"%s: filename too long to tack on .Z\n",cp); continue; } ! #endif /* SHORT_FILENAMES Long filenames allowed */ strcat(ofname, ".Z"); } /* Check for overwrite of existing file */ -- Robert Claeson |Reasonable mailers: rclaeson@erbe.se ERBE DATA AB | Dumb mailers: rclaeson%erbe.se@sunet.se | Perverse mailers: rclaeson%erbe.se@encore.com These opinions reflect my personal views and not those of my employer (ask him).