home *** CD-ROM | disk | FTP | other *** search
/ NetNews Usenet Archive 1993 #1 / NN_1993_1.iso / spool / gnu / gcc / bug / 3146 < prev    next >
Encoding:
Text File  |  1993-01-08  |  41.0 KB  |  4,486 lines

  1. Newsgroups: gnu.gcc.bug
  2. Path: sparky!uunet!cis.ohio-state.edu!claude.cs.umb.edu!karl
  3. From: karl@claude.cs.umb.edu (Karl Berry)
  4. Subject: rt internal compiler dump
  5. Message-ID: <199301081531.AA10239@claude.cs.umb.edu>
  6. Sender: gnulists@ai.mit.edu
  7. Reply-To: karl@cs.umb.edu
  8. Organization: GNUs Not Usenet
  9. Distribution: gnu
  10. Date: Fri, 8 Jan 1993 05:31:50 GMT
  11. Approved: bug-gcc@prep.ai.mit.edu
  12. Lines: 4472
  13.  
  14. gcc 2.3.3 on an IBM RT running 4.3 bsd (configured as romp-aos), gets an
  15. internal compiler error on the following file.  Only option is -g.
  16.  
  17. # 1 "pstype1.c"
  18.  
  19.  
  20.  
  21.  
  22.  
  23.  
  24.  
  25.  
  26.  
  27.  
  28.  
  29.  
  30.  
  31.  
  32.  
  33.  
  34.  
  35.  
  36.  
  37. # 1 ".././include/config.h" 1
  38.  
  39.  
  40.  
  41.  
  42.  
  43.  
  44.  
  45.  
  46.  
  47.  
  48.  
  49.  
  50.  
  51.  
  52.  
  53.  
  54.  
  55.  
  56.  
  57.  
  58.  
  59.  
  60.  
  61. # 1 ".././include/c-auto.h" 1
  62.  
  63.  
  64.  
  65.  
  66.  
  67.  
  68.  
  69.  
  70.  
  71.  
  72.  
  73.  
  74.  
  75.  
  76.  
  77.  
  78.  
  79.  
  80.  
  81.  
  82.  
  83.  
  84.  
  85.  
  86.  
  87.  
  88.  
  89.  
  90.  
  91.  
  92.  
  93.  
  94.  
  95.  
  96.  
  97.  
  98.  
  99.  
  100.  
  101.  
  102.  
  103.  
  104.  
  105.  
  106. # 24 ".././include/config.h" 2
  107.  
  108.  
  109.  
  110.  
  111.  
  112.  
  113.  
  114. # 1 ".././include/c-std.h" 1
  115.  
  116.  
  117.  
  118.  
  119.  
  120.  
  121.  
  122.  
  123.  
  124.  
  125.  
  126.  
  127.  
  128.  
  129.  
  130.  
  131.  
  132.  
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139. # 1 "/usr/include/math.h" 1 3
  140.  
  141.  
  142.  
  143.  
  144.  
  145.  
  146.  
  147.  
  148.  
  149.  
  150.  
  151.  
  152.  
  153.  
  154. extern double asinh(), acosh(), atanh();
  155. extern double erf(), erfc();
  156. extern double fabs(), floor(), ceil(); 
  157. extern double modf(), ldexp(), frexp(), atof();
  158. extern double sqrt(), cbrt();
  159. extern double sin(), cos(), tan(), asin(), acos(), atan(), atan2();
  160. extern double expm1(), log1p(), exp(), log(), log10(), pow();
  161. extern double sinh(), cosh(), tanh();
  162. extern double hypot(), cabs(), lgamma();
  163. extern double j0(), j1(), jn(), y0(), y1(), yn();
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170. # 25 ".././include/c-std.h" 2
  171.  
  172. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 1 3
  173.  
  174. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 1 3
  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. typedef void *__gnuc_va_list;
  223.  
  224.  
  225.  
  226.  
  227.  
  228. # 85 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 3
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235.  
  236.  
  237.  
  238.  
  239. # 137 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 3
  240.  
  241.  
  242.  
  243.  
  244.  
  245. # 2 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 2 3
  246.  
  247.  
  248.  
  249.  
  250.  
  251.  
  252.  
  253.  
  254.  
  255.  
  256.  
  257.  
  258.  
  259.  
  260.  
  261.  
  262.  
  263.  
  264.  
  265.  
  266.  
  267.  
  268.  
  269. extern    struct    _iobuf {
  270.     int    _cnt;
  271.     char    *_ptr;         
  272.     char    *_base;         
  273.     int    _bufsiz;
  274.     short    _flag;
  275.     char    _file;         
  276. } _iob[];
  277.  
  278.  
  279.  
  280.  
  281.  
  282.  
  283.  
  284.  
  285.  
  286.  
  287.         
  288.  
  289.  
  290.  
  291.  
  292.  
  293.  
  294.  
  295.  
  296.  
  297.  
  298.  
  299.  
  300.  
  301.  
  302.  
  303.  
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314. struct _iobuf     *fopen();
  315. struct _iobuf     *fdopen();
  316. struct _iobuf     *freopen();
  317. struct _iobuf     *popen();
  318. long    ftell();
  319. char    *fgets();
  320. char    *gets();
  321.  
  322.  
  323.  
  324.  
  325. # 26 ".././include/c-std.h" 2
  326.  
  327.  
  328.  
  329. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/sys/types.h" 1 3
  330.  
  331.  
  332.  
  333.  
  334.  
  335.  
  336.  
  337.  
  338.  
  339.  
  340.  
  341.  
  342.  
  343.  
  344.  
  345.  
  346.  
  347.  
  348.  
  349.  
  350.  
  351.  
  352.  
  353.  
  354.  
  355.  
  356.  
  357.  
  358.  
  359.  
  360.  
  361.  
  362.  
  363.  
  364.  
  365.  
  366. typedef    unsigned char    u_char;
  367. typedef    unsigned short    u_short;
  368. typedef    unsigned int    u_int;
  369. typedef    unsigned long    u_long;
  370. typedef    unsigned short    ushort;         
  371.  
  372.  
  373.  
  374.  
  375.  
  376.  
  377.  
  378.  
  379. typedef    struct    _physadr { int r[1]; } *physadr;
  380. typedef    struct    label_t    {
  381.     int    val[11];
  382. } label_t;
  383.  
  384.  
  385. typedef    struct    _quad { long val[2]; } quad;
  386. typedef    long    daddr_t;
  387. typedef    char *    caddr_t;
  388. typedef    u_long    ino_t;
  389. typedef    long    swblk_t;
  390.  
  391.  
  392. typedef    long    size_t;
  393.  
  394. typedef    long    time_t;
  395. typedef    short    dev_t;
  396. typedef    long    off_t;
  397. typedef    u_short    uid_t;
  398. typedef    u_short    gid_t;
  399.  
  400. typedef signed char prio_t;     
  401.  
  402.  
  403.  
  404.  
  405.  
  406.  
  407.  
  408.  
  409.  
  410.  
  411.  
  412.  
  413.  
  414.  
  415.  
  416. typedef long    fd_mask;
  417.  
  418.  
  419.  
  420.  
  421.  
  422. typedef    struct fd_set {
  423.     fd_mask    fds_bits[(((256 )+(( (sizeof(fd_mask) * 8        )    )-1))/( (sizeof(fd_mask) * 8        )    )) ];
  424. } fd_set;
  425.  
  426.  
  427.  
  428.  
  429.  
  430.  
  431.  
  432.  
  433.  
  434.  
  435.  
  436. typedef struct qhdr {
  437.     struct qhdr *link, *rlink;
  438. } *queue_t;
  439.  
  440.  
  441.  
  442.  
  443. # 29 ".././include/c-std.h" 2
  444.  
  445.  
  446.  
  447.  
  448.  
  449.  
  450.  
  451.  
  452.  
  453.  
  454.  
  455.  
  456.  
  457.  
  458.  
  459.  
  460.  
  461.  
  462.  
  463.  
  464. extern char *getenv ();
  465.  
  466.  
  467.  
  468.  
  469.  
  470.  
  471.  
  472. extern void  *calloc (), *malloc (), *realloc ();
  473.  
  474.  
  475.  
  476. extern struct _iobuf  *popen ();
  477. extern double hypot ();
  478.  
  479.  
  480. # 31 ".././include/config.h" 2
  481.  
  482.  
  483.  
  484. # 1 ".././include/c-memstr.h" 1
  485.  
  486.  
  487.  
  488.  
  489.  
  490.  
  491.  
  492.  
  493.  
  494.  
  495.  
  496.  
  497.  
  498.  
  499.  
  500.  
  501.  
  502.  
  503.  
  504.  
  505.  
  506.  
  507.  
  508.  
  509.  
  510.  
  511. # 1 "/usr/include/string.h" 1 3
  512.  
  513.  
  514.  
  515.  
  516.  
  517.  
  518.  
  519.  
  520.  
  521.  
  522.  
  523.  
  524.  
  525.  
  526.  
  527.  
  528.  
  529.  
  530.  
  531.  
  532. # 1 "/usr/include/strings.h" 1 3
  533.  
  534.  
  535.  
  536.  
  537.  
  538.  
  539.  
  540.  
  541.  
  542.  
  543.  
  544.  
  545.  
  546.  
  547.  
  548.  
  549.  
  550.  
  551.  
  552.  
  553.  
  554.  
  555.  
  556.  
  557. char    *strcat();
  558. char    *strncat();
  559. int    strcmp();
  560. int    strncmp();
  561. char    *strcpy();
  562. char    *strncpy();
  563. int    strlen();
  564. char    *index();
  565. char    *rindex();
  566. # 21 "/usr/include/string.h" 2 3
  567.  
  568.  
  569.  
  570.  
  571.  
  572.  
  573. extern char *strcpyn();
  574. extern char *strcatn();
  575. extern int strcmpn();
  576.  
  577.  
  578.  
  579.  
  580.  
  581.  
  582. extern char *strchr();
  583. extern char *strrchr();
  584. extern char *strpbrk();
  585. extern int strspn();
  586. extern int strcspn();
  587. extern char *strtok();
  588. # 27 ".././include/c-memstr.h" 2
  589.  
  590.  
  591.  
  592.  
  593. # 1 "/usr/include/memory.h" 1 3
  594.  
  595.  
  596.  
  597.  
  598.  
  599.  
  600.  
  601.  
  602.  
  603.  
  604.  
  605.  
  606.  
  607.  
  608.  
  609.  
  610.  
  611.  
  612.  
  613.  
  614.  
  615.  
  616.  
  617.  
  618. extern char *memccpy();
  619. extern char *memchr();
  620. extern int memcmp();
  621. extern char *memcpy();
  622. extern char *memset();
  623. # 31 ".././include/c-memstr.h" 2
  624.  
  625.  
  626.  
  627.  
  628.  
  629.  
  630.  
  631.  
  632.  
  633.  
  634.  
  635.  
  636.  
  637.  
  638.  
  639.  
  640. # 60 ".././include/c-memstr.h"
  641.  
  642.  
  643.  
  644. # 34 ".././include/config.h" 2
  645.  
  646.  
  647.  
  648. # 1 ".././include/c-errno.h" 1
  649.  
  650.  
  651.  
  652.  
  653.  
  654.  
  655.  
  656.  
  657.  
  658.  
  659.  
  660.  
  661.  
  662.  
  663.  
  664.  
  665.  
  666.  
  667.  
  668.  
  669.  
  670. # 1 "/usr/include/errno.h" 1 3
  671.  
  672.  
  673.  
  674.  
  675.  
  676.  
  677.  
  678.  
  679.  
  680.  
  681.  
  682.  
  683.  
  684.  
  685. # 1 "/usr/include/sys/nfs_defines.h" 1 3
  686.  
  687.  
  688.  
  689.  
  690.  
  691.  
  692.  
  693.  
  694.  
  695.  
  696.  
  697.  
  698.  
  699.  
  700.  
  701.  
  702.  
  703.  
  704.  
  705.  
  706.  
  707.  
  708.  
  709.  
  710.  
  711.  
  712.  
  713.  
  714.  
  715.  
  716.  
  717.  
  718.  
  719.  
  720.  
  721.  
  722.  
  723.  
  724.  
  725. # 15 "/usr/include/errno.h" 2 3
  726.  
  727.  
  728.  
  729.  
  730.  
  731.  
  732.  
  733.  
  734.  
  735.  
  736.  
  737.  
  738.  
  739.  
  740.  
  741.  
  742.  
  743.  
  744.  
  745.  
  746.  
  747.  
  748.  
  749.  
  750.  
  751.  
  752.  
  753.  
  754.  
  755.  
  756.  
  757.  
  758.  
  759.  
  760.  
  761.  
  762.  
  763.  
  764.  
  765.  
  766.  
  767.  
  768.  
  769.  
  770.  
  771.  
  772.  
  773.  
  774.  
  775.  
  776.  
  777.  
  778.  
  779.  
  780.  
  781.  
  782.  
  783.  
  784.  
  785.  
  786.  
  787.      
  788.  
  789.  
  790.  
  791.  
  792.  
  793.  
  794.  
  795.  
  796.  
  797.  
  798.  
  799.  
  800.  
  801.      
  802.  
  803.  
  804.  
  805.  
  806.  
  807.  
  808.  
  809.  
  810.  
  811.  
  812.  
  813.  
  814.  
  815.      
  816.  
  817.  
  818.  
  819.  
  820.  
  821.  
  822.  
  823.  
  824.  
  825.  
  826.  
  827.  
  828.  
  829.  
  830.  
  831.  
  832.  
  833.  
  834.  
  835.  
  836.  
  837.  
  838.  
  839.  
  840.  
  841.  
  842.  
  843.  
  844.  
  845.  
  846.  
  847.  
  848.  
  849.  
  850.  
  851. # 22 ".././include/c-errno.h" 2
  852.  
  853.  
  854. extern int errno;
  855.  
  856.  
  857.  
  858. # 37 ".././include/config.h" 2
  859.  
  860.  
  861.  
  862. # 1 "/usr/local/gnu/include/assert.h" 1 3
  863.  
  864.  
  865.  
  866.  
  867.  
  868.  
  869.  
  870.  
  871.  
  872. # 19 "/usr/local/gnu/include/assert.h" 3
  873.  
  874.  
  875.  
  876.  
  877.  
  878.  
  879.  
  880.  
  881.  
  882.  
  883. extern void __eprintf (const char *, const char *, unsigned, const char *);
  884.  
  885.  
  886.  
  887.  
  888.  
  889.  
  890.  
  891.  
  892.  
  893. # 50 "/usr/local/gnu/include/assert.h" 3
  894.  
  895.  
  896.  
  897. # 40 ".././include/config.h" 2
  898.  
  899.  
  900.  
  901. # 1 ".././include/c-minmax.h" 1
  902.  
  903.  
  904.  
  905.  
  906.  
  907.  
  908.  
  909.  
  910.  
  911.  
  912.  
  913.  
  914.  
  915.  
  916.  
  917.  
  918.  
  919.  
  920.  
  921.  
  922.  
  923.  
  924. # 1 ".././include/c-limits.h" 1
  925.  
  926.  
  927.  
  928.  
  929.  
  930.  
  931.  
  932.  
  933.  
  934.  
  935.  
  936.  
  937.  
  938.  
  939.  
  940.  
  941.  
  942.  
  943.  
  944.  
  945.  
  946.  
  947.  
  948.  
  949.  
  950.  
  951. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/limits.h" 1 3
  952.  
  953.  
  954.  
  955.  
  956.  
  957.  
  958.  
  959.  
  960.  
  961.  
  962.  
  963.  
  964.  
  965.  
  966.  
  967.  
  968.  
  969.  
  970.  
  971.  
  972.  
  973.  
  974.  
  975.  
  976.  
  977.  
  978.  
  979.  
  980.  
  981.  
  982.  
  983.  
  984.  
  985.  
  986.  
  987.  
  988.  
  989.  
  990.  
  991.  
  992.  
  993.  
  994.  
  995.  
  996.  
  997.  
  998.  
  999.  
  1000.  
  1001.  
  1002.  
  1003.  
  1004.  
  1005.  
  1006.  
  1007.  
  1008.  
  1009.  
  1010.  
  1011.  
  1012.  
  1013.  
  1014.  
  1015.  
  1016.  
  1017.  
  1018.  
  1019.  
  1020.  
  1021.  
  1022.  
  1023.  
  1024.  
  1025.  
  1026.  
  1027.  
  1028.  
  1029.  
  1030.  
  1031.  
  1032.  
  1033.  
  1034.  
  1035. # 27 ".././include/c-limits.h" 2
  1036.  
  1037.  
  1038.  
  1039.  
  1040. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/float.h" 1 3
  1041.  
  1042.  
  1043.  
  1044.  
  1045.  
  1046.     
  1047.  
  1048.  
  1049.     
  1050.  
  1051.  
  1052.     
  1053.  
  1054.  
  1055.     
  1056.  
  1057.  
  1058.     
  1059.  
  1060.  
  1061.     
  1062.  
  1063.  
  1064.     
  1065.  
  1066.  
  1067.     
  1068.  
  1069.  
  1070.     
  1071.  
  1072.  
  1073.     
  1074.  
  1075.  
  1076.     
  1077.  
  1078.  
  1079.  
  1080.     
  1081.  
  1082.  
  1083.     
  1084.  
  1085.  
  1086.     
  1087.  
  1088.  
  1089.     
  1090.  
  1091.  
  1092.     
  1093.  
  1094.  
  1095.     
  1096.  
  1097.  
  1098.     
  1099.  
  1100.  
  1101.     
  1102.  
  1103.  
  1104.     
  1105.  
  1106.  
  1107.  
  1108.     
  1109.  
  1110.  
  1111.     
  1112.  
  1113.  
  1114.     
  1115.  
  1116.  
  1117.  
  1118. union __convert_long_double {
  1119.   int __convert_long_double_i[4];
  1120.   long double __convert_long_double_d;
  1121. };
  1122.  
  1123.  
  1124.     
  1125.  
  1126.  
  1127.     
  1128.  
  1129.  
  1130.     
  1131.  
  1132.  
  1133.     
  1134.  
  1135.  
  1136.     
  1137.  
  1138.  
  1139.     
  1140.  
  1141.  
  1142.  
  1143.  
  1144. # 31 ".././include/c-limits.h" 2
  1145.  
  1146.  
  1147.  
  1148.  
  1149. # 23 ".././include/c-minmax.h" 2
  1150.  
  1151.  
  1152.  
  1153.  
  1154.  
  1155.  
  1156.  
  1157.  
  1158.  
  1159.  
  1160.  
  1161.  
  1162.  
  1163.  
  1164.  
  1165.  
  1166.  
  1167.  
  1168.  
  1169.  
  1170.  
  1171.  
  1172.  
  1173.  
  1174.  
  1175.  
  1176.  
  1177.  
  1178.  
  1179.  
  1180.  
  1181.  
  1182.  
  1183.  
  1184.  
  1185.  
  1186.  
  1187.  
  1188.  
  1189.  
  1190.  
  1191.  
  1192.  
  1193.  
  1194.  
  1195.  
  1196.  
  1197.  
  1198.  
  1199.  
  1200.  
  1201.  
  1202.  
  1203.  
  1204.  
  1205.  
  1206.  
  1207.  
  1208.  
  1209.  
  1210.  
  1211.  
  1212. # 43 ".././include/config.h" 2
  1213.  
  1214.  
  1215.  
  1216. # 1 ".././include/c-seek.h" 1
  1217.  
  1218.  
  1219.  
  1220.  
  1221.  
  1222.  
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228.  
  1229.  
  1230.  
  1231.  
  1232.  
  1233.  
  1234.  
  1235.  
  1236.  
  1237.  
  1238.  
  1239.  
  1240.  
  1241.  
  1242.  
  1243.  
  1244.  
  1245.  
  1246.  
  1247. # 46 ".././include/config.h" 2
  1248.  
  1249.  
  1250.  
  1251.  
  1252.  
  1253.  
  1254.  
  1255.  
  1256.  
  1257. # 1 ".././include/c-proto.h" 1
  1258.  
  1259.  
  1260.  
  1261.  
  1262.  
  1263.  
  1264.  
  1265.  
  1266.  
  1267.  
  1268.  
  1269.  
  1270.  
  1271.  
  1272.  
  1273.  
  1274.  
  1275.  
  1276.  
  1277.  
  1278.  
  1279.  
  1280.  
  1281.  
  1282.  
  1283.  
  1284.  
  1285.  
  1286.  
  1287.  
  1288.  
  1289.  
  1290.  
  1291.  
  1292.  
  1293.  
  1294.  
  1295.  
  1296.  
  1297.  
  1298.  
  1299.  
  1300. # 59 ".././include/c-proto.h"
  1301.  
  1302.  
  1303.  
  1304. # 55 ".././include/config.h" 2
  1305.  
  1306.  
  1307.  
  1308. # 1 ".././include/global.h" 1
  1309.  
  1310.  
  1311.  
  1312.  
  1313.  
  1314.  
  1315.  
  1316.  
  1317.  
  1318.  
  1319.  
  1320.  
  1321.  
  1322.  
  1323.  
  1324.  
  1325.  
  1326.  
  1327.  
  1328.  
  1329.  
  1330.  
  1331. # 1 ".././include/lib.h" 1
  1332.  
  1333.  
  1334.  
  1335.  
  1336.  
  1337.  
  1338.  
  1339.  
  1340.  
  1341.  
  1342.  
  1343.  
  1344.  
  1345.  
  1346.  
  1347.  
  1348.  
  1349.  
  1350.  
  1351.  
  1352.  
  1353. # 1 ".././include/types.h" 1
  1354.  
  1355.  
  1356.  
  1357.  
  1358.  
  1359.  
  1360.  
  1361.  
  1362.  
  1363.  
  1364.  
  1365.  
  1366.  
  1367.  
  1368.  
  1369.  
  1370.  
  1371.  
  1372.  
  1373.  
  1374.  
  1375.  
  1376. typedef enum { false = 0, true = 1 } boolean;
  1377.  
  1378.  
  1379.  
  1380.  
  1381.  
  1382.  
  1383.  
  1384.  
  1385.  
  1386. typedef char *string;
  1387.  
  1388.  
  1389. typedef void *address;
  1390.  
  1391.  
  1392. typedef double real;
  1393.  
  1394.  
  1395.  
  1396.  
  1397. typedef unsigned char charcode_type;
  1398.  
  1399.  
  1400.  
  1401. typedef unsigned char one_byte;
  1402. typedef signed char signed_byte;
  1403. typedef unsigned short two_bytes;
  1404. typedef short signed_2_bytes;
  1405. typedef unsigned int four_bytes;
  1406. typedef int signed_4_bytes;
  1407. typedef int byte_count_type;
  1408.  
  1409.  
  1410.  
  1411.  
  1412.  
  1413.  
  1414.  
  1415.  
  1416.  
  1417. typedef struct
  1418. {
  1419.   real real;
  1420.   real imag;
  1421. } complex;
  1422. typedef enum { first_complex_part, second_complex_part} complex_part_type;
  1423. typedef enum { polar_rep, rectangular_rep} complex_rep_type;
  1424.  
  1425.  
  1426.  
  1427. typedef struct
  1428. {
  1429.   unsigned height, width;
  1430. } dimensions_type;
  1431.  
  1432.  
  1433.  
  1434.  
  1435.  
  1436.  
  1437. typedef struct
  1438. {
  1439.   int x, y;
  1440. } coordinate_type;
  1441.  
  1442. typedef struct
  1443. {
  1444.   double x, y;
  1445. } real_coordinate_type;
  1446.  
  1447.  
  1448. # 22 ".././include/lib.h" 2
  1449.  
  1450.  
  1451.  
  1452. extern string concat (string s1,  string s2) ;
  1453. extern string concat3 (string,  string,  string) ;
  1454. extern string concat4 (string,  string,  string,  string) ;
  1455. extern string concat5 (string,  string,  string,  string,  string) ;
  1456.  
  1457.  
  1458.  
  1459. extern string xstrdup (string s) ;
  1460.  
  1461.  
  1462.  
  1463.  
  1464. extern boolean same_file_p (string filename1,  string filename2) ;
  1465.  
  1466.  
  1467.  
  1468.  
  1469. extern string find_suffix (string name) ;
  1470.  
  1471.  
  1472. extern string remove_suffix (string name) ;
  1473.  
  1474.  
  1475.  
  1476.  
  1477. extern string make_suffix (string s,  string suffix) ;
  1478.  
  1479.  
  1480.  
  1481.  
  1482. extern string make_prefix (string stem_prefix,  string name) ;
  1483.  
  1484.  
  1485.  
  1486. extern string extend_filename (string name,  string suffix) ;
  1487.  
  1488.  
  1489.  
  1490.  
  1491.  
  1492. extern address xmalloc (unsigned size) ;
  1493. extern address xrealloc (address old_address,  unsigned new_size) ;
  1494. extern address xcalloc (unsigned nelem,  unsigned elsize) ;
  1495.  
  1496.  
  1497.  
  1498.  
  1499.  
  1500.  
  1501.  
  1502.  
  1503. # 23 ".././include/global.h" 2
  1504.  
  1505.  
  1506.  
  1507.  
  1508.  
  1509.  
  1510.  
  1511.  
  1512.  
  1513.  
  1514.  
  1515.  
  1516.  
  1517.  
  1518.  
  1519.  
  1520.  
  1521.  
  1522.  
  1523.  
  1524.  
  1525.  
  1526.  
  1527.  
  1528.  
  1529.  
  1530.  
  1531.  
  1532.  
  1533.  
  1534.  
  1535.  
  1536.  
  1537.  
  1538.  
  1539.  
  1540.  
  1541.  
  1542.  
  1543.  
  1544.  
  1545.  
  1546.  
  1547.  
  1548.  
  1549.  
  1550.  
  1551.  
  1552.  
  1553.  
  1554.  
  1555.  
  1556.  
  1557.  
  1558.  
  1559.  
  1560.  
  1561.  
  1562.  
  1563.  
  1564.  
  1565.  
  1566.  
  1567.  
  1568.  
  1569.  
  1570.  
  1571.  
  1572.  
  1573.  
  1574.  
  1575.  
  1576.  
  1577.  
  1578.  
  1579.  
  1580.  
  1581.  
  1582.  
  1583.  
  1584. extern string now (void);
  1585.  
  1586.  
  1587.  
  1588. extern boolean float_ok (string);
  1589. extern boolean integer_ok (string);
  1590.  
  1591.  
  1592. extern const unsigned atou (string);
  1593.  
  1594.  
  1595.  
  1596. extern string itoa (int);
  1597. extern string utoa (unsigned);
  1598. extern string xdtoa (double);
  1599.  
  1600.  
  1601.  
  1602. extern struct _iobuf  *xfopen (string filename, string mode);
  1603. extern void xfclose (struct _iobuf  *, string filename);
  1604. extern void xfseek (struct _iobuf  *, long, int, string filename);
  1605. extern four_bytes xftell (struct _iobuf  *, string filename);
  1606.  
  1607.  
  1608. extern void xrename (string from, string to);
  1609.  
  1610.  
  1611.  
  1612. extern string basename (string name);
  1613.  
  1614.  
  1615.  
  1616.  
  1617.  
  1618. extern void safe_free (address *p);
  1619.  
  1620.  
  1621.  
  1622.  
  1623.  
  1624.  
  1625.  
  1626.  
  1627.  
  1628.  
  1629.  
  1630. extern const boolean epsilon_equal (real v1, real v2);
  1631.  
  1632.  
  1633. extern const real acosd (real);
  1634.  
  1635.  
  1636. extern const real distance (real_coordinate_type, real_coordinate_type);
  1637. extern const real int_distance (coordinate_type, coordinate_type);
  1638.  
  1639.  
  1640. extern const real slope (real_coordinate_type, real_coordinate_type);
  1641.  
  1642.  
  1643. extern const real_coordinate_type int_to_real_coord (coordinate_type);
  1644. extern const coordinate_type real_to_int_coord (real_coordinate_type);
  1645.  
  1646.  
  1647. extern const boolean points_adjacent_p (int row1, int col1, int r2, int c2);
  1648.  
  1649.  
  1650. extern void find_bounds (real values[], unsigned value_count,
  1651.                        real *the_min, real *the_max);
  1652.  
  1653.  
  1654. extern real *map_to_unit (real * values, unsigned value_count);
  1655.  
  1656.  
  1657.  
  1658.  
  1659.  
  1660.  
  1661. extern string substring (string source, const unsigned start,
  1662.                          const unsigned limit);
  1663.  
  1664.  
  1665. extern string lowercasify (string s);
  1666.  
  1667.  
  1668.  
  1669.  
  1670.  
  1671.  
  1672.  
  1673.  
  1674.  
  1675.  
  1676.  
  1677. extern charcode_type parse_charcode (string s, boolean *valid);
  1678.  
  1679.  
  1680.  
  1681. extern charcode_type xparse_charcode (string s);
  1682.  
  1683.  
  1684.  
  1685.  
  1686.  
  1687.  
  1688.  
  1689. # 58 ".././include/config.h" 2
  1690.  
  1691.  
  1692.  
  1693. # 20 "pstype1.c" 2
  1694.  
  1695.  
  1696. # 1 ".././include/bounding-box.h" 1
  1697.  
  1698.  
  1699.  
  1700.  
  1701.  
  1702.  
  1703.  
  1704.  
  1705.  
  1706.  
  1707.  
  1708.  
  1709.  
  1710.  
  1711.  
  1712.  
  1713.  
  1714.  
  1715.  
  1716.  
  1717.  
  1718.  
  1719.  
  1720.  
  1721.  
  1722.  
  1723. typedef struct
  1724. {
  1725.   signed_4_bytes min_row, max_row;
  1726.   signed_4_bytes min_col, max_col;
  1727. } bounding_box_type;
  1728.  
  1729. typedef struct
  1730. {
  1731.   real min_row, max_row;
  1732.   real min_col, max_col;
  1733. } real_bounding_box_type;
  1734.  
  1735.  
  1736.  
  1737.  
  1738.  
  1739.  
  1740.  
  1741.  
  1742.  
  1743.  
  1744.  
  1745.  
  1746.  
  1747.  
  1748.  
  1749.  
  1750. extern const bounding_box_type dimensions_to_bb (dimensions_type);
  1751. extern const dimensions_type bb_to_dimensions (bounding_box_type);
  1752.  
  1753.  
  1754.  
  1755. extern void update_real_bounding_box (real_bounding_box_type *bb,
  1756.                                       real_coordinate_type p);
  1757. extern void update_bounding_box (bounding_box_type *bb, coordinate_type p);
  1758.  
  1759.  
  1760. # 22 "pstype1.c" 2
  1761.  
  1762. # 1 ".././include/bzr.h" 1
  1763.  
  1764.  
  1765.  
  1766.  
  1767.  
  1768.  
  1769.  
  1770.  
  1771.  
  1772.  
  1773.  
  1774.  
  1775.  
  1776.  
  1777.  
  1778.  
  1779.  
  1780.  
  1781.  
  1782.  
  1783.  
  1784.  
  1785.  
  1786.  
  1787.  
  1788. # 1 ".././include/font.h" 1
  1789.  
  1790.  
  1791.  
  1792.  
  1793.  
  1794.  
  1795.  
  1796.  
  1797.  
  1798.  
  1799.  
  1800.  
  1801.  
  1802.  
  1803.  
  1804.  
  1805.  
  1806.  
  1807.  
  1808.  
  1809.  
  1810. # 1 ".././include/bitmap.h" 1
  1811.  
  1812.  
  1813.  
  1814.  
  1815.  
  1816.  
  1817.  
  1818.  
  1819.  
  1820.  
  1821.  
  1822.  
  1823.  
  1824.  
  1825.  
  1826.  
  1827.  
  1828.  
  1829.  
  1830.  
  1831.  
  1832.  
  1833.  
  1834.  
  1835. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 1 3
  1836.  
  1837. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 1 3
  1838.  
  1839.  
  1840.  
  1841.  
  1842.  
  1843.  
  1844.  
  1845.  
  1846.  
  1847.  
  1848.  
  1849.  
  1850.  
  1851.  
  1852.  
  1853.  
  1854.  
  1855.  
  1856.  
  1857.  
  1858.  
  1859.  
  1860.  
  1861.  
  1862.  
  1863.  
  1864.  
  1865.  
  1866.  
  1867.  
  1868.  
  1869.  
  1870.  
  1871.  
  1872.  
  1873.  
  1874.  
  1875.  
  1876.  
  1877.  
  1878.  
  1879.  
  1880.  
  1881.  
  1882.  
  1883.  
  1884.  
  1885.  
  1886.  
  1887.  
  1888.  
  1889.  
  1890.  
  1891. # 85 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 3
  1892.  
  1893.  
  1894.  
  1895.  
  1896.  
  1897.  
  1898.  
  1899.  
  1900.  
  1901.  
  1902. # 137 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 3
  1903.  
  1904.  
  1905.  
  1906.  
  1907.  
  1908. # 2 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 2 3
  1909.  
  1910.  
  1911.  
  1912.  
  1913.  
  1914.  
  1915.  
  1916.  
  1917.  
  1918.  
  1919.  
  1920.  
  1921.  
  1922.  
  1923.  
  1924.  
  1925.  
  1926.  
  1927.  
  1928.  
  1929.  
  1930. # 80 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 3
  1931.  
  1932. # 25 ".././include/bitmap.h" 2
  1933.  
  1934.  
  1935.  
  1936.  
  1937.  
  1938.  
  1939.  
  1940.  
  1941.  
  1942.  
  1943.  
  1944.  
  1945. typedef struct
  1946. {
  1947.   dimensions_type dimensions;
  1948.   one_byte *bitmap;
  1949. } bitmap_type;
  1950.  
  1951.  
  1952.  
  1953.  
  1954.  
  1955.  
  1956.  
  1957.  
  1958.  
  1959.  
  1960.  
  1961.  
  1962.  
  1963.  
  1964.  
  1965.  
  1966.  
  1967.  
  1968.  
  1969.  
  1970.  
  1971.  
  1972.  
  1973.  
  1974.  
  1975.  
  1976. # 78 ".././include/bitmap.h"
  1977.  
  1978.  
  1979.  
  1980. extern bitmap_type new_bitmap (dimensions_type);
  1981.  
  1982.  
  1983. extern void free_bitmap (bitmap_type *);
  1984.  
  1985.  
  1986. extern bitmap_type copy_bitmap (bitmap_type bitmap);
  1987.  
  1988.  
  1989.  
  1990. extern bitmap_type extract_subbitmap (bitmap_type b, bounding_box_type bb);
  1991.  
  1992.  
  1993.  
  1994.  
  1995.  
  1996.  
  1997. extern const bounding_box_type bitmap_to_bb (const bitmap_type);
  1998.  
  1999.  
  2000.  
  2001.  
  2002.  
  2003.  
  2004. extern unsigned *bitmap_find_transitions (const one_byte *row, unsigned width);
  2005.  
  2006.  
  2007. extern void print_bounded_bitmap (struct _iobuf  *, bitmap_type, bounding_box_type);
  2008. extern void print_bitmap (struct _iobuf  *, bitmap_type);
  2009.  
  2010.  
  2011.  
  2012. # 22 ".././include/font.h" 2
  2013.  
  2014.  
  2015. # 1 ".././include/tfm.h" 1
  2016.  
  2017.  
  2018.  
  2019.  
  2020.  
  2021.  
  2022.  
  2023.  
  2024.  
  2025.  
  2026.  
  2027.  
  2028.  
  2029.  
  2030.  
  2031.  
  2032.  
  2033.  
  2034.  
  2035.  
  2036.  
  2037.  
  2038.  
  2039. # 1 ".././include/fix-num.h" 1
  2040.  
  2041.  
  2042.  
  2043.  
  2044.  
  2045.  
  2046.  
  2047.  
  2048.  
  2049.  
  2050.  
  2051.  
  2052.  
  2053.  
  2054.  
  2055.  
  2056.  
  2057.  
  2058.  
  2059.  
  2060.  
  2061.  
  2062.  
  2063.  
  2064.  
  2065.  
  2066. typedef long fix_word;
  2067.  
  2068.  
  2069.  
  2070.  
  2071. extern const real fix_to_real (fix_word);
  2072. extern const fix_word real_to_fix (real);
  2073.  
  2074.  
  2075. # 24 ".././include/tfm.h" 2
  2076.  
  2077. # 1 ".././include/list.h" 1
  2078.  
  2079.  
  2080.  
  2081.  
  2082.  
  2083.  
  2084.  
  2085.  
  2086.  
  2087.  
  2088.  
  2089.  
  2090.  
  2091.  
  2092.  
  2093.  
  2094.  
  2095.  
  2096.  
  2097.  
  2098.  
  2099.  
  2100.  
  2101.  
  2102. typedef struct
  2103. {
  2104.   address *list;
  2105.   unsigned size;
  2106. } list_type;
  2107.  
  2108.  
  2109.  
  2110.  
  2111.  
  2112.  
  2113.  
  2114.  
  2115.  
  2116.  
  2117.  
  2118.  
  2119.  
  2120.  
  2121.  
  2122. extern list_type list_init (void);
  2123. extern void list_free (list_type *);
  2124.  
  2125.  
  2126.  
  2127. extern address list_append (list_type *, unsigned element_size);
  2128.  
  2129.  
  2130.  
  2131.  
  2132.  
  2133. # 25 ".././include/tfm.h" 2
  2134.  
  2135.  
  2136.  
  2137.  
  2138.  
  2139.  
  2140. extern boolean tfm_open_input_file (string filename);
  2141. extern void tfm_close_input_file (void);
  2142.  
  2143.  
  2144. extern string tfm_input_filename (void);
  2145.  
  2146.  
  2147.  
  2148.  
  2149.  
  2150. extern boolean tfm_open_pl_output_file (string filename);
  2151. extern void tfm_close_pl_output_file (void);
  2152.  
  2153.  
  2154.  
  2155.  
  2156.  
  2157.  
  2158. extern void tfm_convert_pl (string tfm_name, boolean verbose);
  2159.  
  2160.  
  2161.  
  2162.  
  2163.  
  2164.  
  2165.  
  2166.  
  2167.  
  2168.  
  2169.  
  2170.  
  2171.  
  2172.  
  2173.  
  2174.  
  2175.  
  2176.  
  2177.  
  2178.  
  2179.  
  2180.  
  2181.  
  2182.  
  2183.  
  2184.  
  2185.  
  2186. typedef struct
  2187. {
  2188.   charcode_type first_charcode, last_charcode;
  2189.   four_bytes checksum;
  2190.   real design_size;
  2191.   string coding_scheme;
  2192.   unsigned parameter_count;
  2193.   real parameters[30 ];
  2194. } tfm_global_info_type;
  2195.  
  2196.  
  2197.  
  2198.  
  2199.  
  2200.  
  2201.  
  2202.  
  2203.  
  2204.  
  2205.  
  2206.  
  2207.  
  2208.  
  2209.  
  2210.  
  2211.  
  2212.  
  2213.  
  2214.  
  2215.  
  2216.  
  2217.  
  2218.  
  2219.  
  2220.  
  2221.  
  2222.  
  2223.  
  2224.  
  2225.  
  2226.  
  2227.  
  2228.  
  2229.  
  2230.  
  2231.  
  2232.  
  2233.  
  2234.  
  2235.  
  2236.  
  2237.  
  2238.  
  2239.  
  2240.  
  2241.  
  2242.  
  2243.  
  2244.  
  2245.  
  2246.  
  2247.  
  2248.  
  2249.  
  2250.  
  2251.  
  2252.  
  2253.  
  2254.  
  2255.  
  2256.  
  2257. extern tfm_global_info_type tfm_get_global_info (void);
  2258.  
  2259.  
  2260.  
  2261.  
  2262. extern unsigned tfm_get_checksum (void);
  2263. extern double tfm_get_design_size (void);
  2264. extern string tfm_get_coding_scheme (void);
  2265. extern double tfm_get_interword_space (void);
  2266. extern double tfm_get_x_height (void);
  2267.  
  2268.  
  2269.  
  2270. extern tfm_global_info_type tfm_init_global_info (void);
  2271.  
  2272.  
  2273.  
  2274.  
  2275.  
  2276. extern void tfm_put_global_info (tfm_global_info_type);
  2277.  
  2278.  
  2279.  
  2280.  
  2281.  
  2282.  
  2283.  
  2284.  
  2285.  
  2286.  
  2287. extern void tfm_set_header (string s, tfm_global_info_type *tfm_info);
  2288.  
  2289.  
  2290.  
  2291. extern void tfm_set_design_size (real design_size,
  2292.                                  tfm_global_info_type *tfm_info);
  2293.  
  2294.  
  2295.  
  2296.  
  2297.  
  2298. extern void tfm_set_fontdimens (string s, tfm_global_info_type *info);
  2299.  
  2300.  
  2301.  
  2302. extern unsigned tfm_fontdimen_number (string s);
  2303.  
  2304.  
  2305.  
  2306.  
  2307. extern string tfm_fontdimen_name (unsigned n);
  2308.  
  2309.  
  2310.  
  2311. extern void tfm_set_fontdimen (tfm_global_info_type *info, unsigned p, real v);
  2312.             
  2313.  
  2314.  
  2315. extern void tfm_set_fontsize (tfm_global_info_type *tfm_info);
  2316.  
  2317.  
  2318.  
  2319.  
  2320.  
  2321.  
  2322. typedef struct
  2323. {
  2324.   boolean exists;
  2325.   charcode_type code;
  2326.   real width, height, depth, italic_correction;
  2327.   fix_word fix_width, fix_height, fix_depth, fix_italic_correction;
  2328.   list_type kern;
  2329.   list_type ligature;
  2330. } tfm_char_type;
  2331.  
  2332.  
  2333.  
  2334.  
  2335.  
  2336.  
  2337.  
  2338.  
  2339.  
  2340.  
  2341.  
  2342.  
  2343.  
  2344.  
  2345.  
  2346.  
  2347.  
  2348.  
  2349.  
  2350.  
  2351.  
  2352.  
  2353.  
  2354.  
  2355.  
  2356.  
  2357. extern tfm_char_type *tfm_get_chars (void);
  2358.  
  2359.  
  2360.  
  2361. extern tfm_char_type *tfm_get_char (charcode_type code);
  2362.  
  2363.  
  2364.  
  2365.  
  2366. extern tfm_char_type tfm_new_char (void);
  2367. extern tfm_char_type *tfm_new_chars (void);
  2368.  
  2369.  
  2370.  
  2371. extern void tfm_put_chars (tfm_char_type *);
  2372.  
  2373.  
  2374. extern void tfm_put_char (tfm_char_type c);
  2375.  
  2376.  
  2377.  
  2378.  
  2379.  
  2380. typedef struct
  2381. {
  2382.   charcode_type character;
  2383.   charcode_type ligature;
  2384. } tfm_ligature_type;
  2385.  
  2386.  
  2387. typedef struct
  2388. {
  2389.   charcode_type character;
  2390.   real kern;
  2391. } tfm_kern_type;
  2392.  
  2393.  
  2394.  
  2395.  
  2396. extern real tfm_get_kern (tfm_char_type left, charcode_type right);
  2397.  
  2398.  
  2399.  
  2400.  
  2401. extern void tfm_set_kern (list_type *kern_list, charcode_type right, real k);
  2402.  
  2403.  
  2404.  
  2405. extern void tfm_set_ligature (list_type *lig_list, charcode_type right,
  2406.                   charcode_type ligature);
  2407.  
  2408.  
  2409. # 24 ".././include/font.h" 2
  2410.  
  2411.  
  2412.  
  2413.  
  2414.  
  2415.  
  2416.  
  2417. typedef struct
  2418. {
  2419.   real design_size;
  2420.   string comment;
  2421.   unsigned checksum;
  2422.   string filename;  
  2423. } bitmap_font_type;
  2424.  
  2425.  
  2426.  
  2427.  
  2428.  
  2429.  
  2430.  
  2431.  
  2432.  
  2433.  
  2434.  
  2435.  
  2436.  
  2437.  
  2438.  
  2439.  
  2440.  
  2441.  
  2442.  
  2443.  
  2444.  
  2445.  
  2446.  
  2447. extern bitmap_font_type get_bitmap_font (string font_name, unsigned dpi);
  2448.  
  2449.  
  2450.  
  2451.  
  2452.  
  2453. typedef struct
  2454. {
  2455.   bitmap_font_type bitmap_font;
  2456.   tfm_global_info_type tfm_font;
  2457.   string tfm_filename;
  2458. } font_info_type;
  2459.  
  2460.  
  2461.  
  2462.  
  2463.  
  2464.  
  2465.  
  2466.  
  2467.  
  2468.  
  2469.  
  2470.  
  2471.  
  2472.  
  2473.  
  2474.  
  2475.  
  2476.  
  2477.  
  2478.  
  2479.  
  2480.  
  2481.  
  2482.  
  2483. extern font_info_type get_font (string font_name, unsigned dpi);
  2484.  
  2485.  
  2486.  
  2487. extern void close_font (string font_name);
  2488.  
  2489.  
  2490.  
  2491.  
  2492.  
  2493.  
  2494.  
  2495.  
  2496. typedef struct
  2497. {
  2498.   charcode_type code;
  2499.   int set_width;
  2500.   fix_word tfm_width;
  2501.   bounding_box_type bb;
  2502.   bitmap_type bitmap;
  2503. } char_info_type;
  2504.  
  2505.  
  2506.  
  2507.  
  2508.  
  2509.  
  2510.  
  2511.  
  2512.  
  2513.  
  2514.  
  2515.  
  2516.  
  2517.  
  2518.  
  2519.  
  2520.  
  2521.  
  2522.  
  2523.  
  2524.  
  2525.  
  2526.  
  2527.  
  2528.  
  2529.  
  2530.  
  2531.  
  2532.  
  2533.  
  2534.  
  2535.  
  2536.  
  2537.  
  2538.  
  2539.  
  2540.  
  2541.  
  2542.  
  2543.  
  2544.  
  2545.  
  2546.  
  2547.  
  2548.  
  2549.  
  2550.  
  2551.  
  2552.  
  2553.  
  2554.  
  2555.  
  2556.  
  2557.  
  2558.  
  2559.  
  2560. extern char_info_type *get_char (string font_name, charcode_type code);
  2561.  
  2562.  
  2563.  
  2564. extern void print_char (struct _iobuf  *f, char_info_type c);
  2565.  
  2566.  
  2567.  
  2568. extern bitmap_type string_to_bitmap (string text,
  2569.                                      string font_name, unsigned dpi);
  2570.  
  2571.  
  2572.  
  2573.  
  2574. typedef enum { pk_format, gf_format } bitmap_format_type;
  2575.  
  2576. typedef struct
  2577. {
  2578.   bitmap_format_type bitmap_format;
  2579.   charcode_type code;
  2580.   one_byte *bytes;
  2581.   unsigned allocated;
  2582.   unsigned used;
  2583.   bounding_box_type bb;
  2584.   signed_4_bytes h_escapement;
  2585.   fix_word tfm_width;
  2586. } raw_char_type;
  2587.  
  2588.  
  2589.  
  2590.  
  2591.  
  2592.  
  2593.  
  2594.  
  2595.  
  2596.  
  2597.  
  2598.  
  2599.  
  2600.  
  2601.  
  2602.  
  2603.  
  2604.  
  2605.  
  2606.  
  2607.  
  2608.  
  2609.  
  2610.  
  2611. extern raw_char_type *get_raw_char (string font_name,
  2612.                                     charcode_type code);
  2613.  
  2614.  
  2615.  
  2616. extern void free_raw_char (raw_char_type *raw_char);
  2617.  
  2618.  
  2619.  
  2620.  
  2621.  
  2622.  
  2623.  
  2624.  
  2625.  
  2626.  
  2627.  
  2628.  
  2629. # 26 ".././include/bzr.h" 2
  2630.  
  2631. # 1 ".././include/spline.h" 1
  2632.  
  2633.  
  2634.  
  2635.  
  2636.  
  2637.  
  2638.  
  2639.  
  2640.  
  2641.  
  2642.  
  2643.  
  2644.  
  2645.  
  2646.  
  2647.  
  2648.  
  2649.  
  2650.  
  2651.  
  2652.  
  2653. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 1 3
  2654.  
  2655. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 1 3
  2656.  
  2657.  
  2658.  
  2659.  
  2660.  
  2661.  
  2662.  
  2663.  
  2664.  
  2665.  
  2666.  
  2667.  
  2668.  
  2669.  
  2670.  
  2671.  
  2672.  
  2673.  
  2674.  
  2675.  
  2676.  
  2677.  
  2678.  
  2679.  
  2680.  
  2681.  
  2682.  
  2683.  
  2684.  
  2685.  
  2686.  
  2687.  
  2688.  
  2689.  
  2690.  
  2691.  
  2692.  
  2693.  
  2694.  
  2695.  
  2696.  
  2697.  
  2698.  
  2699.  
  2700.  
  2701.  
  2702.  
  2703.  
  2704.  
  2705.  
  2706.  
  2707.  
  2708.  
  2709. # 85 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 3
  2710.  
  2711.  
  2712.  
  2713.  
  2714.  
  2715.  
  2716.  
  2717.  
  2718.  
  2719.  
  2720. # 137 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 3
  2721.  
  2722.  
  2723.  
  2724.  
  2725.  
  2726. # 2 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 2 3
  2727.  
  2728.  
  2729.  
  2730.  
  2731.  
  2732.  
  2733.  
  2734.  
  2735.  
  2736.  
  2737.  
  2738.  
  2739.  
  2740.  
  2741.  
  2742.  
  2743.  
  2744.  
  2745.  
  2746.  
  2747.  
  2748. # 80 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 3
  2749.  
  2750. # 22 ".././include/spline.h" 2
  2751.  
  2752.  
  2753.  
  2754.  
  2755.  
  2756.  
  2757. typedef enum
  2758. {
  2759.   LINEAR = 1, QUADRATIC = 2, CUBIC = 3
  2760. } polynomial_degree;
  2761.  
  2762.  
  2763.  
  2764.  
  2765.  
  2766.  
  2767.  
  2768. typedef struct
  2769. {
  2770.   real_coordinate_type v[4];     
  2771.   polynomial_degree degree;
  2772.   real linearity;
  2773. } spline_type;
  2774.  
  2775.  
  2776.  
  2777.  
  2778.  
  2779.  
  2780.  
  2781.  
  2782.  
  2783.  
  2784. extern spline_type new_spline (void);
  2785.  
  2786.  
  2787. extern void print_spline (struct _iobuf  *, spline_type);
  2788.  
  2789.  
  2790. extern real_coordinate_type evaluate_spline (spline_type spline, real t);
  2791.  
  2792.  
  2793.  
  2794.  
  2795.  
  2796. typedef struct
  2797. {
  2798.   spline_type *data;
  2799.   unsigned length;
  2800. } spline_list_type;
  2801.  
  2802.  
  2803.  
  2804.  
  2805.  
  2806.  
  2807.  
  2808.  
  2809.  
  2810.  
  2811.  
  2812.  
  2813.  
  2814.  
  2815.  
  2816.  
  2817.  
  2818.  
  2819.  
  2820.  
  2821.  
  2822.  
  2823.  
  2824. extern spline_list_type *new_spline_list (void);
  2825. extern spline_list_type *init_spline_list (spline_type);
  2826. extern void free_spline_list (spline_list_type *);
  2827.  
  2828.  
  2829. extern void append_spline (spline_list_type *s_list, spline_type s);
  2830.  
  2831.  
  2832. extern void concat_spline_lists (spline_list_type *s1, spline_list_type s2);
  2833.  
  2834.  
  2835.  
  2836.  
  2837.  
  2838. typedef struct
  2839. {
  2840.   spline_list_type *data;
  2841.   unsigned length;
  2842. } spline_list_array_type;
  2843.  
  2844.  
  2845.  
  2846.  
  2847.  
  2848.  
  2849.  
  2850.  
  2851.  
  2852. extern spline_list_array_type new_spline_list_array (void);
  2853. extern void free_spline_list_array (spline_list_array_type *);
  2854. extern void append_spline_list (spline_list_array_type *, spline_list_type);
  2855.  
  2856.  
  2857. # 27 ".././include/bzr.h" 2
  2858.  
  2859.  
  2860.  
  2861.  
  2862.  
  2863.  
  2864.  
  2865. extern boolean bzr_open_output_file (string filename);
  2866. extern boolean bzr_open_input_file (string filename);
  2867.  
  2868.  
  2869. extern void bzr_close_output_file (void);
  2870. extern void bzr_close_input_file (void);
  2871.  
  2872.  
  2873. typedef struct
  2874. {
  2875.   string comment;
  2876.   real design_size;
  2877. } bzr_preamble_type;
  2878.  
  2879.  
  2880.  
  2881.  
  2882.  
  2883.  
  2884.  
  2885.  
  2886.  
  2887.  
  2888. extern void bzr_put_preamble (bzr_preamble_type);
  2889.  
  2890.  
  2891.  
  2892.  
  2893.  
  2894.  
  2895. extern bzr_preamble_type bzr_get_preamble (void);
  2896.  
  2897.  
  2898.  
  2899. typedef struct
  2900. {
  2901.   charcode_type code;
  2902.   real set_width;
  2903.   real_bounding_box_type bb;
  2904.   spline_list_array_type shape;
  2905. } bzr_char_type;
  2906.  
  2907.  
  2908.  
  2909.  
  2910.  
  2911.  
  2912.  
  2913.  
  2914.  
  2915.  
  2916.  
  2917.  
  2918.  
  2919.  
  2920.  
  2921.  
  2922.  
  2923.  
  2924.  
  2925.  
  2926. extern void bzr_put_char (bzr_char_type);
  2927.  
  2928.  
  2929.  
  2930.  
  2931. extern bzr_char_type *bzr_get_next_char (void);
  2932.  
  2933.  
  2934.  
  2935.  
  2936. extern bzr_char_type *bzr_get_char (one_byte code);
  2937.  
  2938.  
  2939.  
  2940. typedef struct
  2941. {
  2942.   real_bounding_box_type font_bb;
  2943.   one_byte nchars;
  2944. } bzr_postamble_type;
  2945.  
  2946.  
  2947.  
  2948.  
  2949.  
  2950.  
  2951.  
  2952.  
  2953.  
  2954.  
  2955.  
  2956.  
  2957. extern void bzr_put_postamble (void);
  2958.  
  2959.  
  2960.  
  2961.  
  2962. extern bzr_postamble_type bzr_get_postamble (void);
  2963.  
  2964.  
  2965. # 23 "pstype1.c" 2
  2966.  
  2967. # 1 "char.h" 1
  2968.  
  2969.  
  2970.  
  2971.  
  2972.  
  2973.  
  2974.  
  2975.  
  2976.  
  2977.  
  2978.  
  2979.  
  2980.  
  2981.  
  2982.  
  2983.  
  2984.  
  2985.  
  2986.  
  2987.  
  2988.  
  2989.  
  2990. # 1 "input-ccc.h" 1
  2991.  
  2992.  
  2993.  
  2994.  
  2995.  
  2996.  
  2997.  
  2998.  
  2999.  
  3000.  
  3001.  
  3002.  
  3003.  
  3004.  
  3005.  
  3006.  
  3007.  
  3008.  
  3009.  
  3010.  
  3011.  
  3012.  
  3013.  
  3014.  
  3015.  
  3016.  
  3017.  
  3018. typedef struct
  3019. {
  3020.   real amount;
  3021.   boolean absolute;
  3022.   boolean valid;
  3023. } dimen_type;
  3024.  
  3025.  
  3026.  
  3027.  
  3028.  
  3029.  
  3030.  
  3031.  
  3032.  
  3033.  
  3034.  
  3035. typedef struct
  3036. {
  3037.   int opcode;
  3038.   boolean valid;
  3039.   union
  3040.   {
  3041.     charcode_type charcode;
  3042.     dimen_type dimen;
  3043.   } u;
  3044. } ccc_cmd_type;
  3045.  
  3046.  
  3047.  
  3048.  
  3049.  
  3050.  
  3051.  
  3052.  
  3053.  
  3054. typedef list_type ccc_cmd_list_type;
  3055.  
  3056.  
  3057. typedef ccc_cmd_list_type ccc_type;
  3058.  
  3059.  
  3060.  
  3061.  
  3062.  
  3063. typedef struct
  3064. {
  3065.   charcode_type code;
  3066.   string name;
  3067. } charname_type;
  3068.  
  3069.  
  3070.  
  3071.  
  3072. typedef struct
  3073. {
  3074.   int cap_height;
  3075.   int design_size;
  3076.   int em;
  3077.   int font_depth;
  3078.   int xheight;
  3079. } ccc_fontinfo_type;
  3080.  
  3081.  
  3082.  
  3083. extern struct _iobuf  *ccc_file;
  3084. extern string ccc_filename;
  3085. extern bzr_char_type **chars;
  3086. extern ccc_fontinfo_type ccc_fontinfo;
  3087. extern ccc_type *ccc_chars[];
  3088.  
  3089.  
  3090.  
  3091.  
  3092.  
  3093.  
  3094. extern ccc_type **parse_ccc_file
  3095.   (string name, bzr_char_type **chars, tfm_global_info_type *t,
  3096.    real design_size, boolean warn_p);
  3097.  
  3098.  
  3099. # 23 "char.h" 2
  3100.  
  3101.  
  3102. typedef enum { bzr_char_class, ccc_char_class } char_class_type;
  3103.  
  3104. typedef struct
  3105. {
  3106.   char_class_type tag;
  3107.   union
  3108.   {
  3109.     bzr_char_type *bzr_char;
  3110.     ccc_type *ccc_char;
  3111.   } u;
  3112. } char_type;
  3113.  
  3114.  
  3115.  
  3116.  
  3117.  
  3118.  
  3119.  
  3120. extern real oblique_angle;
  3121.  
  3122.  
  3123. extern spline_list_array_type oblique_splines (spline_list_array_type);
  3124.  
  3125.  
  3126.  
  3127.  
  3128. extern char_type **subr_chars (bzr_char_type *[], ccc_type *ccc_chars[],
  3129.                                charcode_type start, charcode_type end,
  3130.                                unsigned *subr_count);
  3131.  
  3132.  
  3133. extern void scale_char (bzr_char_type *, real scale_factor);
  3134.  
  3135.  
  3136. # 24 "pstype1.c" 2
  3137.  
  3138. # 1 ".././include/encoding.h" 1
  3139.  
  3140.  
  3141.  
  3142.  
  3143.  
  3144.  
  3145.  
  3146.  
  3147.  
  3148.  
  3149.  
  3150.  
  3151.  
  3152.  
  3153.  
  3154.  
  3155.  
  3156.  
  3157.  
  3158.  
  3159.  
  3160.  
  3161.  
  3162.  
  3163.  
  3164.  
  3165.  
  3166.  
  3167. typedef struct
  3168. {
  3169.   string name;
  3170.   list_type ligature;
  3171. } encoding_char_type;
  3172.  
  3173.  
  3174.  
  3175.  
  3176.  
  3177. typedef struct
  3178. {
  3179.   string coding_scheme;
  3180.   encoding_char_type encoding_char[ 256 ];
  3181. } encoding_info_type;
  3182.  
  3183.  
  3184.  
  3185.  
  3186.  
  3187.  
  3188.  
  3189.  
  3190.  
  3191.  
  3192.  
  3193.  
  3194.  
  3195.  
  3196.  
  3197.  
  3198.  
  3199.  
  3200.  
  3201.  
  3202.  
  3203.  
  3204.  
  3205. extern int encoding_number (encoding_info_type e_i, string name);
  3206.  
  3207.  
  3208.  
  3209.  
  3210.  
  3211.  
  3212.  
  3213. extern string coding_scheme_to_filename (string codingscheme);
  3214.  
  3215.  
  3216.  
  3217.  
  3218.  
  3219. extern encoding_info_type read_encoding_file (string filename);
  3220.  
  3221.  
  3222. # 25 "pstype1.c" 2
  3223.  
  3224. # 1 ".././include/hexify.h" 1
  3225.  
  3226.  
  3227.  
  3228.  
  3229.  
  3230.  
  3231.  
  3232.  
  3233.  
  3234.  
  3235.  
  3236.  
  3237.  
  3238.  
  3239.  
  3240.  
  3241.  
  3242.  
  3243.  
  3244.  
  3245.  
  3246.  
  3247.  
  3248.  
  3249.  
  3250.  
  3251.  
  3252. extern string hexify (one_byte *data, unsigned length);
  3253.  
  3254.  
  3255.  
  3256. # 26 "pstype1.c" 2
  3257.  
  3258.  
  3259. # 1 ".././include/varstring.h" 1
  3260.  
  3261.  
  3262.  
  3263.  
  3264.  
  3265.  
  3266.  
  3267.  
  3268.  
  3269.  
  3270.  
  3271.  
  3272.  
  3273.  
  3274.  
  3275.  
  3276.  
  3277.  
  3278.  
  3279.  
  3280.  
  3281.  
  3282.  
  3283.  
  3284.  
  3285. typedef struct
  3286. {
  3287.   unsigned allocated;
  3288.   unsigned used;
  3289.   string data;
  3290. } variable_string;
  3291.  
  3292.  
  3293.  
  3294.  
  3295.  
  3296.  
  3297.  
  3298.  
  3299.  
  3300.  
  3301.  
  3302.  
  3303. extern variable_string vs_init (void);
  3304.  
  3305.  
  3306. extern void vs_free (variable_string *);
  3307.  
  3308.  
  3309.  
  3310.  
  3311.  
  3312. extern void vs_set_char (variable_string *s, unsigned pos, char new_char);
  3313.  
  3314.  
  3315.  
  3316. extern void vs_append_char (variable_string *v, char new_char);
  3317.  
  3318.  
  3319. extern variable_string vs_concat (variable_string vs1, variable_string vs2);
  3320.  
  3321.  
  3322.  
  3323. # 28 "pstype1.c" 2
  3324.  
  3325. # 1 ".././include/vector.h" 1
  3326.  
  3327.  
  3328.  
  3329.  
  3330.  
  3331.  
  3332.  
  3333.  
  3334.  
  3335.  
  3336.  
  3337.  
  3338.  
  3339.  
  3340.  
  3341.  
  3342.  
  3343.  
  3344.  
  3345.  
  3346.  
  3347.  
  3348.  
  3349.  
  3350.  
  3351.  
  3352. typedef struct
  3353. {
  3354.   real dx, dy;
  3355. } vector_type;
  3356.  
  3357.  
  3358.  
  3359. extern const vector_type make_vector (const real_coordinate_type);
  3360.  
  3361.  
  3362. extern const real_coordinate_type vector_to_point (const vector_type);
  3363.  
  3364.  
  3365.  
  3366.  
  3367.  
  3368. extern const real magnitude (const vector_type);
  3369. extern const vector_type normalize (const vector_type);
  3370.  
  3371. extern const vector_type Vadd (const vector_type, const vector_type);
  3372. extern const real Vdot (const vector_type, const vector_type);
  3373. extern const vector_type Vmult_scalar (const vector_type, const real);
  3374. extern const real Vangle (const vector_type in, const vector_type out);
  3375.  
  3376.  
  3377.  
  3378.  
  3379. extern const real_coordinate_type Vadd_point
  3380.   (const real_coordinate_type, const vector_type);
  3381.  
  3382.  
  3383. extern const real_coordinate_type Vsubtract_point
  3384.   (const real_coordinate_type, const vector_type);
  3385.  
  3386.  
  3387.  
  3388. extern const coordinate_type Vadd_int_point
  3389.   (const coordinate_type, const vector_type);
  3390.  
  3391.  
  3392. extern const vector_type Vabs (const vector_type);
  3393.  
  3394.  
  3395.  
  3396.  
  3397.  
  3398.  
  3399. extern const vector_type Psubtract
  3400.   (const real_coordinate_type, const real_coordinate_type);
  3401.  
  3402.  
  3403.  
  3404.  
  3405.  
  3406.  
  3407.  
  3408.  
  3409.  
  3410.  
  3411.  
  3412.  
  3413.  
  3414.  
  3415.  
  3416.  
  3417. extern const vector_type IPsubtract
  3418.   (const coordinate_type, const coordinate_type);
  3419. extern const coordinate_type IPsubtractP
  3420.   (const coordinate_type, const coordinate_type);
  3421. extern const coordinate_type IPadd
  3422.   (const coordinate_type, const coordinate_type);
  3423. extern const coordinate_type IPmult_scalar (const coordinate_type, const int);
  3424. extern const real_coordinate_type IPmult_real
  3425.   (const coordinate_type, const real);
  3426. extern const boolean IPequal (const coordinate_type, const coordinate_type);
  3427.  
  3428.  
  3429. # 29 "pstype1.c" 2
  3430.  
  3431.  
  3432.  
  3433. # 1 "pstype1.h" 1
  3434.  
  3435.  
  3436.  
  3437.  
  3438.  
  3439.  
  3440.  
  3441.  
  3442.  
  3443.  
  3444.  
  3445.  
  3446.  
  3447.  
  3448.  
  3449.  
  3450.  
  3451.  
  3452.  
  3453.  
  3454.  
  3455.  
  3456.  
  3457.  
  3458.  
  3459.  
  3460.  
  3461.  
  3462.  
  3463. extern void pstype1_start_output (string output_name,
  3464.                   bzr_preamble_type, bzr_postamble_type);
  3465.  
  3466.  
  3467. extern void pstype1_output_bzr_subr (bzr_char_type);
  3468. extern void pstype1_output_ccc_subr (ccc_type, charcode_type, char_type *[]);
  3469.  
  3470.  
  3471. extern void pstype1_start_subrs (unsigned subr_count);
  3472.  
  3473.  
  3474. extern void pstype1_start_chars (unsigned char_count);
  3475.  
  3476.  
  3477. extern void pstype1_output_bzr_char (bzr_char_type, char_type *[]);
  3478. extern void pstype1_output_ccc_char (ccc_type, charcode_type, char_type *[]);
  3479.  
  3480.  
  3481. extern void pstype1_finish_output (void);
  3482.  
  3483.  
  3484. # 32 "pstype1.c" 2
  3485.  
  3486. # 1 "psutil.h" 1
  3487.  
  3488.  
  3489.  
  3490.  
  3491.  
  3492.  
  3493.  
  3494.  
  3495.  
  3496.  
  3497.  
  3498.  
  3499.  
  3500.  
  3501.  
  3502.  
  3503.  
  3504.  
  3505.  
  3506.  
  3507.  
  3508.  
  3509. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 1 3
  3510.  
  3511. # 1 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 1 3
  3512.  
  3513.  
  3514.  
  3515.  
  3516.  
  3517.  
  3518.  
  3519.  
  3520.  
  3521.  
  3522.  
  3523.  
  3524.  
  3525.  
  3526.  
  3527.  
  3528.  
  3529.  
  3530.  
  3531.  
  3532.  
  3533.  
  3534.  
  3535.  
  3536.  
  3537.  
  3538.  
  3539.  
  3540.  
  3541.  
  3542.  
  3543.  
  3544.  
  3545.  
  3546.  
  3547.  
  3548.  
  3549.  
  3550.  
  3551.  
  3552.  
  3553.  
  3554.  
  3555.  
  3556.  
  3557.  
  3558.  
  3559.  
  3560.  
  3561.  
  3562.  
  3563.  
  3564.  
  3565. # 85 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 3
  3566.  
  3567.  
  3568.  
  3569.  
  3570.  
  3571.  
  3572.  
  3573.  
  3574.  
  3575.  
  3576. # 137 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdarg.h" 3
  3577.  
  3578.  
  3579.  
  3580.  
  3581.  
  3582. # 2 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 2 3
  3583.  
  3584.  
  3585.  
  3586.  
  3587.  
  3588.  
  3589.  
  3590.  
  3591.  
  3592.  
  3593.  
  3594.  
  3595.  
  3596.  
  3597.  
  3598.  
  3599.  
  3600.  
  3601.  
  3602.  
  3603.  
  3604. # 80 "/usr/local/gnu/lib/gcc-lib/romp-aos/2.3.3/include/stdio.h" 3
  3605.  
  3606. # 23 "psutil.h" 2
  3607.  
  3608.  
  3609.  
  3610.  
  3611.  
  3612.  
  3613. typedef struct
  3614. {
  3615.   string family_name;
  3616.   string font_name;
  3617.   real interword_space;
  3618.   int italic_angle;  
  3619.   boolean monospace_p;
  3620.   int underline_position, underline_thickness;  
  3621.   int unique_id;
  3622.   string version;
  3623.   string weight;
  3624. } ps_font_info_type;
  3625.  
  3626.  
  3627.  
  3628.  
  3629. extern ps_font_info_type ps_set_font_info (void);
  3630.  
  3631.  
  3632.  
  3633. extern void ps_start_font (struct _iobuf  *f, ps_font_info_type ps_info,
  3634.                            string comment);
  3635.  
  3636.  
  3637.  
  3638. extern void ps_output_encoding (struct _iobuf  *, boolean char_output_p[]);
  3639.  
  3640.  
  3641. extern string ps_encoding_name (charcode_type n);
  3642.  
  3643.  
  3644.  
  3645. extern int ps_encoding_number (string name);
  3646.  
  3647.  
  3648. extern string ps_global_info;
  3649.  
  3650.  
  3651. # 33 "pstype1.c" 2
  3652.  
  3653.  
  3654. # 1 "ccc.h" 1
  3655. typedef union
  3656. {
  3657.   int int_val;
  3658.   real real_val;
  3659.   dimen_type dimen_val;
  3660.   charname_type charname_val;
  3661.   ccc_cmd_type cmd_val;
  3662.   ccc_cmd_list_type *cmd_list_val;
  3663. } YYSTYPE;
  3664.  
  3665.  
  3666.  
  3667.  
  3668.  
  3669.  
  3670.  
  3671.  
  3672.  
  3673.  
  3674.  
  3675.  
  3676.  
  3677.  
  3678.  
  3679.  
  3680.  
  3681.  
  3682.  
  3683.  
  3684.  
  3685. extern YYSTYPE yylval;
  3686. # 35 "pstype1.c" 2
  3687.  
  3688.  
  3689.  
  3690.  
  3691. static struct _iobuf  *ps_file;
  3692. static string ps_filename;
  3693.  
  3694.  
  3695.  
  3696. static real em_factor;
  3697.  
  3698.  
  3699. static real interword_space;
  3700.  
  3701.  
  3702.  
  3703. static boolean char_output_p[ 256 ];
  3704.  
  3705.  
  3706.  
  3707. static unsigned subr_number[255  + 1];
  3708.  
  3709.  
  3710.  
  3711.  
  3712.  
  3713. static variable_string charstring_buffer;
  3714.  
  3715.  
  3716. static variable_string pre_charstring_buffer;
  3717.  
  3718.  
  3719.  
  3720.  
  3721.  
  3722.  
  3723.  
  3724.  
  3725.  
  3726.  
  3727.  
  3728.  
  3729.  
  3730.  
  3731.  
  3732.  
  3733.  
  3734.  
  3735. typedef unsigned char type1_opcode;
  3736.  
  3737.  
  3738.  
  3739.  
  3740.  
  3741.  
  3742.  
  3743.  
  3744.  
  3745.  
  3746.  
  3747.  
  3748.  
  3749.  
  3750.  
  3751.  
  3752.  
  3753.  
  3754.  
  3755. static void absolute_cs_number (int, variable_string *);
  3756. static void begin_char (string);
  3757. static void end_char (real, real);
  3758. static void cs_byte (one_byte, variable_string *);
  3759. static variable_string cs_encrypt (variable_string);
  3760. static void cs_number (real, variable_string *);
  3761. static void init_charstring_buffers (void);
  3762. static void out_bb_char
  3763.   (real_bounding_box_type *, real_coordinate_type *, bzr_char_type);
  3764. static void out_curveto (real_coordinate_type *, spline_type);
  3765. static void out_lineto (real_coordinate_type *, real_coordinate_type);
  3766. static void out_move (real_coordinate_type *, real, real, boolean);
  3767. static void out_moveto (real_coordinate_type *, real_coordinate_type);
  3768. static void out_point (real_coordinate_type *, real_coordinate_type);
  3769. static void out_relative_cmd (real_coordinate_type *, real_coordinate_type,
  3770.                               type1_opcode, type1_opcode, type1_opcode);
  3771. static void output_bzr_body (bzr_char_type);
  3772. static real_bounding_box_type output_ccc_body (ccc_type, char_type **);
  3773. static void output_char_finish (real, real, charcode_type);
  3774. static boolean output_char_start (charcode_type);
  3775. static void output_charstring_buffers (string);
  3776. static void output_private_dict_1 (unsigned);
  3777. static void output_private_dict_2 (void);
  3778. static void output_subr_end (void);
  3779. static void output_subr_start (charcode_type);
  3780. static int points_to_adobes (real);
  3781.  
  3782.  
  3783.  
  3784.  
  3785.  
  3786.  
  3787. static int
  3788. points_to_adobes (real n)
  3789. {
  3790.   int n_in_adobes = ((int) ((int) (n * em_factor) + .5 * ((n * em_factor) > 0 ? 1 : (n * em_factor) < 0 ? -1 : 0) )) ;
  3791.   
  3792.   return n_in_adobes;
  3793. }
  3794.  
  3795.  
  3796.  
  3797.  
  3798.  
  3799.  
  3800. void
  3801. pstype1_start_output (string output_name,
  3802.               bzr_preamble_type pre, bzr_postamble_type post)
  3803. {
  3804.   ps_font_info_type ps_info = ps_set_font_info ();
  3805.  
  3806.    
  3807.   interword_space = ps_info.interword_space;
  3808.  
  3809.    
  3810.  
  3811.  
  3812.  
  3813.  
  3814.   ps_filename = extend_filename (output_name, "gsf");
  3815.   ps_file = xfopen (ps_filename, "w");
  3816.   
  3817.    
  3818.   do { fprintf (ps_file, "%%!FontType1-1.0: %s %s\n",  ps_info.font_name,  ps_info.version); } while (0) ;
  3819.  
  3820.   ps_start_font (ps_file, ps_info, ((pre).comment) );
  3821.   do { fprintf (ps_file, "%s\n", "/FontType 1 def"); } while (0)    ;
  3822.  
  3823.    
  3824.  
  3825.  
  3826.   do { fprintf (ps_file, "%s\n", "/FontMatrix [0.001 0 0 0.001 0 0] readonly def"); } while (0)    ; 
  3827.   em_factor = 1000.0 / ((pre).design_size) ;
  3828.   
  3829.    
  3830.  
  3831.   do { fprintf (ps_file, "/FontBBox {%d %d %d %d} def\n", 
  3832.         points_to_adobes (((((post).font_bb) ).min_col) ), 
  3833.         points_to_adobes (((((post).font_bb) ).min_row) ), 
  3834.         points_to_adobes (((((post).font_bb) ).max_col) ), 
  3835.         points_to_adobes (((((post).font_bb) ).max_row) ) ); } while (0) ;
  3836.  
  3837.    
  3838.  
  3839.  
  3840.   output_private_dict_1 (ps_info.unique_id);
  3841. }
  3842.  
  3843.  
  3844.  
  3845.  
  3846.   
  3847. void
  3848. pstype1_start_subrs (unsigned subr_count)
  3849. {
  3850.   do { fprintf (ps_file, "%s\n", "Private begin"); } while (0)    ;
  3851.   do { fprintf (ps_file, "/Subrs %d array \n",  subr_count); } while (0) ;
  3852. }
  3853.  
  3854.  
  3855.  
  3856.  
  3857. void
  3858. pstype1_output_bzr_subr (bzr_char_type c)
  3859. {
  3860.   output_subr_start (((c).code) );
  3861.   output_bzr_body (c);
  3862.   output_subr_end ();
  3863. }
  3864.  
  3865.  
  3866.  
  3867.  
  3868. void
  3869. pstype1_output_ccc_subr (ccc_type c, charcode_type code, char_type *subrs[])
  3870. {
  3871.   output_subr_start (code);
  3872.   output_ccc_body (c, subrs);
  3873.   output_subr_end ();
  3874. }
  3875.  
  3876.  
  3877.  
  3878.  
  3879.  
  3880.  
  3881.  
  3882.  
  3883.  
  3884.  
  3885.  
  3886.  
  3887.  
  3888.  
  3889.  
  3890.  
  3891. static void
  3892. output_subr_start (charcode_type code)
  3893. {
  3894.   static unsigned current_subr_number = 0;
  3895.   
  3896.   subr_number[code] = current_subr_number;
  3897.   do { fprintf (ps_file, "dup %d ",  current_subr_number++); } while (0) ;
  3898.   init_charstring_buffers ();
  3899. }
  3900.  
  3901.  
  3902.  
  3903.  
  3904. static void
  3905. output_subr_end ()
  3906. {
  3907.   cs_byte (11 , &charstring_buffer);
  3908.   output_charstring_buffers ("|" );
  3909. }
  3910.  
  3911.  
  3912.  
  3913.  
  3914.  
  3915.      
  3916. void
  3917. pstype1_start_chars (unsigned char_count)
  3918. {
  3919.   do { fprintf (ps_file, "%s\n", "|-"  " % Subrs"); } while (0)    ;
  3920.   do { fprintf (ps_file, "/CharStrings %d dict begin\n",  char_count + 2); } while (0) ;
  3921. }
  3922.  
  3923.  
  3924.  
  3925.  
  3926.  
  3927. void
  3928. pstype1_output_bzr_char (bzr_char_type c, char_type *subrs[])
  3929. {
  3930.   unsigned code = ((c).code) ;
  3931.   
  3932.   if (output_char_start (code))
  3933.     {
  3934.       if (subrs[code])
  3935.         do {    absolute_cs_number (subr_number[code], &charstring_buffer);    cs_byte (10 , &charstring_buffer);    } while (0) ;
  3936.       else
  3937.         output_bzr_body (c);
  3938.       
  3939.       output_char_finish (((((c).bb) ).min_col)  , ((c).set_width) , code);
  3940.     }
  3941. }
  3942.  
  3943.  
  3944.  
  3945.  
  3946.  
  3947. void
  3948. pstype1_output_ccc_char (ccc_type c, charcode_type code, char_type *subrs[])
  3949. {
  3950.   if (output_char_start (code))
  3951.     {
  3952.       if (subrs[code])
  3953.         do { fputs ("warning: ", (&_iob[2]) ) ; fprintf ((&_iob[2]) , "%s", "Sorry, CCC characters can't be subroutines yet"); fputs (".\n", (&_iob[2]) ); fflush ((&_iob[2]) ); } while (0)  ;
  3954.       else
  3955.         {
  3956.           real_bounding_box_type bb = output_ccc_body (c, subrs);
  3957.           output_char_finish (((bb).min_col) , ((bb).max_col) , code);
  3958.         }
  3959.     }
  3960. }
  3961.  
  3962.  
  3963.  
  3964.  
  3965. static boolean
  3966. output_char_start (charcode_type code)
  3967. {
  3968.   string charname = ps_encoding_name (code);
  3969.   boolean ok = !(strcmp (charname,  ".notdef") == 0) ;
  3970.   
  3971.   if (ok)
  3972.     begin_char (charname);
  3973.   
  3974.   return ok;
  3975. }
  3976.  
  3977.  
  3978.  
  3979.  
  3980.  
  3981.  
  3982.  
  3983.  
  3984. static void
  3985. begin_char (string name)
  3986. {
  3987.   do { fprintf (ps_file, "/%s\t",  name); } while (0) ;
  3988.  
  3989.    
  3990.  
  3991.  
  3992.   init_charstring_buffers ();
  3993. }
  3994.  
  3995.  
  3996.  
  3997.  
  3998. static void
  3999. output_char_finish (real lsb, real set_width, charcode_type code)
  4000. {
  4001.   end_char (lsb, set_width);
  4002.   char_output_p[code] = true;
  4003. }
  4004.  
  4005.  
  4006.  
  4007.  
  4008. static void
  4009. end_char (real lsb, real set_width)
  4010. {
  4011.   cs_number (lsb, &pre_charstring_buffer);
  4012.   cs_number (set_width, &pre_charstring_buffer);
  4013.   cs_byte (    13 , &pre_charstring_buffer);
  4014.  
  4015.   cs_byte (14 , &charstring_buffer);
  4016.   output_charstring_buffers ("|-" );
  4017. }
  4018.  
  4019.  
  4020.  
  4021. static void
  4022. output_bzr_body (bzr_char_type c)
  4023. {
  4024.   unsigned this_list;
  4025.   spline_list_array_type shape = ((c).shape) ;
  4026.   real_coordinate_type start = { 0.0, 0.0 };
  4027.   real_coordinate_type current = start;
  4028.  
  4029.    
  4030.  
  4031.  
  4032.   for (this_list = 0; this_list < ((shape).length) ;
  4033.        this_list++)
  4034.     {
  4035.       unsigned this_spline;
  4036.       spline_list_type list = (((shape).data) [ this_list]) ;
  4037.       spline_type first_spline = (((list).data) [ 0]) ;
  4038.  
  4039.        
  4040.       out_moveto (¤t, ((first_spline).v[0]) );
  4041.       
  4042.        
  4043.       for (this_spline = 0; this_spline < ((list).length) ;
  4044.            this_spline++)
  4045.         {
  4046.           spline_type s = (((list).data) [ this_spline]) ;
  4047.  
  4048.           if (((s).degree)  == LINEAR)
  4049.             out_lineto (¤t,     ((s).v[3]) );
  4050.           else
  4051.             out_curveto (¤t, s);
  4052.         }
  4053.       cs_byte ( 9 , &charstring_buffer);
  4054.     }
  4055.  
  4056.    
  4057.  
  4058.   out_moveto (¤t, start);
  4059. }
  4060.  
  4061.  
  4062.  
  4063.  
  4064.  
  4065.  
  4066.  
  4067. static real_bounding_box_type
  4068. output_ccc_body (ccc_type ccc_char, char_type **subrs)
  4069. {
  4070.   unsigned this_cmd;
  4071.   real_coordinate_type current = (real_coordinate_type) { 0.0, 0.0 };
  4072.   real_bounding_box_type bb
  4073.     = (real_bounding_box_type) { 3.40282347e+38F , 1.17549435e-38F , 3.40282347e+38F , 1.17549435e-38F  };
  4074.  
  4075.   for (this_cmd = 0; this_cmd < ((ccc_char).size) ; this_cmd++)
  4076.     { 
  4077.       ccc_cmd_type cmd = *(ccc_cmd_type *) ((ccc_char).list) [ this_cmd] ;
  4078.       
  4079.       switch (((cmd).opcode) )
  4080.         {
  4081.         case 260 :
  4082.           {
  4083.             char_type subr = *subrs[((cmd).u.charcode) ];
  4084.  
  4085.             if (((subr).tag)  == bzr_char_class)
  4086.               {
  4087.                 bzr_char_type bzr_char = *((subr).u.bzr_char) ;
  4088.                 
  4089.                 update_real_bounding_box (&bb, current);
  4090.                 out_move (¤t, ((((bzr_char).bb) ).min_col)  , 0.0,  false) ;
  4091.  
  4092.                 out_bb_char (&bb, ¤t, bzr_char);
  4093.  
  4094.                 out_move (¤t, (((bzr_char).set_width)  - ((((bzr_char).bb) ).max_col)  ) , 0.0,  false) ;
  4095.                 update_real_bounding_box (&bb, current);
  4096.               }
  4097.             else
  4098.                
  4099.  
  4100.  
  4101.  
  4102.  
  4103.               do { fputs ("warning: ", (&_iob[2]) ) ; fprintf ((&_iob[2]) , "%s", "Sorry, I can't `setchar' a CCC char yet"); fputs (".\n", (&_iob[2]) ); fflush ((&_iob[2]) ); } while (0)  ;
  4104.           }
  4105.           break;
  4106.  
  4107.         case 261 :
  4108.           {
  4109.             char_type subr = *subrs[((cmd).u.charcode) ];
  4110.  
  4111.             if (((subr).tag)  == bzr_char_class)
  4112.               out_bb_char (&bb, ¤t, *((subr).u.bzr_char) );
  4113.             else
  4114.               do { fputs ("warning: ", (&_iob[2]) ) ; fprintf ((&_iob[2]) , "%s", "Sorry, I can't `setcharbb' a CCC char yet"); fputs (".\n", (&_iob[2]) ); fflush ((&_iob[2]) ); } while (0)  ;
  4115.           }
  4116.           break;
  4117.  
  4118.         case 262 :
  4119.           out_move (¤t, (((cmd).u.dimen).amount)  , 0.0,  (((cmd).u.dimen).absolute)  ) ;
  4120.           break;
  4121.  
  4122.         case 263 :
  4123.           out_move (¤t, 0.0, (((cmd).u.dimen).amount)  ,  (((cmd).u.dimen).absolute)  ) ;
  4124.           break;
  4125.  
  4126.         default:
  4127.           do { fputs ("fatal: ", (&_iob[2]) ) ; fprintf ((&_iob[2]) , "Bad command %d in CCC character",  ((cmd).opcode) ); fputs (".\n", (&_iob[2]) ); exit (1); } while (0)  ;
  4128.     }
  4129.     }
  4130.   
  4131.   return bb;
  4132. }
  4133.  
  4134.  
  4135.  
  4136.  
  4137. static void
  4138. out_move (real_coordinate_type *current, real h, real v, boolean absolute)
  4139. {
  4140.   real_coordinate_type new
  4141.     = (real_coordinate_type) { current->x + h, current->y + v};
  4142.  
  4143.   if (absolute)
  4144.     do { fputs ("warning: ", (&_iob[2]) ) ; fprintf ((&_iob[2]) , "Move [by (%.2f,%.2f)] in absolute units unimplemented",  h,  v); fputs (".\n", (&_iob[2]) ); fflush ((&_iob[2]) ); } while (0)  ;
  4145.  
  4146.   out_moveto (current, new);
  4147.   *current = new;
  4148. }
  4149.  
  4150.  
  4151.  
  4152.  
  4153.  
  4154.  
  4155.  
  4156.  
  4157.  
  4158.  
  4159.  
  4160. static void
  4161. out_bb_char (real_bounding_box_type *bb, real_coordinate_type *current,
  4162.              bzr_char_type bzr_char)
  4163. {
  4164.    
  4165.   update_real_bounding_box (bb, ((real_coordinate_type) { current->x, current->y + (((((bzr_char).bb) ).min_row)  ) }) );
  4166.  
  4167.    
  4168.   do {    absolute_cs_number (subr_number[((bzr_char).code) ], &charstring_buffer);    cs_byte (10 , &charstring_buffer);    } while (0) ;
  4169.   
  4170.    
  4171.   out_move (current, (((((bzr_char).bb) ).max_col)  - ((((bzr_char).bb) ).min_col) ) , 0, false);
  4172.  
  4173.    
  4174.   update_real_bounding_box (bb, ((real_coordinate_type) { current->x, current->y + (((((bzr_char).bb) ).max_row)  ) }) );
  4175. }
  4176.  
  4177.  
  4178.  
  4179. static void
  4180. out_point (real_coordinate_type *current, real_coordinate_type p)
  4181. {
  4182.   cs_number (p.x - current->x, &charstring_buffer);
  4183.   cs_number (p.y - current->y, &charstring_buffer);
  4184.   *current = p;
  4185. }
  4186.  
  4187.  
  4188.  
  4189.  
  4190.  
  4191.  
  4192. static void
  4193. out_lineto (real_coordinate_type *current, real_coordinate_type p)
  4194. {
  4195.   out_relative_cmd (current, p,  5 ,  6 ,  7 );
  4196. }
  4197.  
  4198.  
  4199.  
  4200.  
  4201. static void
  4202. out_moveto (real_coordinate_type *current, real_coordinate_type p)
  4203. {
  4204.   out_relative_cmd (current, p, 21 , 22 ,  4 );
  4205. }
  4206.  
  4207.  
  4208.  
  4209.  
  4210.  
  4211.  
  4212. static void
  4213. out_relative_cmd (real_coordinate_type *current, real_coordinate_type p,
  4214.                   type1_opcode r_opcode, type1_opcode h_opcode,
  4215.                   type1_opcode v_opcode)
  4216. {
  4217.   boolean x_equal = epsilon_equal (p.x, current->x);
  4218.   boolean y_equal = epsilon_equal (p.y, current->y);
  4219.   
  4220.   if (x_equal)
  4221.     {  
  4222.  
  4223.  
  4224.       if (!y_equal)
  4225.         {
  4226.           cs_number (p.y - current->y, &charstring_buffer);
  4227.           cs_byte (v_opcode, &charstring_buffer);
  4228.           current->y = p.y;
  4229.         }
  4230.     }
  4231.   else if (y_equal)
  4232.     {
  4233.       cs_number (p.x - current->x, &charstring_buffer);
  4234.       cs_byte (h_opcode, &charstring_buffer);
  4235.       current->x = p.x;
  4236.     }
  4237.   else
  4238.     {
  4239.       out_point (current, p);
  4240.       cs_byte (r_opcode, &charstring_buffer);
  4241.     }
  4242. }
  4243.  
  4244.  
  4245.  
  4246.  
  4247.  
  4248. static void
  4249. out_curveto (real_coordinate_type *current, spline_type s)
  4250. {
  4251.    
  4252.   if (epsilon_equal (current->x,     ((s).v[1]) .x)
  4253.       && epsilon_equal (    ((s).v[2]) .y,     ((s).v[3]) .y))
  4254.     {
  4255.       cs_number (    ((s).v[1]) .y - current->y, &charstring_buffer);
  4256.       current->y =     ((s).v[1]) .y;
  4257.       out_point (current,     ((s).v[2]) );
  4258.       cs_number (    ((s).v[3]) .x - current->x, &charstring_buffer);
  4259.       current->x =     ((s).v[3]) .x;
  4260.       cs_byte (30 , &charstring_buffer);
  4261.     }
  4262.   
  4263.    
  4264.   else if (epsilon_equal (current->y,     ((s).v[1]) .y)
  4265.       && epsilon_equal (    ((s).v[2]) .x,     ((s).v[3]) .x))
  4266.     {
  4267.       cs_number (    ((s).v[1]) .x - current->x, &charstring_buffer);
  4268.       current->x =     ((s).v[1]) .x;
  4269.       out_point (current,     ((s).v[2]) );
  4270.       cs_number (    ((s).v[3]) .y - current->y, &charstring_buffer);
  4271.       current->y =     ((s).v[3]) .y;
  4272.       cs_byte (31 , &charstring_buffer);
  4273.     }
  4274.   
  4275.    
  4276.   else
  4277.     {
  4278.       out_point (current,     ((s).v[1]) );
  4279.       out_point (current,     ((s).v[2]) );
  4280.       out_point (current,     ((s).v[3]) );
  4281.       cs_byte ( 8 , &charstring_buffer);
  4282.     }
  4283. }
  4284.  
  4285.  
  4286.  
  4287. static void
  4288. init_charstring_buffers ()
  4289. {
  4290.   pre_charstring_buffer = vs_init ();
  4291.   charstring_buffer = vs_init ();
  4292. }
  4293.  
  4294.  
  4295.  
  4296.  
  4297. static void
  4298. cs_byte (one_byte b, variable_string *buffer)
  4299. {
  4300.   vs_append_char (buffer, b);
  4301. }
  4302.  
  4303.  
  4304.  
  4305.  
  4306.  
  4307. static void
  4308. cs_number (real n, variable_string *buffer)
  4309. {
  4310.   int n_in_adobes = points_to_adobes (n);
  4311.  
  4312.   absolute_cs_number (n_in_adobes, buffer);
  4313. }
  4314.  
  4315.  
  4316.  
  4317.  
  4318. static void
  4319. absolute_cs_number (int n, variable_string *buffer)
  4320. {
  4321.   if (-107 <= n && n <= 107)
  4322.     cs_byte (n + 139, buffer);
  4323.   else if (108 <= n && n <= 1131)
  4324.     {
  4325.       n -= 108;
  4326.       cs_byte (n / 256 + 247, buffer);
  4327.       cs_byte (n % 256, buffer);
  4328.     }
  4329.   else if (-1131 <= n && n <= -108)
  4330.     {
  4331.       n = -n - 108;
  4332.       cs_byte (n / 256 + 251, buffer);
  4333.       cs_byte (n % 256, buffer);
  4334.     }
  4335.   else
  4336.     {
  4337.       cs_byte (255, buffer);
  4338.       cs_byte ((n & 0xff000000) >> 24, buffer);
  4339.       cs_byte ((n & 0x00ff0000) >> 16, buffer);
  4340.       cs_byte ((n & 0x0000ff00) >> 8, buffer);
  4341.       cs_byte  (n & 0x000000ff, buffer);
  4342.     }
  4343. }
  4344.  
  4345.  
  4346.  
  4347.  
  4348.  
  4349.  
  4350.  
  4351.  
  4352.  
  4353. static variable_string
  4354. cs_encrypt (variable_string s)
  4355. {
  4356.   unsigned i;
  4357.   unsigned short cs_key = 4330;
  4358.   variable_string e = vs_init ();
  4359.  
  4360.   for (i = 0; i < ((s).used) ; i++)
  4361.     {
  4362.       unsigned char cipher = ((unsigned char) ((s).data) [i]) ^ (cs_key >> 8);
  4363.       cs_key = (cipher + cs_key) * 52845  + 22719 ;
  4364.       vs_append_char (&e, cipher);
  4365.     }
  4366.   
  4367.   return e;
  4368. }
  4369.  
  4370.  
  4371.  
  4372.  
  4373.  
  4374.  
  4375. static void
  4376. output_charstring_buffers (string end)
  4377. {
  4378.   variable_string encrypted_string;
  4379.   string hex_string;
  4380.  
  4381.   encrypted_string 
  4382.     = cs_encrypt (vs_concat (pre_charstring_buffer, charstring_buffer));
  4383.  
  4384.   hex_string = hexify (((encrypted_string).data) ,
  4385.                        ((encrypted_string).used) ); 
  4386.  
  4387.    
  4388.  
  4389.   do { fprintf (ps_file, "%d -| %s ",  ((encrypted_string).used) ,  hex_string); } while (0) ;
  4390.   do { fprintf (ps_file, "%s\n", end); } while (0)    ;
  4391.  
  4392.   free (hex_string);
  4393.   vs_free (&encrypted_string);
  4394.   vs_free (&pre_charstring_buffer);
  4395.   vs_free (&charstring_buffer);
  4396. }
  4397.  
  4398.  
  4399.  
  4400.  
  4401. void
  4402. pstype1_finish_output ()
  4403. {
  4404.   int space_encoding = ps_encoding_number ("space");
  4405.   
  4406.    
  4407.  
  4408.   if (space_encoding == -1 || !char_output_p[space_encoding])
  4409.     {
  4410.       begin_char ("space");
  4411.       end_char (0, interword_space);
  4412.       if (space_encoding != -1)
  4413.         char_output_p[space_encoding] = true;
  4414.     }
  4415.  
  4416.    
  4417.   begin_char (".notdef");
  4418.   end_char (0, 0);
  4419.  
  4420.    
  4421.  
  4422.   do { fprintf (ps_file, "%s\n", "currentdict end readonly % CharStrings"); } while (0)    ;
  4423.   do { fprintf (ps_file, "%s\n", "end % Private"); } while (0)    ;
  4424.   do { fprintf (ps_file, "%s\n", "def % CharStrings"); } while (0)    ;
  4425.  
  4426.    
  4427.   ps_output_encoding (ps_file, char_output_p);
  4428.   output_private_dict_2 ();
  4429.  
  4430.    
  4431.   do { fprintf (ps_file, "%s\n", "currentdict end definefont pop"); } while (0)    ;
  4432.   
  4433.   xfclose (ps_file, ps_filename);
  4434. }
  4435.  
  4436.  
  4437.  
  4438.  
  4439. static void
  4440. output_private_dict_1 (unsigned unique_id)
  4441. {
  4442.   do { fprintf (ps_file, "%s\n", "/Private 9 dict begin"); } while (0)    ;
  4443.   do { fprintf (ps_file, "%s\n", "  /MinFeature {16 16} def"); } while (0)    ;
  4444.   do { fprintf (ps_file, "%s\n", "  /password 5839 def"); } while (0)    ;
  4445.  
  4446.    
  4447.  
  4448.  
  4449.  
  4450.   do { fprintf (ps_file, "%s\n", "  /lenIV 0 def"); } while (0)    ;
  4451.  
  4452.   if (unique_id)
  4453.     do { fprintf (ps_file, "  /UniqueID %d def\n",  unique_id); } while (0) ;
  4454.  
  4455.    
  4456.  
  4457.  
  4458.  
  4459.  
  4460.  
  4461.   do { fprintf (ps_file, "%s\n", "  /-| {string currentfile exch readhexstring pop} readonly def"); } while (0)    ;
  4462.  
  4463.    
  4464.   do { fprintf (ps_file, "%s\n", "  /|- {readonly def} readonly def"); } while (0)    ;
  4465.  
  4466.    
  4467.   do { fprintf (ps_file, "%s\n", "  /|  {readonly put} readonly def"); } while (0)    ;
  4468.   
  4469.    
  4470.   do { fprintf (ps_file, "%s\n", "currentdict end def"); } while (0)    ;
  4471. }
  4472.  
  4473.  
  4474.  
  4475.  
  4476.  
  4477.  
  4478. static void
  4479. output_private_dict_2 ()
  4480. {
  4481.   do { fprintf (ps_file, "%s\n", "Private begin"); } while (0)    ;
  4482.   do { fprintf (ps_file, "%s\n", "  /BlueValues [] def"); } while (0)    ;
  4483.   do { fprintf (ps_file, "%s\n", "currentdict end /Private exch readonly def"); } while (0)    ;
  4484. }
  4485.  
  4486.