summaryrefslogtreecommitdiff
path: root/Build/source/texk/dvipsk/vmcms/dvipscms.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/dvipsk/vmcms/dvipscms.h')
-rw-r--r--Build/source/texk/dvipsk/vmcms/dvipscms.h153
1 files changed, 153 insertions, 0 deletions
diff --git a/Build/source/texk/dvipsk/vmcms/dvipscms.h b/Build/source/texk/dvipsk/vmcms/dvipscms.h
new file mode 100644
index 00000000000..d17d959027e
--- /dev/null
+++ b/Build/source/texk/dvipsk/vmcms/dvipscms.h
@@ -0,0 +1,153 @@
+/*
+ * These are changes needed for the VM/CMS version of dvips as of
+ * May 21, 1991. Revised 12/1/92.
+ * This was written by J. Hafner, E. Blanz and M. Flickner of IBM Research,
+ * Almaden Research Center. Contact hafner@almaden.ibm.com.
+ * The changes to the rest of the code can be found by searching for
+ * "VMCMS".
+ *
+ * This code can be included in dvips, subject to the same restrictions as
+ * in the copyright notice.
+ */
+extern char *malloc();
+/*
+ * Added ascii to ebcdic conversion table for VMCMS.
+ * Only for the printable characters. This is used by DVIPS.
+*/
+char ascii2ebcdic[256] = {
+ 0, 1, 2, 3, 53, 45, 46, 47,
+ 22, 5, 37, 11, 12, 64, 14, 15,
+ 16, 17, 18, 19, 60, 61, 50, 38,
+ 24, 25, 63, 39,111,111,111,111,
+ 64, 90,127,123, 91,108, 80,125,
+ 77, 93, 92, 78,107, 96, 75, 97,
+ 240,241,242,243,244,245,246,247,
+ 248,249,122, 94, 76,126,110,111,
+ 124,193,194,195,196,197,198,199,
+ 200,201,209,210,211,212,213,214,
+ 215,216,217,226,227,228,229,230,
+ 231,232,233,173,224,189, 95,109,
+ 121,129,130,131,132,133,134,135,
+ 136,137,145,146,147,148,149,150,
+ 151,152,153,162,163,164,165,166,
+ 167,168,169,192, 79,208,161, 7,
+ 128,129,130,131,132,133,134,135,
+ 136,137,138,139,140,141,142,143,
+ 144,145,146,147,148,149,150,151,
+ 152,153,154,155,156,157,158,159,
+ 160,161,162,163,164,165,166,167,
+ 168,169,170,171,172,173,174,175,
+ 176,177,178,179,180,181,182,183,
+ 184,185,186,187,188,189,190,191,
+ 192,193,194,195,196,197,198,199,
+ 200,201,202,203,204,205,206,207,
+ 208,209,210,211,212,213,214,215,
+ 216,217,218,219,220,221,222,223,
+ 224,225,226,227,228,229,230,231,
+ 232,233,234,235,236,237,238,239,
+ 240,241,242,243,244,245,246,247,
+ 248,249,250,251,252,253,254,255
+};
+/*
+ * Added ebcdic to ascii conversion table for VMCMS.
+ * Only for the printable characters. This inverts the
+ * table above and is used by AFM2TFM.
+*/
+char ebcdic2ascii[256] = {
+ 0, 1, 2, 3, 4, 9, 6,127,
+ 8, 9, 10, 11, 12, 13, 14, 15,
+ 16, 17, 18, 19, 20, 21, 8, 23,
+ 24, 25, 26, 27, 28, 29, 30, 31,
+ 32, 33, 34, 35, 36, 10, 23, 27,
+ 40, 41, 42, 43, 44, 5, 6, 7,
+ 48, 49, 22, 51, 52, 4, 54, 55,
+ 56, 57, 58, 59, 20, 21, 62, 26,
+ 32, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73, 74, 46, 60, 40, 43,124,
+ 38, 81, 82, 83, 84, 85, 86, 87,
+ 88, 89, 33, 36, 42, 41, 59, 94,
+ 45, 47, 98, 99,100,101,102,103,
+ 104,105,124, 44, 37, 95, 62, 63,
+ 112,113,114,115,116,117,118,119,
+ 120, 96, 58, 35, 64, 39, 61, 34,
+ 128, 97, 98, 99,100,101,102,103,
+ 104,105,138,123,140,141,142,143,
+ 144,106,107,108,109,110,111,112,
+ 113,114,154,125,156,157,158,159,
+ 160,161,115,116,117,118,119,120,
+ 121,122,170,171,172, 91,174,175,
+ 176,177,178,179,180,181,182,183,
+ 184,185,186,187,188, 93,190,191,
+ 192, 65, 66, 67, 68, 69, 70, 71,
+ 72, 73,202,203,204,205,206,207,
+ 208, 74, 75, 76, 77, 78, 79, 80,
+ 81, 82,218,219,220,221,222,223,
+ 92,225, 83, 84, 85, 86, 87, 88,
+ 89, 90,234,235,236,237,238,239,
+ 48, 49, 50, 51, 52, 53, 54, 55,
+ 56, 57,250,251,252,253,254,255
+ };
+/*
+ * This redefines fopen for VMCMS, truncating long filenames for
+ * portability of TeX source.
+ */
+#ifdef fopen
+#undef fopen
+#endif
+FILE *cmsfopen(filename, mode)
+char *filename, *mode ;
+{
+ char cmsfile[21] ;
+ char *save_file;
+ char *ptr;
+ void exit() ;
+
+ if (!(save_file =
+ (char *)malloc(strlen(filename) + 1, sizeof(char)))) {
+ fprintf (stderr, "sorry---out of memory\n");
+ exit(10);
+ }
+
+ strcpy(save_file, filename);
+
+ cmsfile[0] = '\0' ;
+
+ ptr = strtok(save_file, ". ") ;
+ strncat(cmsfile, ptr, 8) ;
+
+ strcat(cmsfile, ".");
+
+ if (!(ptr = strtok(NULL, ". "))) {
+/* Remove this, not much help anyway since most filenames are built
+ internally. */
+/*
+ fprintf(stderr, "\n<%s> is not a legitimate VM/CMS file name\n",
+ filename);
+ fprintf(stderr, "...we'll try to continue...\n");
+*/
+ return(NULL);
+ }
+
+ strncat(cmsfile, ptr, 8);
+
+ if (ptr = strtok(NULL, ". ")) {
+ strcat(cmsfile, ".");
+ strncat(cmsfile, ptr, 2);
+ }
+
+ free(save_file);
+
+ return(fopen(cmsfile, mode));
+
+}
+
+
+/*
+ * access.c for VMCMS
+ */
+int access (path, amode)
+char *path;
+int amode;
+{
+ return(1);
+}