home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 October / usenetsourcesnewsgroupsinfomagicoctober1994disk2.iso / misc / volume30 / freeze / patch04 next >
Text File  |  1992-06-20  |  9KB  |  350 lines

  1. Newsgroups: comp.sources.misc
  2. From: leo@ipmce.su (Leonid A. Broukhis)
  3. Subject:  v30i070:  freeze - Freeze/melt compression program v.2.3, Patch04
  4. Message-ID: <1992Jun20.162747.278@sparky.imd.sterling.com>
  5. X-Md4-Signature: 9d328f962fc8f72e741303d831cfcb8f
  6. Date: Sat, 20 Jun 1992 16:27:47 GMT
  7. Approved: kent@sparky.imd.sterling.com
  8.  
  9. Submitted-by: leo@ipmce.su (Leonid A. Broukhis)
  10. Posting-number: Volume 30, Issue 70
  11. Archive-name: freeze/patch04
  12. Environment: ISC, Xenix, SunOS, MS-DOS
  13. Patch-To: freeze: Volume 25, Issue 12-13
  14.  
  15. This is a little patch, minor MS-DOS bug fix, HP-UX handling 
  16. (longnames w/o BSD), "greedy" mode slightly changed.
  17.  
  18. --------
  19. *** distribution/encode.c    Wed Feb 26 14:39:46 1992
  20. --- encode.c    Tue May 12 15:10:56 1992
  21. ***************
  22. *** 17,22 ****
  23. --- 17,23 ----
  24.   {
  25.       register us_t i, len, r, s;
  26.       register short c;
  27. +     int greedy_threshold = CHAIN_THRESHOLD / (3 * greedy + 3);
  28.       putchar(MAGIC1);
  29.       putchar(MAGIC2_2);
  30.   
  31. ***************
  32. *** 64,70 ****
  33.                   fprintf(stderr, "'%s'\n",
  34.                       pr_char(text_buf[r]));
  35.   #endif /* DEBUG */
  36. !         } else if (greedy) {
  37.   /* GREEDY parsing (compression rate 1.5% worse, but 40% faster) */
  38.   
  39.               EncodeLength((us_t) (match_length - THRESHOLD));
  40. --- 65,71 ----
  41.                   fprintf(stderr, "'%s'\n",
  42.                       pr_char(text_buf[r]));
  43.   #endif /* DEBUG */
  44. !         } else if (match_length >= greedy_threshold) {
  45.   /* GREEDY parsing (compression rate 1.5% worse, but 40% faster) */
  46.   
  47.               EncodeLength((us_t) (match_length - THRESHOLD));
  48. ***************
  49. *** 159,166 ****
  50.       if(quiet != 1) {
  51.   #ifdef GATHER_STAT
  52.       fprintf(stderr, "Average number of steps: ");
  53. !     prratio(stderr, node_steps, node_matches);
  54. !     fprintf(stderr, "\n");
  55.   #endif
  56.   #ifdef DEBUG
  57.       fprintf( stderr,
  58. --- 160,167 ----
  59.       if(quiet != 1) {
  60.   #ifdef GATHER_STAT
  61.       fprintf(stderr, "Average number of steps: ");
  62. !     fprintf(stderr, "%d.%02d\n", (int) (node_steps / node_matches),
  63. !             (int)((node_steps * 100 / node_matches) % 100));
  64.   #endif
  65.   #ifdef DEBUG
  66.       fprintf( stderr,
  67. *** distribution/freeze.c    Tue May 12 15:44:25 1992
  68. --- freeze.c    Tue May 12 16:08:11 1992
  69. ***************
  70. *** 35,40 ****
  71. --- 35,43 ----
  72.    * a la ZIP (Jean-Loup Gailly). Max. hash bits reduced to 16.
  73.    * Version 2.3.2: Adaptation to TOS 1.04 (fifi@hiss.han.de), UTIMES
  74.    * handling (jik@athena.mit.edu).
  75. +  * Version 2.3.3: More accurate adaptation for XENIX 286.
  76. +  * Version 2.3.4: Minor bug fixes, HP-UX (longnames w/o BSD) handling,
  77. +  * greedy_threshold added.
  78.    */
  79.   
  80.   static char ident[] = "@(#) freeze.c 2.3.%d %s leo@s514.ipmce.su\n";
  81. ***************
  82. *** 71,83 ****
  83.         force = 0;        /* "Force" flag */
  84.   
  85.   char ofname [MAXNAMLEN];
  86. ! struct stat statbuf;    /* Used by 'main' and 'copystat' routines */
  87.   
  88.   char inbuf[BUFSIZ * 4], outbuf[BUFSIZ * 4];
  89.   
  90.   #ifdef DOS
  91.      char *last_sep();    /* last slash, backslash, or colon */
  92. !    char tail[2];        /* 2nd and 3rd chars of file extension */
  93.   # ifdef TEXT_DEFAULT
  94.       short image = O_TEXT;
  95.   # else
  96. --- 74,86 ----
  97.         force = 0;        /* "Force" flag */
  98.   
  99.   char ofname [MAXNAMLEN];
  100. ! static struct stat statbuf;    /* Used by 'main' and 'copystat' routines */
  101.   
  102.   char inbuf[BUFSIZ * 4], outbuf[BUFSIZ * 4];
  103.   
  104.   #ifdef DOS
  105.      char *last_sep();    /* last slash, backslash, or colon */
  106. !    char tail[3];        /* 2nd and 3rd chars of file extension */
  107.   # ifdef TEXT_DEFAULT
  108.       short image = O_TEXT;
  109.   # else
  110. ***************
  111. *** 370,375 ****
  112. --- 373,379 ----
  113.               /* cp now points to file extension */
  114.               tail[0] = cp[1];        /* save two chars */
  115.               tail[1] = cp[2];
  116. +             tail[2] = '\0';
  117.               *(++cp) = '\0';
  118.               (void) strcat(tempname, "XF");
  119.               }
  120. ***************
  121. *** 458,464 ****
  122.   
  123.           /* Generate output filename */
  124.           (void) strcpy(ofname, *fileptr);
  125. ! #ifndef BSD     /* Short filenames */
  126.           if ((cp = last_sep(ofname)) != NULL) cp++;
  127.           else cp = ofname;
  128.   # ifdef DOS
  129. --- 462,469 ----
  130.   
  131.           /* Generate output filename */
  132.           (void) strcpy(ofname, *fileptr);
  133. ! #ifndef LONGNAMES
  134.           if ((cp = last_sep(ofname)) != NULL) cp++;
  135.           else cp = ofname;
  136.   # ifdef DOS
  137. ***************
  138. *** 472,478 ****
  139.               continue;
  140.           }
  141.   # endif /* DOS */
  142. ! #endif  /* BSD               Long filenames allowed */
  143.                                
  144.   #ifdef DOS
  145.           /* There is no difference between FOOBAR and FOOBAR. names */
  146. --- 477,483 ----
  147.               continue;
  148.           }
  149.   # endif /* DOS */
  150. ! #endif  /* LONGNAMES */
  151.                                
  152.   #ifdef DOS
  153.           /* There is no difference between FOOBAR and FOOBAR. names */
  154. *** distribution/freeze.h    Tue May 12 15:44:25 1992
  155. --- freeze.h    Tue May 12 15:18:42 1992
  156. ***************
  157. *** 173,178 ****
  158. --- 173,179 ----
  159.   #ifdef BSD
  160.   #define strchr index
  161.   #define strrchr rindex
  162. + #define LONGNAMES
  163.   #endif
  164.   
  165.   extern char *strchr(), *strrchr();
  166. *** distribution/lz.c    Tue May 12 15:44:25 1992
  167. --- lz.c    Tue May 26 18:27:48 1992
  168. ***************
  169. *** 106,118 ****
  170.   
  171.               pattern = text_buf + p;
  172.   
  173. -             MATCHING;
  174. -         } while NOT_YET;
  175.   #ifdef GATHER_STAT
  176.           node_steps++;
  177.   #endif
  178.   
  179.           for (m = match_length;
  180.               ++m < F2 && key[m] == pattern[m]; );
  181. --- 106,118 ----
  182.   
  183.               pattern = text_buf + p;
  184.   
  185.   #ifdef GATHER_STAT
  186.           node_steps++;
  187.   #endif
  188. +             MATCHING;
  189. +         } while NOT_YET;
  190.   
  191.           for (m = match_length;
  192.               ++m < F2 && key[m] == pattern[m]; );
  193. *** distribution/lz.h    Tue May 12 15:44:25 1992
  194. --- lz.h    Tue May 12 15:10:24 1992
  195. ***************
  196. *** 143,154 ****
  197.   
  198.   #else
  199.   
  200. ! /* Hope this function will be intrinsic (Microsoft C).
  201. !    Ideally this memcmp should be right-to-left, but this works
  202. !    fast enough.
  203.   */
  204. ! #define MATCHING m = memcmp(key, pattern, match_length + 1)
  205. ! #define NOT_YET (m != 0)
  206.   
  207.   #endif
  208.   
  209. --- 143,152 ----
  210.   
  211.   #else
  212.   
  213. ! /* Hope that memcmp will be intrinsic (Microsoft C).
  214.   */
  215. ! #define MATCHING
  216. ! #define NOT_YET (key[match_length] != pattern[match_length] || memcmp(key, pattern, match_length))
  217.   
  218.   #endif
  219.   
  220. ***************
  221. *** 158,164 ****
  222.   /* Simple inline replacement for get_next_match; they match
  223.   literally except return --> goto quote(leave)l. No obfuscations !! */
  224.   
  225. ! #ifdef __STDC__
  226.   #define LEAVE(num) leave##num
  227.   #else
  228.   #define quote(x)x
  229. --- 156,162 ----
  230.   /* Simple inline replacement for get_next_match; they match
  231.   literally except return --> goto quote(leave)l. No obfuscations !! */
  232.   
  233. ! #if defined(__STDC__) || defined (__TURBOC__)
  234.   #define LEAVE(num) leave##num
  235.   #else
  236.   #define quote(x)x
  237. *** distribution/makefile    Tue May 12 15:44:26 1992
  238. --- makefile    Thu May 21 12:58:30 1992
  239. ***************
  240. *** 3,9 ****
  241.   default:
  242.       @echo ''
  243.       @echo 'Please indicate the system to make Freeze for.'
  244. !     @echo 'Possible choices are: bsd, sysv, x286, sun4,'
  245.       @echo 'generic.'
  246.       @echo ''
  247.   
  248. --- 3,9 ----
  249.   default:
  250.       @echo ''
  251.       @echo 'Please indicate the system to make Freeze for.'
  252. !     @echo 'Possible choices are: bsd, sysv, x286, sun4, hpux,'
  253.       @echo 'generic.'
  254.       @echo ''
  255.   
  256. ***************
  257. *** 81,87 ****
  258.   install:        $(DEST)/$(PROGRAM) $(DEST)/statist $(MANDEST)/freeze.$(SEC) $(MANDEST)/statist.$(SEC)
  259.   
  260.   patch:;         rm -f patch.out
  261. !         -for i in ../distribution/* ; do \
  262.           (diff -c $$i `basename $$i` >> patch.out); \
  263.           done
  264.   
  265. --- 81,87 ----
  266.   install:        $(DEST)/$(PROGRAM) $(DEST)/statist $(MANDEST)/freeze.$(SEC) $(MANDEST)/statist.$(SEC)
  267.   
  268.   patch:;         rm -f patch.out
  269. !         -for i in distribution/* ; do \
  270.           (diff -c $$i `basename $$i` >> patch.out); \
  271.           done
  272.   
  273. ***************
  274. *** 111,124 ****
  275.   
  276.   bsd:
  277.           make prog CFLAGS="-O -DBSD -DUTIMES -DBITS=16\
  278. !         -DFAST -DSIGTYPE=void"
  279.   
  280.   sysv:
  281.           make prog CFLAGS="-O -DBITS=16 -DFAST -DSIGTYPE=void"\
  282. !         LIBS="-lc_s"
  283.   
  284.   x286:
  285. !         make prog CC=cc CFLAGS="-Ox -Mc2 -DBITS=16 -DFAST\
  286.           -DSIGTYPE=int"
  287.   
  288.   x286install:
  289. --- 111,128 ----
  290.   
  291.   bsd:
  292.           make prog CFLAGS="-O -DBSD -DUTIMES -DBITS=16\
  293. !         -DFAST -DSIGTYPE=void" CC=$(CC)
  294.   
  295. + hpux:
  296. +         make prog CFLAGS="-O -DLONGNAMES -DBITS=16\
  297. +         -DFAST -DSIGTYPE=void" CC=$(CC)
  298.   sysv:
  299.           make prog CFLAGS="-O -DBITS=16 -DFAST -DSIGTYPE=void"\
  300. !         LIBS="-lc_s" CC=$(CC)
  301.   
  302.   x286:
  303. !         make prog CC=cc CFLAGS="-Ox -Ml2 -DBITS=16 -DFAST\
  304.           -DSIGTYPE=int"
  305.   
  306.   x286install:
  307. ***************
  308. *** 125,135 ****
  309.           make install MANDEST=/usr/man/man.C SEC=C
  310.   
  311.   generic:
  312. !         make prog CFLAGS="-O -DBITS=16 -DFAST -DSIGTYPE=int"
  313.   
  314.   sun4:
  315.           make prog CC=cc CFLAGS="-O4 -DBSD -DSUN4 -DSIGTYPE=void\
  316.           -DUTIMES -DBITS=16 -DFAST"
  317.   
  318.   ###
  319.   bitio.o: freeze.h compat.h bitio.h
  320. --- 129,140 ----
  321.           make install MANDEST=/usr/man/man.C SEC=C
  322.   
  323.   generic:
  324. !         make prog CFLAGS="-O -DBITS=16 -DFAST -DSIGTYPE=int" CC=$(CC)
  325.   
  326.   sun4:
  327.           make prog CC=cc CFLAGS="-O4 -DBSD -DSUN4 -DSIGTYPE=void\
  328.           -DUTIMES -DBITS=16 -DFAST"
  329.   
  330.   ###
  331.   bitio.o: freeze.h compat.h bitio.h
  332. *** distribution/patchlevel.h    Tue May 12 15:44:26 1992
  333. --- patchlevel.h    Wed Jun  3 20:55:00 1992
  334. ***************
  335. *** 1,2 ****
  336. ! #define PATCHLEVEL 3
  337. ! #define PATCHDATE "3/5/92"
  338. --- 1,2 ----
  339. ! #define PATCHLEVEL 4
  340. ! #define PATCHDATE "6/3/92"
  341.  
  342. exit 0 # Just in case...
  343.