summaryrefslogtreecommitdiff
path: root/Build/source/texk/web2c/mpdir/mplib.h
diff options
context:
space:
mode:
Diffstat (limited to 'Build/source/texk/web2c/mpdir/mplib.h')
-rw-r--r--Build/source/texk/web2c/mpdir/mplib.h300
1 files changed, 300 insertions, 0 deletions
diff --git a/Build/source/texk/web2c/mpdir/mplib.h b/Build/source/texk/web2c/mpdir/mplib.h
new file mode 100644
index 00000000000..363836a994d
--- /dev/null
+++ b/Build/source/texk/web2c/mpdir/mplib.h
@@ -0,0 +1,300 @@
+/*
+Copyright (c) 2006 Taco Hoekwater <taco@elvenkind.com>
+
+This file is part of pdfTeX.
+
+pdfTeX is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2 of the License, or
+(at your option) any later version.
+
+pdfTeX is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with pdfTeX; if not, write to the Free Software
+Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+$Id$
+*/
+
+#ifndef MPOSTLIB
+# define MPOSTLIB
+
+/* WEB2C macros and prototypes */
+# if !defined(MPOSTCOERCE)
+# define EXTERN extern
+# include "mpd.h"
+# endif
+
+/* pdftexlib macros */
+# include "mpmac.h"
+
+# include "avlstuff.h"
+
+
+/* pdftexlib type declarations */
+typedef struct {
+ const char *pdfname;
+ const char *t1name;
+ float value;
+ boolean valid;
+} key_entry;
+
+typedef struct {
+ boolean loaded; /* the encoding has been loaded? */
+ char *name; /* encoding file name */
+ char *encname; /* encoding true name */
+ integer objnum; /* object number */
+ char **glyph_names;
+ integer tounicode; /* object number of associated ToUnicode entry */
+} enc_entry;
+
+struct _subfont_entry;
+typedef struct _subfont_entry subfont_entry;
+
+struct _subfont_entry {
+ char *infix; /* infix for this subfont, eg "01" */
+ long charcodes[256]; /* the mapping for this subfont as read from sfd */
+ subfont_entry *next;
+};
+
+typedef struct {
+ char *name; /* sfd name, eg "Unicode" */
+ subfont_entry *subfont; /* linked list of subfonts */
+} sfd_entry;
+
+typedef struct {
+ char *name; /* glyph name */
+ long code; /* -1 = undefined; -2 = multiple codes, stored
+ as string in unicode_seq; otherwise unicode value */
+ char *unicode_seq; /* multiple unicode sequence */
+} glyph_unicode_entry;
+
+typedef struct {
+ char *tfm_name; /* TFM file name */
+ char *ps_name; /* PostScript name */
+ integer flags; /* font flags */
+ char *ff_name; /* font file name */
+ char *subset_tag; /* pseudoUniqueTag for subsetted font */
+ enc_entry *encoding; /* pointer to corresponding encoding */
+ fontnumber tfm_num; /* number of the TFM refering this entry */
+ unsigned short type; /* font type (T1/TTF/...) */
+ short slant; /* SlantFont */
+ short extend; /* ExtendFont */
+ integer ff_objnum; /* FontFile object number */
+ integer fn_objnum; /* FontName/BaseName object number */
+ integer fd_objnum; /* FontDescriptor object number */
+ char *charset; /* string containing used glyphs */
+ boolean all_glyphs; /* embed all glyphs? */
+ unsigned short links; /* link flags from tfm_tree and ps_tree */
+ short tfm_avail; /* flags whether a tfm is available */
+ short pid; /* Pid for truetype fonts */
+ short eid; /* Eid for truetype fonts */
+ subfont_entry *subfont; /* subfont mapping */
+} fm_entry;
+
+typedef struct {
+ char *ff_name; /* base name of font file */
+ char *ff_path; /* full path to font file */
+} ff_entry;
+
+typedef short shalfword;
+typedef struct {
+ integer charcode, cwidth, cheight, xoff, yoff, xescape, rastersize;
+ halfword *raster;
+} chardesc;
+
+/* pdftexlib variable declarations */
+extern boolean fontfile_found;
+extern boolean is_otf_font;
+extern boolean true_dimen;
+extern boolean write_ttf_glyph_names;
+extern char **t1_glyph_names, *t1_builtin_glyph_names[];
+extern char *cur_file_name;
+extern const char notdef[];
+extern integer t1_length1, t1_length2, t1_length3;
+extern integer ttf_length;
+extern key_entry font_keys[];
+extern strnumber last_tex_string;
+extern size_t last_ptr_index;
+extern char fontname_buf[];
+
+/* pdftexlib function prototypes */
+
+/* epdf.c */
+extern integer get_fontfile_num (int);
+extern integer get_fontname_num (int);
+extern void epdf_free (void);
+extern int is_type1 (fm_entry *);
+
+/* mapfile.c */
+extern char *mk_basename (char *);
+extern char *mk_exname (char *, int);
+extern fm_entry *lookup_fontmap (char *);
+extern boolean hasfmentry (fontnumber);
+extern fontnumber tfmoffm (fmentryptr);
+extern void checkextfm (strnumber, integer);
+extern void fm_free (void);
+extern void fm_read_info (void);
+extern ff_entry *check_ff_exist (fm_entry *);
+extern void pdfmapfile (integer);
+extern void pdfmapline (integer);
+extern void pdfinitmapfile (string map_name);
+extern fm_entry *new_fm_entry (void);
+extern void delete_fm_entry (fm_entry *);
+extern int avl_do_entry (fm_entry *, int);
+
+/* papersiz.c */
+extern integer myatodim (char **);
+extern integer myatol (char **);
+
+/* pkin.c */
+extern int readchar (boolean, chardesc *);
+
+/* subfont.c */
+extern void sfd_free (void);
+extern boolean handle_subfont_fm (fm_entry *, int);
+
+/* tounicode.c */
+extern void glyph_unicode_free (void);
+extern void deftounicode (strnumber, strnumber);
+extern integer write_tounicode (char **, char *);
+
+/* utils.c */
+extern boolean str_eq_cstr (strnumber, char *);
+extern char *makecstring (integer);
+extern int xfflush (FILE *);
+extern int xgetc (FILE *);
+extern int xputc (int, FILE *);
+extern scaled extxnoverd (scaled, scaled, scaled);
+extern size_t xfwrite (void *, size_t size, size_t nmemb, FILE *);
+extern strnumber getresnameprefix (void);
+extern strnumber maketexstring (const char *);
+extern integer fb_offset (void);
+extern void fb_flush (void);
+extern void fb_putchar (eightbits b);
+extern void fb_seek (integer);
+extern void libpdffinish (void);
+extern char *makecfilename (strnumber s);
+extern void make_subset_tag (fm_entry *, char **, int);
+extern void pdf_printf (const char *, ...);
+extern void pdf_puts (const char *);
+extern void pdftex_fail (const char *, ...);
+extern void pdftex_warn (const char *, ...);
+extern void setjobid (int, int, int, int);
+extern void mp_printf (const char *, ...);
+extern void writestreamlength (integer, integer);
+extern char *convertStringToPDFString (const char *in, int len);
+extern void printID (strnumber);
+extern void printcreationdate ();
+extern void printmoddate ();
+extern void escapename (poolpointer in);
+extern void escapestring (poolpointer in);
+extern void escapehex (poolpointer in);
+extern void unescapehex (poolpointer in);
+extern void getcreationdate ();
+extern void getfilemoddate (strnumber s);
+extern void getfilesize (strnumber s);
+extern void getmd5sum (strnumber s, boolean file);
+extern void getfiledump (strnumber s, int offset, int length);
+extern void matchstrings (strnumber s, strnumber t, int subcount,
+ boolean icase);
+extern void getmatch (int i);
+extern void makepdftexbanner (void);
+extern void initstarttime ();
+extern void removepdffile (void);
+extern void garbagewarning (void);
+extern void stripspaces (char *p);
+extern void initversionstring (char **versions);
+extern int newcolorstack (integer s, integer literal_mode, boolean pagestart);
+extern int colorstackused ();
+extern integer colorstackset (int colstack_no, integer s);
+extern integer colorstackpush (int colstack_no, integer s);
+extern integer colorstackpop (int colstack_no);
+extern integer colorstackcurrent (int colstack_no);
+extern integer colorstackskippagestart (int colstack_no);
+extern void checkpdfsave (int cur_h, int cur_v);
+extern void checkpdfrestore (int cur_h, int cur_v);
+extern void pdfshipoutbegin (boolean shipping_page);
+extern void pdfshipoutend (boolean shipping_page);
+extern void pdfsetmatrix (poolpointer in, scaled cur_h, scaled cur_v);
+extern void matrixtransformpoint (scaled x, scaled y);
+extern void matrixtransformrect (scaled llx, scaled lly, scaled urx,
+ scaled ury);
+extern boolean matrixused ();
+extern void matrixrecalculate (scaled urx);
+extern scaled getllx ();
+extern scaled getlly ();
+extern scaled geturx ();
+extern scaled getury ();
+
+/* vfpacket.c */
+extern eightbits packetbyte (void);
+extern integer newvfpacket (fontnumber);
+extern void poppacketstate (void);
+extern void pushpacketstate (void);
+extern void startpacket (fontnumber, integer);
+extern void storepacket (integer, integer, integer);
+extern void vf_free (void);
+
+/* writeenc.c */
+extern boolean indexed_enc (fm_entry *);
+extern enc_entry *add_enc (char *);
+extern void enc_free (void);
+extern void read_enc (enc_entry *);
+extern void write_enc (char **, enc_entry *, integer);
+
+/* writefont.c */
+extern boolean dopsfont (fontnumber);
+
+/* writeimg.c */
+extern boolean checkimageb (integer);
+extern boolean checkimagec (integer);
+extern boolean checkimagei (integer);
+extern boolean ispdfimage (integer);
+extern integer epdforigx (integer);
+extern integer epdforigy (integer);
+extern integer imageheight (integer);
+extern integer imagepages (integer);
+extern integer imagewidth (integer);
+extern integer imagexres (integer);
+extern integer imageyres (integer);
+extern integer readimage (strnumber, integer, strnumber, integer, integer,
+ integer, integer);
+extern void deleteimage (integer);
+extern void img_free (void);
+extern void updateimageprocset (integer);
+extern void writeimage (integer);
+extern integer imagecolordepth (integer img);
+
+/* writejbig2.c */
+extern void flushjbig2page0objects ();
+
+/* writet1.c */
+extern boolean t1_subset (char *, char *, unsigned char *);
+extern void load_enc (char *, char **, char **);
+extern void writet1 (int, fm_entry *);
+extern void t1_free (void);
+
+#define bitfile psfile
+
+/* writet3.c */
+extern void writet3 (int, fontnumber);
+extern scaled getpkcharwidth (fontnumber, scaled);
+
+/* writettf.c */
+extern void writettf (void);
+extern void writeotf (void);
+extern void ttf_free (void);
+
+/* writezip.c */
+extern void writezip (boolean);
+
+/* avlstuff.c */
+extern void avlputobj (integer, integer);
+extern integer avlfindobj (integer, integer, integer);
+
+#endif /* MPOSTLIB */