w32tex
About: TeX Live provides a comprehensive TeX system including all the major TeX-related programs, macro packages, and fonts that are free software. Windows sources.
  Fossies Dox: w32tex-src.tar.xz  ("unofficial" and yet experimental doxygen-generated source code documentation)  

dd.h
Go to the documentation of this file.
1 /*
2  * TEX Device Driver ver 2.02-
3  * copyright(c) 1988,89 by TSG, 1990- by SHIMA
4  * 1991 changed by hideki
5  *
6  * dd.h : common header file
7  *
8  */
9 #ifndef INC_DD_H
10 #define INC_DD_H
11 
12 #ifndef __STDIO_H
13 #include <stdio.h>
14 #endif
15 
16 /* reduce harmless warning messsages */
17 #if defined(MSVC) && !defined(_WARNING_)
18 #define _WARNING_
19 #pragma warning( disable : 4244 4018 4028 4102 4761 4146 4047 4305 4113 4245)
20 #endif
21 
22 #ifdef WIN32
23 #define WIN32G
24 #define STR_SEARCH
25 #define USE_COLOR
26 #define HYPERTEX
27 #define PLUG 1
28 #define DOUBLE_PAGE
29 #define DVI_ADD
30 #define USE_ETF
31 #endif
32 
33 #if defined(WIN32G) || defined(WIN32C)
34 #define USE_WINAPI
35 #define MAX_KPS_DEPTH 16
36 #elif defined(UNIX)
37 #define MAX_KPS_DEPTH 16
38 #endif
39 
40 #ifdef USE_WINAPI
41 #define USE_WINFONT
42 #endif
43 
44 #ifdef NOPS
45 #define NOPSFRAG
46 #endif
47 
48 int strlcmp(const char *, const char *);
49 
50 #ifndef MSVC
51 long filelength(int);
52 int strcmpi(const char *, const char *);
53 #ifndef GCC
54 char *stpcpy(char *, const char *);
55 #endif
56 #endif
57 
58 #if !defined(GCC1) || defined(UNIX)
59 #define GetCh() getch()
60 #define KbHit() kbhit()
61 #endif
62 
63 #ifdef UNIX
64 #define MAXPATH 256
65 #define MAXDRIVE 1
66 #define MAXDIR 256
67 #define MAXFILE 128
68 #define MAXEXT 128
69 #define O_BINARY 0
70 #define PATH_SEP '/'
71 #define DELIMITER ':'
72 #else
73 #define PATH_SEP '\\'
74 #define DELIMITER ';'
75 #endif
76 
77 #ifndef max
78 #define max(a,b) ( (a) > (b) ? (a) : (b) )
79 #define min(a,b) ( (a) < (b) ? (a) : (b) )
80 #endif
81 
82 /* standard definitons */
83 
84 #define uchar unsigned char
85 #define uint unsigned int
86 #define ulong unsigned long
87 typedef void (*void_func_ptr) ();
88 typedef int (*int_func_ptr) ();
89 typedef int (* COMP)(const void *, const void *);
90 
91 #ifdef FALSE
92 #undef FALSE
93 #endif
94 #ifdef TRUE
95 #undef TRUE
96 #endif
97 #ifdef BOOL
98 #undef BOOL
99 #endif
100 typedef enum{
101  FALSE = 0,
102  TRUE = 1
104 
105 #define NOTHING 0
106 #define FAILURE (-1)
107 #define NOMORE (-2)
108 
109 #ifndef SEEK_SET
110 #define SEEK_SET 0
111 #define SEEK_CUR 1
112 #define SEEK_END 2
113 #endif
114 
115 #if defined(LIPS3)||defined(ESCPAGE)
116 #define LBP
117 #endif
118 
119 #ifdef LBP
120 #define FDOWN
121 #else
122 #undef JDWN
123 #endif
124 
125 #if !defined(JDWN) && defined(JGAIJI)
126 #undef JGAIJI
127 #endif
128 
129 void Free0(void *);
130 
131 #ifdef WIN32
132 void Free(void *);
133 #define get_near_work(x) marea(x)
134 #else
135 #define Free(x) free(x)
137 #endif
138 
139 /* definitons for device driver */
140 
141 
142 //#ifdef GCC
143 #define far
144 #define huge
145 //#endif
146 
147 #define BUFFER uchar far
148 #define HUGE_BUF uchar huge
149  /* Both BUFFER pointer and HUGE_BUF pointer are 32bit-pointer.
150  * HUGE_BUF will be used for larger buffers ( correctly speaking,
151  * ones which keep more data than 64Kbytes ).
152  * And it is noteworthy that the pointers of these types are impossible
153  * to express continually ( ex. BUFFER *a, *b ), because they are not
154  * "typedef" but "#define." This foolish error is because of 8086CPU,
155  * which has only 16bit-pointer, so we must add "far" or "huge" for use of
156  * 32bit-pointer. However, "far" and "huge" are permitted to "typedef."
157  * How wonderful SEGMENT !!
158  */
159 #ifdef NOFLOAT
160 #define SIZE_PARA long
161 #else
162 #define SIZE_PARA double
163 #endif
164  /* This device driver calculate units with double.
165  */
166 #define F_SIZE_PARA long
167  /* This device driver calculate units with double.
168  */
169 #define PIXEL int
170 #define SCALED_PT long
171  /* the units of pixel and scaled-point
172  */
173 
174 #define HEADER_DEPTH 0xe0000L
175 #define FOOTER_DEPTH 0xe0000L
176  /* the header depth and the footer depth ( scaled point )
177  */
178 
179 typedef enum {
183 #ifdef VFD /* Fonts before JXL should be unscalable */
184  VFD_FONT,
185 #endif
186 #ifdef TTFONT /* European TrueType fonts (expand by dviout) */
187  CMTTF,
188 #endif
189 #ifdef USE_WINFONT /* Europian TrueType fonts (WinAPI) */
190  WINTT_FONT,
191 #endif
192 #ifdef VIRTUALFONT
193  VIRTUAL_FONT,
194 #endif
196 #ifdef BEZIERFONT
197  JG_FONT,
198 #endif
199 #ifdef TTFONT /* Japanese TrueType fonts (expand by dviout) */
200  TT_FONT,
201 #endif
202 #ifdef USE_WINFONT /* Japanese TrueType fonts (WinAPI) */
203  WINJTT_FONT,
204 #endif
205 #ifdef USE_ETF
206  ETF_FONT,
207 #endif
210 
211  /* FONT_TYPE shows the type of fonts */
212 
213 typedef enum {
216 
217  /* Direction at printing, HORIZONTAL normally.
218  */
219 
220 typedef enum {
224  EscapeQuit
226 
227  /* These values are returned by device-output module, which says
228  * what to do next.
229  */
230 
231 #define PREAMBLE struct PREAMBLE_REC far
232  /* Information about Preamble of a font-file
233  */
234 struct PREAMBLE_REC {
236  /* the size of the character, and the offset for typesetting.
237  */
239  /* the pointer of Raster-data buffer
240  */
241  long tfm_width;
243  /* equal width/8, raised decimal
244  */
246  /* the offset when lateral-Kanji used (when in pTeX tate mode)
247  */
249  /* the flag of rotation (when in pTeX tate mode)
250  */
251 };
252 
253 #define CHAR_INFO struct CHAR_INFO_REC far
254  /* This buffer is a linked-list one, which keeps pointers of unpacked
255  * fonts.
256  */
259  /* character code
260  */
263  /* needless to say? */
264  struct PREAMBLE_REC pre;
265  /* preamble of an unpacked font
266  */
267 };
268 
269 #define f_HUGE 0x8000
270 #define f_EMS 0x4000
271 
272 #define BUF_INFO struct BUF_INFO_REC
273  /* Information about buffers
274  */
275 struct BUF_INFO_REC {
279  /* Each means starting, current, and ending pointer of the buffer.
280  * Especially, 'end' means 'start+size', so the pointer above ( or
281  * which equals )'end' will be out of the buffer.
282  */
283  long size;
284  int flush;
285 };
286 
287 typedef struct {
288  long offset;
289  int number;
290 #ifdef HYPERTEX
291  int hyper0;
292 #endif
293 }
294 PAGE_INDEX;
295 /* _REC;
296 
297 #define PAGE_INDEX PAGE_INDEX_REC far
298 */
299 
300  /* page index buffer */
301 
302 #define DVIFILE_INFO struct DVIFILE_INFO_REC
303  /* Information about Preamble of DVI-file. ( to say the truth, this is
304  * the same thing as Preamble itself. So, you'd better see
305  * "TeX : The Program." )
306  */
309  char *file_name;
310  long post, last_bop;
311  long num, den, mag;
315 };
316 
317 #define DIMENSION struct DIMENSION_REC
318  /* Information about device-output
319  */
320 
322  int dpi;
323  /* is horizontal dot-per-inch ratio of the device
324  */
325  int DPI;
326  /* is vertical dot-per-inch ratio of the device .
327  */
329  /* These tell us the maximum size the device can output.
330  * They are represented by pixel-unit.
331  */
333  /* is the final size to be output to the device
334  */
336  /* These tell us the maximum size Bitmap-buffer can hold.
337  * oriented by text direction
338  */
340  /* These are the maxmum size directed in DVI-file.
341  */
342  int mag;
343  /* is the magnification for output. This is the same value as 'mag' in
344  * DVI-file ( so equal the one in DVI_INFO ), when no '-mag' & '-half'
345  * options directed.
346  */
347  int split;
348  /* Our Device-driver divides the text to several parts, if that can't
349  * be output at once. 'split' is the number of parts. Then, if 'split'
350  * holds '1', Device-driver will put the text at a time.
351  */
353  /* This shows the direction for output, responsing '-V' option.
354  * So there is no meaning for PREVIEWER.
355  */
357  /* is size-parameter for conversion pixel<-->scaled pt.
358  * ( equal "num * den / mag" )
359  */
361  /* the offset of the head of text. These are directed by '-X' and
362  * '-Y' options.
363  */
365  /* the index of file-offset of pages in dvifile
366  */
368  /* same as 'total_page' in DVI_INFO.
369  */
371  /* the starting and the ending page to print.
372  */
374  /* the maximal nombre page
375  */
376  int prt_type;
377  /* the type of the printer, ESC/P, PC-PR, PC-MN, LIPS3 or Previewer etc
378  */
379 };
380 
381 #define NO_PRN_OUT 0x1000
382 
383 #define OUTPUT_INFO struct OUTPUT_INFO_REC
384  /* Information about output. Interpreting-module and Device-output-module
385  * receive the pointer of this.
386  */
389  /* DVI-file pointer
390  */
392  /* the file-offset at the position the page starts from.
393  */
395  /* equal the one in DIMENSION.
396  */
398  /* the original point for output.
399  */
401  /* the size for output.; it is assigned for all the size of the text
402  * to be held in the buffer.
403  */
405  /* equal width/8 and height/8.
406  */
407  int split, page;
408  /* the current part and page.
409  */
411  /* Bitmap pointer
412  */
413 };
414 
415 typedef struct { /* KANJI fonts */
416  int width; /* width by dots (without counting K_DBL) */
417  int height; /* height by dots (without counting K_DBL) */
418  int size; /* size by bytes = (width+7)/8*height */
419  int base; /* number of dots under base line */
420  int fh; /* file handle number */
421  char *name; /* Kanji font file_name */
422 }
423 KFONT;
424 
425 typedef struct {
427  int id;
428  long width; /* character width */
429  long height; /* character height(length above the baseline) */
430  long depth; /* character depth (length under the baseline) */
431  long italic;
432  long glue;
433  long plus;
434  long minus;
435 }
436 JFM_DATA;
437 
438 #define KFONT_SIZE sizeof(KFONT)
439 
440 #define FONT_INFO struct FONT_INFO_REC far
441  /* Information about fonts. This is linked-list.
442  */
443 union EXT {
444  BUFFER *dir; /* PXL1001, PXL1002, PXL1003
445  address of the directory for PXLFONT */
446  KFONT *kdir; /* JLBP, JIS_FONT, JIS_PK, JIS_PKH, GAIJI */
447  int fh; /* JXL, PKD_FONT, VFD_FONT (file handle) */
448  /* ZS_FONT, JG_FONT, TT_FONT (use as ID) */
449  long count;
450 #ifdef VIRTUALFONT
451  FONT_INFO *local_font;
452 #endif
453 };
454 
455 #define CHAR_ROOT 8 /* should be a power of 2 */
456 #define MAX_NAME_LEN 128
457 
458 struct FONT_INFO_REC { /* 4*CHAR_ROOT + 46 = 78 bytes
459  + 4 = 82 bytes (FDOWN)
460  + 6 = 88 bytes (NTTRPL)*/
462  /* sent from dvi-file, when the font is defined.
463  */
465  /* type of font.
466  */
468  /* type of ETF_FONT.
469  */
470  int f_goth;
471  /* flag for gothic etc.
472  */
473  char *name;
474  /* the file-name of the font.
475  */
477  /* the pointer of unpacked data of the font.
478  * it is NULL, when data is unloaded or flushed.
479  */
481  /* the pointers of the first CHAR_INFO of the font.
482  * Also, it is NULL, when data is unloaded or flushed.
483  */
486 
488 
490  /* design size.
491  */
492  int dpi;
493  /* requested dpi
494  */
495  int sdpi;
496  /* substituted dpi
497  */
499  /* font name
500  */
502  /* equal NULL, when no next font.
503  */
505  /* equal NULL, when no former font
506  */
508  /* equal NULL, when no after font
509  */
510  int k_width;
511  /* normal allowable maximal width of Kanji character by bits
512  * counting k_scale
513  * in PTeX TATE-KUMI fonts, it shows height of fonts.
514  */
515  int k_height;
516  /* normal allowable maximal height of Kanji character by bits
517  * counting k_scale
518  * in PTeX TATE-KUMI fonts, it shows width of fonts.
519  */
520  int last;
521  /* last JIS CODE of Kanji font,
522  offset of character packet of Virtual Font
523  */
524  long c;
525  /* checksum (id)
526  */
527  union EXT ext;
528 
530 
531 #ifdef LBP
532  int lbp_font_inf; /*0-3bit:フォント番号-80H,
533  4,5:bold flag (0:normal, 1:1dot, 2:2dot)
534  6:ouline flag 8-15:フォント縦横比(0-200)*/
535 #endif
536 #ifdef FDOWN
537  uchar *d_flag;
538 #endif
539  void *vjfm; /* WINTT_FONT or VIRTUAL_FONT */
540 
541 #ifndef NO_NTTRPL
543  int pt_size;
545 #endif
546 #ifdef USE_SUBFONT
547  int sfd_id;
548 #endif
549 };
550 
551 #ifdef LBP
552 #ifdef FDOWN
553 typedef struct { /*ダウンロード情報*/
554  int assign_num; /*割当番号*/
555  int maxwidth; /*フォント最大幅*/
556  int maxheight; /*フォント最大高*/
557  int mincharcode; /*最小コード*/
558  int maxcharcode; /*最大コード*/
559  int numoffonts; /*ダウンロードしたフォントの数*/
560  long total_send; /*ダウンロードしたトータルバイト数*/
561  long total_off; /*実サイズを使う場合のバイト数の差*/
562  long total_mem; /*セルサイズで計ったトータルバイト数*/
563 }
564 DL_INFO;
565 
566 struct DJFONT_COUNT { /*和文フォントの文字の出現頻度情報
567  : 8 byte -> should be even size*/
568  unsigned short int code; /*文字コード*/
569  unsigned char font_code; /*フォント番号*/
570  unsigned char count; /*出現回数-1*/
571  unsigned short int after; /*次のノード*/
572  unsigned short int before; /*前のノード*/
573 };
574 
575 struct DJFONT_TABLE { /*和文フォントのダウンロードした文字情報: 5 byte*/
576  unsigned short int code; /*元の文字コード*/
577  unsigned char font_code; /*元のフォント番号*/
578  unsigned char new_code; /*ダウンロードで埋め込んだ文字コード*/
579  unsigned char new_font_code; /*ダウンロードで埋め込んだフォント番号*/
580 };
581 
582 #define DJFONT struct DJFONT_COUNT
583 #define DJTABLE struct DJFONT_TABLE
584 
585 struct REAL_SIZE { /*文字の左右の空白を削った実ボックスサイズ、左上が原点*/
586  int left; /*最左端のx-座標*/
587  int top; /*最上端のy-座標*/
588  int right; /*最右端のx-座標 + 1*/
589  int bottom; /*最下端のy-座標 + 1*/
590 };
591 
592 # endif/*FDOWN*/
593 
594 typedef struct {
595  void (*init) (void);
596  void (*init2) (int, int);
597  void (*end) (void);
598  void (*set_font) (FONT_INFO *, KFONT *, int, int, int);
599  void (*move_cap) (PIXEL, PIXEL);
600  void (*move_homepoint) (PIXEL, PIXEL);
601  void (*pre_put_char) (FONT_INFO *, PREAMBLE*, uint *, PIXEL *, PIXEL *);
602  void (*put_jis_font) (uint);
603  void (*put_dl_font) (uint);
604  long (*get_dlhsize) (int num);
605  void (*pre_download) (FONT_INFO *, DL_INFO *, int, int);
606  void (*download_rastor) (FONT_INFO *, DL_INFO *, uint, int);
607  void (*post_download) (FONT_INFO *, DL_INFO *);
608  void (*drawbox) (PIXEL, PIXEL, PIXEL, PIXEL, int);
609  void (*rotate) (int);
610  void (*tate_yoko) (int);
611  struct LIPS_LFONT *data;
612 } LBP_FUNC;
613 
614 struct LIPS_LFONT {
615  char *font_name;
616  int no;
617 };
618 
619 #endif /*LBP*/
620 
621 /* extern variables */
622 
623 extern BUF_INFO buffers[];
624 
625 extern FONT_INFO *first_font_info;
626 
627  /* the first position of the font-list.
628  */
629 
630 #define pk_buf_pointer (&buffers[1])
631 
632  /* the buffer for pk-font-data loaded from disk directly.
633  */
634 
635 #define raster_buf_pointer (&buffers[0])
636 
637  /* the buffer for the raster-data of unpacked fonts.
638  */
639 
640 #define bitmap_buf_pointer (&buffers[2])
641 
642  /* Virtual VRAM buffer. Interpret-module will draw the figure onto this.
643  * This is casted to HUGE_BUF when used.
644  */
645 
646  /* Buffer for working in far heap: default size = 0
647  */
648 
649  /* Buffer for working in EMS
650  */
651 
652 #ifdef GCC
653 #define COMMON_SIZE 0x4000
654 #else
655 #define COMMON_SIZE 2560
656 #endif
657 extern char common_work[COMMON_SIZE];
658 #define tmp_buf common_work
659 
660  /* Buffer for working in near heap
661  COMMON_SIZE should not be smaller than 2048
662  */
663 
665 extern FILE *fopenf(char*, char*);
666 
667 #define F_GOTH 1
668 #define K_DBL 2
669 #define F_LBP 4
670 #define F_DWN 8
671 #define F_FILL 0x10
672 #define F_SHADOW 0x20
673 #define F_OUTLINE 0x40
674 #define F_GGOTH 0x80
675 #define K_SCALE 0x100
676 #define F_TATE 0x200
677 #define K_SCALE2 0x400
678 #define F_TOPT 0x800
679 #define F_DTATE 0x1000
680 #define F_DYOKO 0x2000
681 
682 #define F_ATTR (F_GOTH|F_FILL|F_SHADOW|F_OUTLINE|F_GGOTH)
683 
684 /* Definition for DVI commands */
685 
686 #define SET_CHAR_0 0
687 #define SET1 128
688 #define SET_RULE 132
689 #define PUT1 133
690 #define PUT_RULE 137
691 #define NOP 138
692 #define BOP 139
693 #define EOP 140
694 #define PUSH 141
695 #define POP 142
696 #define RIGHT1 143
697 #define W0 147
698 #define W1 148
699 #define X0 152
700 #define X1 153
701 #define DOWN1 157
702 #define Y0 161
703 #define Y1 162
704 #define Z0 166
705 #define Z1 167
706 #define FNT_NUM_0 171
707 #define FNT1 235
708 #define XXX1 239
709 #define FNT_DEF_1 243
710 #define PRE 247
711 #define POST 248
712 #define POST_POST 249
713 #define EOFNC 255 /* end of func */
714 
715 /* Units for length : mm, inch(in), point(pt), scaled point(sp) and macros
716  * for them.
717  * by K.Yoshizawa Dec. 26, 1992
718  */
719 #define ROUND(X) (int)((X)+0.5) /* 浮動小数点数→整数時の四捨五入 */
720 
721 #define MM_PER_IN 25.4 /* 1in = 25.4mm */
722 #define PT_PER_IN 72.27 /* 1in = 72.27pt */
723 #define BP_PER_IN 72.0 /* 1in = 72.0pt */
724 
725 #define IN_PER_MM (1.0/MM_PER_IN)
726 #define PT_PER_MM (PT_PER_IN/MM_PER_IN)
727 
728 #define PT_PER_BP (PT_PER_IN/BP_PER_IN)
729 
730 #define MM_PER_PT (MM_PER_IN/PT_PER_IN)
731 #define IN_PER_PT (1.0/PT_PER_IN)
732 
733 #define MM_TO_SP(X) PT_TO_SP(MM_TO_PT(X))
734 #define IN_TO_SP(X) PT_TO_SP(IN_TO_PT(X))
735 #define BP_TO_SP(X) PT_TO_SP(BP_TO_PT(X))
736 #define PT_TO_SP(X) ((SCALED_PT)ROUND((double)(X)*65536.0))
737 
738 #define IN_TO_MM(X) ((X)*MM_PER_IN)
739 #define PT_TO_MM(X) ((X)*MM_PER_PT)
740 #define SP_TO_MM(X) PT_TO_MM(SP_TO_PT(X))
741 
742 #define MM_TO_IN(X) ((X)*IN_PER_MM)
743 #define PT_TO_IN(X) ((X)*IN_PER_PT)
744 #define SP_TO_IN(X) PT_TO_IN(SP_TO_PT(X))
745 
746 #define MM_TO_PT(X) ((X)*PT_PER_MM)
747 #define IN_TO_PT(X) ((X)*PT_PER_IN)
748 #define BP_TO_PT(X) ((X)*PT_PER_BP)
749 #define SP_TO_PT(X) ((double)(X)/65536.0)
750 
751 /*
752  * type of machine
753  */
754 #define M_PC98 0
755 #define M_DOSV 1
756 #define M_J31 2
757 
758 #define M_DBCS 1
759 
760 #define issjis1(x) ((x)>=0x81&&(x)<=0xfc&&((x)<=0x9f||(x)>=0xe0))
761 
762 #endif // INC_DD_H
763 /* end of file : dd.h */
int maxwidth
Definition: afm2pfm.c:100
int code
Definition: aftopl.c:52
#define count(a)
Definition: aptex-macros.h:781
#define before
Definition: aptex-macros.h:256
#define set_font
Definition: aptex-macros.h:458
#define BUFFER
Definition: dd.h:147
void Free0(void *)
void(* void_func_ptr)()
Definition: dd.h:87
unsigned char * get_work(unsigned int)
#define CHAR_ROOT
Definition: dd.h:455
#define PIXEL
Definition: dd.h:169
#define HUGE_BUF
Definition: dd.h:148
#define COMMON_SIZE
Definition: dd.h:655
char * stpcpy(char *, const char *)
Definition: stpcpy.c:36
FONT_TYPE
Definition: dd.h:179
@ JIS_FONT
Definition: dd.h:208
@ ONDEMAND
Definition: dd.h:180
@ GAIJI
Definition: dd.h:208
@ JIS_PK
Definition: dd.h:208
@ SUBJFM
Definition: dd.h:195
@ JLBP
Definition: dd.h:208
@ ONDEMAND2
Definition: dd.h:180
@ JXL
Definition: dd.h:181
@ SUBTFM
Definition: dd.h:182
@ PXL1002
Definition: dd.h:181
@ UNKNOWN
Definition: dd.h:180
@ PXL1001
Definition: dd.h:181
@ PXL1003
Definition: dd.h:181
@ ZS_FONT
Definition: dd.h:195
@ ROM_FONT
Definition: dd.h:195
@ PKD_FONT
Definition: dd.h:181
@ UNRESOLVE
Definition: dd.h:180
@ JIS_PKH
Definition: dd.h:208
@ PK_FONT
Definition: dd.h:181
BOOL
Definition: dd.h:100
@ FALSE
Definition: dd.h:101
@ TRUE
Definition: dd.h:102
#define SIZE_PARA
Definition: dd.h:162
#define SCALED_PT
Definition: dd.h:170
PRINT_DIR
Definition: dd.h:213
@ VERTICAL
Definition: dd.h:214
@ HORIZONTAL
Definition: dd.h:214
int strlcmp(const char *, const char *)
int(* COMP)(const void *, const void *)
Definition: dd.h:89
struct BUF_INFO_REC buffers[]
#define PREAMBLE
Definition: dd.h:231
long filelength(int)
#define Free(x)
Definition: dd.h:135
#define FONT_INFO
Definition: dd.h:440
FILE * fopenf(char *, char *)
NEXT_ACTION
Definition: dd.h:220
@ NextPageDirection
Definition: dd.h:223
@ NextPage
Definition: dd.h:222
@ PreviousPage
Definition: dd.h:222
@ EscapeQuit
Definition: dd.h:224
@ NextPart
Definition: dd.h:221
@ PreviousPart
Definition: dd.h:221
#define uint
Definition: dd.h:85
int strcmpi(const char *, const char *)
#define BUF_INFO
Definition: dd.h:272
#define CHAR_INFO
Definition: dd.h:253
unsigned char * get_near_work(unsigned int)
char common_work[2560]
int(* int_func_ptr)()
Definition: dd.h:88
#define F_SIZE_PARA
Definition: dd.h:166
struct FONT_INFO_REC * first_font_info
#define MAX_NAME_LEN
Definition: dd.h:456
struct rect data
Definition: dvipdfm.c:64
#define PAGE_INDEX
Definition: dvispc.c:124
static void
Definition: fpif.c:118
unsigned char uchar
Definition: unzcrash.c:37
@ right
Definition: annotate.c:15
int int double double double char double char * top
Definition: gdfx.h:19
int int double double double char double char char * bottom
Definition: gdfx.h:20
int num
Definition: disdvi.c:621
unsigned int uint
Definition: types.h:72
struct const_name font_name[]
Definition: picttoppm.c:492
set set set set set set set macro pixldst1 abits if abits op else op endif endm macro pixldst2 abits if abits op else op endif endm macro pixldst4 abits if abits op else op endif endm macro pixldst0 abits op endm macro pixldst3 mem_operand op endm macro pixldst30 mem_operand op endm macro pixldst abits if abits elseif abits elseif abits elseif abits elseif abits pixldst0 abits else pixldst0 abits pixldst0 abits pixldst0 abits pixldst0 abits endif elseif abits else pixldst0 abits pixldst0 abits endif elseif abits else error unsupported bpp *numpix else pixst endif endm macro pixld1_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl mov asr adds SRC_WIDTH_FIXED bpl add asl else error unsupported endif endm macro pixld2_s mem_operand if mov asr add asl add asl mov asr sub UNIT_X add asl mov asr add asl add asl mov asr add UNIT_X add asl else pixld1_s mem_operand pixld1_s mem_operand endif endm macro pixld0_s mem_operand if asr adds SRC_WIDTH_FIXED bpl add asl elseif asr adds SRC_WIDTH_FIXED bpl add asl endif endm macro pixld_s_internal mem_operand if mem_operand pixld2_s mem_operand pixdeinterleave basereg elseif mem_operand elseif mem_operand elseif mem_operand elseif mem_operand pixld0_s mem_operand else pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else pixld0_s mem_operand pixld0_s mem_operand endif elseif mem_operand else error unsupported mem_operand if bpp mem_operand endif endm macro vuzp8 reg2 vuzp d d &reg2 endm macro vzip8 reg2 vzip d d &reg2 endm macro pixdeinterleave basereg basereg basereg basereg basereg endif endm macro pixinterleave basereg basereg basereg basereg basereg endif endm macro PF boost_increment endif if endif PF tst PF addne PF subne PF cmp ORIG_W if endif if endif if endif PF subge ORIG_W PF subges if endif if endif if endif endif endm macro cache_preload_simple endif if dst_r_bpp pld[DST_R, #(PREFETCH_DISTANCE_SIMPLE *dst_r_bpp/8)] endif if mask_bpp pld init[MASK, #(PREFETCH_DISTANCE_SIMPLE *mask_bpp/8)] endif endif endm macro fetch_mask_pixblock pixld mask_basereg pixblock_size MASK endm macro ensure_destination_ptr_alignment process_pixblock_tail_head if beq irp skip1 beq endif SRC MASK if dst_r_bpp DST_R else add endif PF add sub src_basereg pixdeinterleave mask_basereg pixdeinterleave dst_r_basereg process_pixblock_head pixblock_size cache_preload_simple process_pixblock_tail pixinterleave dst_w_basereg irp beq endif process_pixblock_tail_head tst beq irp if pixblock_size chunk_size tst beq pixld_src SRC pixld MASK if DST_R else pixld DST_R endif if src_basereg pixdeinterleave mask_basereg pixdeinterleave dst_r_basereg process_pixblock_head if pixblock_size cache_preload_simple endif process_pixblock_tail pixinterleave dst_w_basereg irp if pixblock_size chunk_size tst beq if DST_W else pixst DST_W else mov ORIG_W endif add lsl if lsl endif if lsl endif lsl endif lsl endif lsl endif subs mov DST_W if regs_shortage str endif bge start_of_loop_label endm macro generate_composite_function
#define rotate(D, num)
Definition: md5.c:38
lft_cell * left
Definition: routines.h:73
static char no[99]
Definition: scanid.c:41
long size
Definition: dd.h:283
unsigned char * end
Definition: dd.h:278
int flush
Definition: dd.h:284
unsigned char * start
Definition: dd.h:276
unsigned char * current
Definition: dd.h:277
struct CHAR_INFO_REC * former_char
Definition: dd.h:262
struct PREAMBLE_REC pre
Definition: dd.h:264
unsigned int code
Definition: dd.h:258
struct CHAR_INFO_REC * next_char
Definition: dd.h:261
int x_offset
Definition: dd.h:360
int buf_width
Definition: dd.h:335
PRINT_DIR print_direction
Definition: dd.h:352
int output_width
Definition: dd.h:332
int max_width
Definition: dd.h:328
double size_para
Definition: dd.h:356
int mag
Definition: dd.h:342
PAGE_INDEX * page_index
Definition: dd.h:364
int max_nombre_page
Definition: dd.h:373
int text_width
Definition: dd.h:339
int prt_type
Definition: dd.h:376
int total_page
Definition: dd.h:367
int split
Definition: dd.h:347
int max_height
Definition: dd.h:328
int dpi
Definition: dd.h:322
int end_page
Definition: dd.h:370
int start_page
Definition: dd.h:370
int text_height
Definition: dd.h:339
int y_offset
Definition: dd.h:360
int buf_height
Definition: dd.h:335
int DPI
Definition: dd.h:325
int output_height
Definition: dd.h:332
long last_bop
Definition: dd.h:310
char * file_name
Definition: dd.h:309
long num
Definition: dd.h:311
long post
Definition: dd.h:310
int stack_depth
Definition: dd.h:313
FILE * file_ptr
Definition: dd.h:308
long den
Definition: dd.h:311
long l
Definition: dd.h:312
long u
Definition: dd.h:312
long mag
Definition: dd.h:311
int total_page
Definition: dd.h:314
int pt_size
Definition: dd.h:543
int code_offset
Definition: dd.h:542
struct FONT_INFO_REC * after_font
Definition: dd.h:507
int font_code
Definition: dd.h:461
struct FONT_INFO_REC * before_font
Definition: dd.h:504
struct CHAR_INFO_REC * char_info[8]
Definition: dd.h:480
int k_height
Definition: dd.h:515
long des_para
Definition: dd.h:489
int k_width
Definition: dd.h:510
int texpk_pos
Definition: dd.h:529
int dpi
Definition: dd.h:492
int family_code
Definition: dd.h:544
long size_para
Definition: dd.h:487
int f_goth
Definition: dd.h:470
void * vjfm
Definition: dd.h:539
struct FONT_INFO_REC * next_font
Definition: dd.h:501
struct FONT_INFO_REC * k_top
Definition: dd.h:484
char n[128]
Definition: dd.h:498
FONT_TYPE font_type
Definition: dd.h:464
long c
Definition: dd.h:524
int sdpi
Definition: dd.h:495
FONT_TYPE etf_type
Definition: dd.h:467
char * name
Definition: dd.h:473
union EXT ext
Definition: dd.h:527
int last
Definition: dd.h:520
unsigned char * pk
Definition: dd.h:476
struct FONT_INFO_REC * k_next
Definition: dd.h:485
Definition: dd.h:425
long plus
Definition: dd.h:433
long minus
Definition: dd.h:434
int char_type
Definition: dd.h:426
long width
Definition: dd.h:428
int id
Definition: dd.h:427
long depth
Definition: dd.h:430
long height
Definition: dd.h:429
long italic
Definition: dd.h:431
long glue
Definition: dd.h:432
Definition: dd.h:415
char * name
Definition: dd.h:421
int width
Definition: dd.h:416
int base
Definition: dd.h:419
int height
Definition: dd.h:417
int size
Definition: dd.h:418
int fh
Definition: dd.h:420
int h_0
Definition: dd.h:397
unsigned char * bitmap_ptr
Definition: dd.h:410
int page
Definition: dd.h:407
int v_0
Definition: dd.h:397
int width
Definition: dd.h:400
PRINT_DIR print_direction
Definition: dd.h:394
int split
Definition: dd.h:407
int byte_height
Definition: dd.h:404
FILE * dvifile_ptr
Definition: dd.h:388
long page_start_offset
Definition: dd.h:391
int height
Definition: dd.h:400
int byte_width
Definition: dd.h:404
Definition: dd.h:287
int number
Definition: dd.h:289
long offset
Definition: dd.h:288
int shift_right_ptex
Definition: dd.h:245
int height
Definition: dd.h:235
int rotate_ptex
Definition: dd.h:248
long tfm_width
Definition: dd.h:241
unsigned char * raster
Definition: dd.h:238
int width
Definition: dd.h:235
int depth_offset
Definition: dd.h:235
int shift_up_ptex
Definition: dd.h:245
int pitch_offset
Definition: dd.h:235
int byte_width
Definition: dd.h:242
#define FILE
Definition: t1stdio.h:34
return() int(((double) *(font_tbl[cur_fnt].wtbl+(int)(*(font_tbl[cur_fnt].char_wi+(int)(ch - font_tbl[cur_fnt].char_f)% 256)))/(double)(1L<< 20)) *(double) font_tbl[cur_fnt].scale)
@ after
Definition: texnodes.h:374
Definition: dd.h:443
int fh
Definition: dd.h:447
KFONT * kdir
Definition: dd.h:446
long count
Definition: dd.h:449
unsigned char * dir
Definition: dd.h:444
#define end(cp)
Definition: zic.c:71