billr@saab.CNA.TEK.COM (Bill Randle) (01/06/90)
Submitted-by: Dan Bernstein <brnstnd@stealth.acf.nyu.edu> Posting-number: Volume 8, Issue 79 Archive-name: travesty/Patch1 Patch-To: travesty: Volume 8, Issue 75 [This patch fixes the non-portable bcmp used in version 1.0. It now works correctly on BSD based machines. -br] #! /bin/sh # This is a shell archive. Remove anything before this line, then unpack # it by saving it into a file and typing "sh file". To overwrite existing # files, type "sh file -c". You can also feed this as standard input via # unshar, or by typing "sh <file", e.g.. If this archive is complete, you # will see the following message at the end: # "End of shell archive." # Contents: patches01 # Wrapped by billr@saab on Fri Jan 5 13:15:32 1990 PATH=/bin:/usr/bin:/usr/ucb ; export PATH if test -f 'patches01' -a "${1}" != "-c" ; then echo shar: Will not clobber existing file \"'patches01'\" else echo shar: Extracting \"'patches01'\" \(6907 characters\) sed "s/^X//" >'patches01' <<'END_OF_FILE' X*** ../../travesty/CHANGES Wed Dec 20 10:05:45 1989 X--- CHANGES Thu Jan 4 16:09:38 1990 X*************** X*** 1 **** X--- 1,5 ---- X+ travesty version 1.1, 12/23/89. X+ X+ Changed cmp() to a slow, portable, inline version. Is ctoi() guaranteed? X+ X travesty version 1.0, 12/17/89. X*** ../../travesty/README Wed Dec 20 10:05:46 1989 X--- README Thu Jan 4 16:09:39 1990 X*************** X*** 1,10 **** X travesty - make a travesty of the input X X! travesty version 1.0, 12/17/89. X Copyright (c) 1989, Daniel J. Bernstein. X All rights reserved. X X! This distribution packaged 12/17/89. X X Files: X CHANGES Description of changes since first distributed version X--- 1,10 ---- X travesty - make a travesty of the input X X! travesty version 1.1, 12/23/89. X Copyright (c) 1989, Daniel J. Bernstein. X All rights reserved. X X! This distribution packaged 12/23/89. X X Files: X CHANGES Description of changes since first distributed version X*** ../../travesty/travesty.c Wed Dec 20 10:05:49 1989 X--- travesty.c Thu Jan 4 16:09:41 1990 X*************** X*** 7,22 **** X Internet address: brnstnd@acf10.nyu.edu.\n"; X X static char travestyversion[] = X! "travesty version 1.0, 12/17/89.\n\ X Copyright (c) 1989, Daniel J. Bernstein.\n\ X All rights reserved.\n"; X X static char travestycopyright[] = X! "travesty version 1.0, 12/17/89.\n\ X Copyright (c) 1989, Daniel J. Bernstein.\n\ X All rights reserved.\n\ X \n\ X! Until January 1, 1993, you are granted the following rights: A. To make\n\ X copies of this work in original form, so long as (1) the copies are exact\n\ X and complete; (2) the copies include the copyright notice, this paragraph,\n\ X and the disclaimer of warranty in their entirety. B. To distribute this\n\ X--- 7,22 ---- X Internet address: brnstnd@acf10.nyu.edu.\n"; X X static char travestyversion[] = X! "travesty version 1.1, 12/23/89.\n\ X Copyright (c) 1989, Daniel J. Bernstein.\n\ X All rights reserved.\n"; X X static char travestycopyright[] = X! "travesty version 1.1, 12/23/89.\n\ X Copyright (c) 1989, Daniel J. Bernstein.\n\ X All rights reserved.\n\ X \n\ X! Until January 1, 1994, you are granted the following rights: A. To make\n\ X copies of this work in original form, so long as (1) the copies are exact\n\ X and complete; (2) the copies include the copyright notice, this paragraph,\n\ X and the disclaimer of warranty in their entirety. B. To distribute this\n\ X*************** X*** 26,32 **** X includes the copyright notice, this paragraph, and the disclaimer of\n\ X warranty in their entirety. These rights are temporary and revocable upon\n\ X written, oral, or other notice by Daniel J. Bernstein. These rights are\n\ X! automatically revoked on January 1, 1993. This copyright notice shall be\n\ X governed by the laws of the state of New York.\n\ X \n\ X If you have questions about travesty or about this copyright notice,\n\ X--- 26,32 ---- X includes the copyright notice, this paragraph, and the disclaimer of\n\ X warranty in their entirety. These rights are temporary and revocable upon\n\ X written, oral, or other notice by Daniel J. Bernstein. These rights are\n\ X! automatically revoked on January 1, 1994. This copyright notice shall be\n\ X governed by the laws of the state of New York.\n\ X \n\ X If you have questions about travesty or about this copyright notice,\n\ X*************** X*** 89,99 **** X #include "djbatoi.h" X X /* The following macro had better make chars into ints from 0 thru 255. */ X- X #define ctoi(x) ((unsigned int) (x)) X #define copy(s,t,len) bcopy(s,t,len) X- #define cmp(s,t,len) bcmp(s,t,len) /* had better return signed value! */ X X #define ran(n) (((random() % n) + n) % n) /* idiotic % can be negative */ X X #define MAXORD 20 X--- 89,111 ---- X #include "djbatoi.h" X X /* The following macro had better make chars into ints from 0 thru 255. */ X #define ctoi(x) ((unsigned int) (x)) X+ X #define copy(s,t,len) bcopy(s,t,len) X X+ int cmp(s,t,len) /* needs to return a signed value; bcmp() not portable */ X+ register char *s; X+ register char *t; X+ register int len; X+ { X+ while (len--) X+ if (*s != *t) X+ return((ctoi(*s) > ctoi(*t)) * 2 - 1); X+ else X+ s++,t++; X+ return(0); X+ } X+ X #define ran(n) (((random() % n) + n) % n) /* idiotic % can be negative */ X X #define MAXORD 20 X*************** X*** 104,110 **** X int ord1; X int seed; X X! int s[MAXORD + 1][257]; X char *c; X int curc; X int *p; X--- 116,122 ---- X int ord1; X int seed; X X! int s[MAXORD + 1][257]; /* dynamic? not worth it */ X char *c; X int curc; X int *p; X*************** X*** 143,178 **** X } X } X X! sort(l,u,m) X register int l,u; /* we are useless if l == u; we crash if l > u */ X register int m; X { X register int i; X register int ch; X X if (m > ord) X return; X X for (ch = 0; ch < 256; ch++) X! s[m][ch] = 0; X X for (i = l; i <= u; i++) X! s[m][ctoi(c[p[i] * ord1 + m])]++; X X! s[m][0] += l - 1; X for (ch = 1; ch < 256; ch++) X! s[m][ch] += s[m][ch - 1]; X X for (i = u; i >= l; i--) X! q[s[m][ctoi(c[p[i] * ord1 + m])]--] = p[i]; /* trust me. */ X X for (i = l; i <= u; i++) X p[i] = q[i]; X X! s[m][256] = u; X for (ch = 0; ch < 256; ch++) X! if (s[m][ch] + 1 < s[m][ch + 1]) /* anything to save a procedure call */ X! sort(s[m][ch] + 1,s[m][ch + 1],m + 1); X } X X zeroq() X--- 155,191 ---- X } X } X X! sort(l,u,m) /* recursive */ X register int l,u; /* we are useless if l == u; we crash if l > u */ X register int m; X { X register int i; X register int ch; X+ register int *sm = s[m]; X X if (m > ord) X return; X X for (ch = 0; ch < 256; ch++) X! sm[ch] = 0; X X for (i = l; i <= u; i++) X! sm[ctoi(c[p[i] * ord1 + m])]++; X X! sm[0] += l - 1; X for (ch = 1; ch < 256; ch++) X! sm[ch] += sm[ch - 1]; X X for (i = u; i >= l; i--) X! q[sm[ctoi(c[p[i] * ord1 + m])]--] = p[i]; /* trust me. */ X X for (i = l; i <= u; i++) X p[i] = q[i]; X X! sm[256] = u; X for (ch = 0; ch < 256; ch++) X! if (sm[ch] + 1 < sm[ch + 1]) /* anything to save a procedure call */ X! sort(sm[ch] + 1,sm[ch + 1],m + 1); X } X X zeroq() X*************** X*** 185,192 **** X X sigalrm() X { X! fprintf(stderr,"Seed: %d\n",seed); X! fflush(stderr); X } X X main(argc,argv,envp) X--- 198,205 ---- X X sigalrm() X { X! (void) fprintf(stderr,"Seed: %d\n",seed); X! (void) fflush(stderr); X } X X main(argc,argv,envp) X*** ../../travesty/travesty.man Wed Dec 20 10:05:48 1989 X--- travesty.man Thu Jan 4 16:09:40 1990 X*************** X*** 109,115 **** X has been tested X on an Astronautics ZS-2 running ZSUnix. X .SH VERSION X! travesty version 1.0, dated 12/17/89. X .SH AUTHOR X Copyright 1989, Daniel J. Bernstein. X .SH "SEE ALSO" X--- 109,115 ---- X has been tested X on an Astronautics ZS-2 running ZSUnix. X .SH VERSION X! travesty version 1.1, dated 12/23/89. X .SH AUTHOR X Copyright 1989, Daniel J. Bernstein. X .SH "SEE ALSO" END_OF_FILE if test 6907 -ne `wc -c <'patches01'`; then echo shar: \"'patches01'\" unpacked with wrong size! fi # end of 'patches01' fi echo shar: End of shell archive. exit 0