1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 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 107 108 109 110 111 112 113 114 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 140 141 142 143 144
|
/* Pascal WEB macros */
#define flushstring() do { \
strptr--; \
poolptr = strstart[strptr]; \
} while (0)
#define objinfo(n) objtab[n].int0
#define nozip 0
#define zipwritting 1
#define zipfinish 2
#define pdf1bp 65782
#define pdfroom(n) \
if (pdfptr + n >= pdfbufsize) \
pdfflush()
#define pdfout(c) do { \
pdfroom(1); \
pdfbuf[pdfptr++] = c; \
} while (0)
#define pdfoffset() (pdfgone + pdfptr)
/* pdftexlib macros */
#ifdef WIN32
#define M_PI 3.1415926535897932385E0 /*Hex 2^ 1 * 1.921FB54442D18 */
#define M_PI_2 1.5707963267948966192E0 /*Hex 2^ 0 * 1.921FB54442D18 */
#define M_PI_4 7.8539816339744830962E-1 /*Hex 2^-1 * 1.921FB54442D18 */
#endif
#define MAX_CHAR_CODE 255
#define MOVE_CHARS_OFFSET 160
#define PRINTF_BUF_SIZE 1024
#define check_buf(size, buf_size) \
if ((size) >= buf_size - 2) \
pdftex_fail("buffer overflow [%i bytes]", (int)(buf_size))
#define append_char_to_buf(c, p, buf, buf_size) do { \
if (c == 9) \
c = 32; \
if (c == 13 || c == EOF) \
c = 10; \
if (c != ' ' || (p > buf && p[-1] != 32)) { \
check_buf(p - buf, buf_size); \
*p++ = c; \
} \
} while (0)
#define append_eol(p, buf, buf_size) do { \
if (p - buf > 1 && p[-1] != 10) { \
check_buf(p - buf, buf_size); \
*p++ = 10; \
} \
if (p - buf > 2 && p[-2] == 32) { \
p[-2] = 10; \
p--; \
} \
*p = 0; \
} while (0)
#define remove_eol(p, buf) do { \
p = strend(buf) - 1; \
if (*p == 10) \
*p = 0; \
} while (0)
#define skip(p, c) if (*p == c) p++
#define entry_room(t, s) do { \
if (t##_tab == 0) { \
t##_max = (s); \
t##_tab = xtalloc(t##_max, t##_entry); \
t##_ptr = t##_tab; \
} \
else if (t##_ptr - t##_tab == t##_max) { \
t##_tab = xretalloc(t##_tab, t##_max + (s), t##_entry); \
t##_ptr = t##_tab + t##_max; \
t##_max += (s); \
} \
} while (0)
#define xfree(p) do { if (p != 0) free(p); p = 0; } while (0)
#define strend(s) strchr(s, 0)
#define xtalloc XTALLOC
#define xretalloc XRETALLOC
#define ASCENT_CODE 0
#define CAPHEIGHT_CODE 1
#define DESCENT_CODE 2
#define FONTNAME_CODE 3
#define ITALIC_ANGLE_CODE 4
#define STEMV_CODE 5
#define XHEIGHT_CODE 6
#define FONTBBOX1_CODE 7
#define FONTBBOX2_CODE 8
#define FONTBBOX3_CODE 9
#define FONTBBOX4_CODE 10
#define MAX_KEY_CODE (FONTBBOX1_CODE + 1)
#define FONT_KEYS_NUM (FONTBBOX4_CODE + 1)
#define F_INCLUDED 0x01
#define F_SUBSETTED 0x02
#define F_TRUETYPE 0x04
#define F_BASEFONT 0x08
#define F_NOPARSING 0x10
#define F_PGCFONT 0x20
#define set_included(fm) ((fm)->type |= F_INCLUDED)
#define set_subsetted(fm) ((fm)->type |= F_SUBSETTED)
#define set_truetype(fm) ((fm)->type |= F_TRUETYPE)
#define set_basefont(fm) ((fm)->type |= F_BASEFONT)
#define set_noparsing(fm) ((fm)->type |= F_NOPARSING)
#define set_pcgfont(fm) ((fm)->type |= F_PGCFONT)
#define unset_included(fm) ((fm)->type &= ~F_INCLUDED)
#define unset_subsetted(fm) ((fm)->type &= ~F_SUBSETTED)
#define unset_truetype(fm) ((fm)->type &= ~F_TRUETYPE)
#define unset_basefont(fm) ((fm)->type &= ~F_BASEFONT)
#define unset_noparsing(fm) ((fm)->type &= ~F_NOPARSING)
#define unset_pcgfont(fm) ((fm)->type &= ~F_PGCFONT)
#define is_included(fm) ((fm)->type & F_INCLUDED)
#define is_subsetted(fm) ((fm)->type & F_SUBSETTED)
#define is_truetype(fm) ((fm)->type & F_TRUETYPE)
#define is_basefont(fm) ((fm)->type & F_BASEFONT)
#define is_noparsing(fm) ((fm)->type & F_NOPARSING)
#define fm_slant(fm) (fm)->slant
#define fm_extend(fm) (fm)->extend
#define fm_fontfile(fm) (fm)->ff_name
#define is_reencoded(fm) ((fm)->encoding >= 0)
#define is_t1fontfile(fm) (fm_fontfile(fm) != 0 && !is_truetype(fm))
#define is_pcgfont(fm) (fm_fontfile(fm) == 0 && !is_basefont(fm))
#define need_encoding_obj(fm) (is_reencoded(fm) || is_subsetted(fm))
#define unset_fontfile(fm) xfree((fm)->ff_name)
#define set_cur_file_name(s) \
cur_file_name = s; \
packfilename(maketexstring(cur_file_name), getnullstr(), getnullstr())
|