diff options
author | Karl Berry <karl@freefriends.org> | 2021-02-25 19:22:25 +0000 |
---|---|---|
committer | Karl Berry <karl@freefriends.org> | 2021-02-25 19:22:25 +0000 |
commit | ad547a6b5986815fda458221149728d9d9ab1d87 (patch) | |
tree | 16296910eb3eca724371474ea9aea3994dc69614 /Build/source/texk/makejvf/tool.c | |
parent | 947b43de3dd21d58ccc2ffadefc4441ea1c2a813 (diff) |
restore Build,TODO from r57911
git-svn-id: svn://tug.org/texlive/trunk@57915 c570f23f-e606-0410-a88d-b1316a301751
Diffstat (limited to 'Build/source/texk/makejvf/tool.c')
-rw-r--r-- | Build/source/texk/makejvf/tool.c | 331 |
1 files changed, 331 insertions, 0 deletions
diff --git a/Build/source/texk/makejvf/tool.c b/Build/source/texk/makejvf/tool.c new file mode 100644 index 00000000000..4046c56a11a --- /dev/null +++ b/Build/source/texk/makejvf/tool.c @@ -0,0 +1,331 @@ +#include <kpathsea/config.h> +#include "makejvf.h" + +#include <stdio.h> +#include <math.h> + +int mquad(unsigned char *p) +{ + unsigned int cc; + + cc = (((unsigned int)p[0]*256 + +(unsigned int)p[1])*256 + +(unsigned int)p[2])*256 + +(unsigned int)p[3]; + + return(cc); +} + +#if 0 /* unused */ +unsigned int utri(unsigned char *p) +{ + unsigned int i,cc; + unsigned char fchar[4]; + + fchar[0] = 0; + for (i = 1 ; i < 4 ; i++) + fchar[i] = p[i-1]; + + cc = mquad(fchar); + + return cc; +} +#endif /* 0 */ + +#if 0 /* unused */ +int tri(unsigned char *p) +{ + int i,cc; + unsigned char fchar[4]; + + fchar[0] = 0; + for (i = 1 ; i < 4 ; i++) + fchar[i] = p[i-1]; + + cc = mquad(fchar); + + if (cc > 8388607) cc -= 16777216; + return cc; +} +#endif /* 0 */ + +unsigned int upair(unsigned char *p) +{ + unsigned int i,cc; + unsigned char fchar[4]; + + fchar[0] = fchar[1] = 0; + for (i = 2 ; i < 4 ; i++) + fchar[i] = p[i-2]; + + cc = mquad(fchar); + + return cc; +} + +#if 0 /* unused */ +int pair(unsigned char *p) +{ + int i,cc; + unsigned char fchar[4]; + + fchar[0] = fchar[1] = 0; + for (i = 2 ; i < 4 ; i++) + fchar[i] = p[i-2]; + + cc = mquad(fchar); + + if (cc > 32767) cc -= 65536; + return cc; +} +#endif /* 0 */ + +#if 0 /* unused */ +int mget(char *p, int num) +{ + switch (num) { + case 1: + return *p; + break; + case 2: + return pair(p); + break; + case 3: + return tri(p); + break; + case 4: + return mquad(p); + break; + } +} +#endif /* 0 */ + +int fquad(FILE *fp) +{ + int i,cc; + unsigned char fchar[4]; + + for (i = 0 ; i < 4 ; i++) + fchar[i] = (char)fgetc(fp); + + cc = mquad(fchar); + return cc; +} + +#if 0 /* unused */ +unsigned int uftri(FILE *fp) +{ + unsigned int i,cc; + unsigned char fchar[4]; + + fchar[0] = 0; + for (i = 1 ; i < 4 ; i++) + fchar[i] = (char)fgetc(fp); + + cc = mquad(fchar); + + return cc; +} +#endif /* 0 */ + +#if 0 /* unused */ +int ftri(FILE *fp) +{ + int i,cc; + unsigned char fchar[4]; + + fchar[0] = 0; + for (i = 1 ; i < 4 ; i++) + fchar[i] = (char)fgetc(fp); + + cc = mquad(fchar); + + if (cc > 8388607) cc -= 16777216; + + return cc; +} +#endif /* 0 */ + +unsigned int ufpair(FILE *fp) +{ + unsigned int i,cc; + unsigned char fchar[4]; + + fchar[0] = fchar[1] = 0; + for (i = 2 ; i < 4 ; i++) + fchar[i] = (char)fgetc(fp); + + cc = mquad(fchar); + + return cc; +} + +int fpair(FILE *fp) +{ + int i,cc; + unsigned char fchar[4]; + + fchar[0] = fchar[1] = 0; + for (i = 2 ; i < 4 ; i++) + fchar[i] = (char)fgetc(fp); + + cc = mquad(fchar); + + if (cc > 32767) cc -= 65536; + + return cc; +} + +#if 0 /* unused */ +int fskip(FILE *fp, int num) +{ + fseek(fp,num,1); +} +#endif /* 0 */ + +int fputnum(int num, int byte, FILE *fp) +{ + int i; + unsigned char buf[16]; + + if (num<0) { + if (byte==3) { + num=16777216+num; + } + else if (byte==2) { + num=65536+num; + } + else if (byte==1) { + num=256+num; + } + } + + for (i = byte-1 ; i >= 0 ; i--) { + buf[i] = (num%256); + num >>= 8; + } + + for (i = 0 ; i < byte ; i++) { + fputc(buf[i],fp); + } + + return 0; +} + +int numcount(int num) +{ + if (num >= 0) { + if (num <= 127) { + return 1; + } + else if (num <= 32767) { + return 2; + } + else if (num <= 838607) { + return 3; + } + else { + return 4; + } + } + else { + if (num >= -128) { + return 1; + } + else if (num >= -32768) { + return 2; + } + else if (num >= -838608) { + return 3; + } + else { + return 4; + } + } +} + +int fputnum2(int num, FILE *fp) +{ + fputnum(num,numcount(num),fp); + return 0; +} + +int fputstr(char *str, int byte, FILE *fp) +{ + int i; + + for (i = 0 ; i < byte ; i++) { + fputc(str[i],fp); + } + + return 0; +} + +#if 0 /* unused */ +int cutspace(FILE *fp) +{ + int cc; + + cc = fgetc(fp); + if (cc == ';') { + ungetc(cc,fp); + return 0; + } + if (cc != ' ' && cc != '\t' && cc != '\n' && cc != '\0') return -1; + while (1) { + cc = fgetc(fp); + if (cc == EOF) return -1; + if (cc != ' ' && cc != '\t' && cc != '\n' && cc != '\0') { + ungetc(cc,fp); + return 0; + } + } +} +#endif /* 0 */ + +#if 0 /* unused */ +int gethex(FILE *fp) +{ + int cc,i; + char buf[256]; + + if (fgetc(fp) != '<') { + return -1; + } + + for (i = 0 ; ; i++) { + cc = fgetc(fp); + if ((cc >= '0' && cc <= '9') || (cc >= 'a' && cc <= 'f') || (cc >= 'A' && cc <= 'F')) { + buf[i] = cc; + } + else if (cc == '>') { + buf[i] = '\0'; + return strtol(buf,NULL,16); + } + else { + return -1; + } + } +} +#endif /* 0 */ + +#if 0 /* unused */ +int getdec(FILE *fp) +{ + int cc,i; + char buf[256]; + + for (i = 0 ; ; i++) { + cc = fgetc(fp); + if ((cc >= '0' && cc <= '9') || cc == '-') { + buf[i] = cc; + } + else if (cc == ' ' || cc == '\t' || cc == '\n' || cc == '\0' || cc == EOF) { + ungetc(cc,fp); + buf[i] = '\0'; + return atoi(buf); + } + else return -1; + } +} +#endif /* 0 */ |