summaryrefslogtreecommitdiff
path: root/src/type1/t1tokens.h
diff options
context:
space:
mode:
authorWerner Lemberg <wl@gnu.org>2000-07-04 03:37:18 +0000
committerWerner Lemberg <wl@gnu.org>2000-07-04 03:37:18 +0000
commitaa8c7da0bfe3a4e93ac380478fbad7d35c0be0d0 (patch)
tree71fa5a3d084589f05baa8e1c205e61c5d188c995 /src/type1/t1tokens.h
parentd0c36e3b5a1087eff8b88b3bac1106e3cd46844c (diff)
downloadfreetype2-aa8c7da0bfe3a4e93ac380478fbad7d35c0be0d0.tar.gz
Don't use -lefence in the demo Makefile.
Added C++ guards in ftmodule.h Fix error check in ftglyph.c Formatting; adding copyrights; fixing documentation
Diffstat (limited to 'src/type1/t1tokens.h')
-rw-r--r--src/type1/t1tokens.h337
1 files changed, 111 insertions, 226 deletions
diff --git a/src/type1/t1tokens.h b/src/type1/t1tokens.h
index 0a5df32e5..eeb91bb25 100644
--- a/src/type1/t1tokens.h
+++ b/src/type1/t1tokens.h
@@ -1,43 +1,38 @@
-/*******************************************************************
- *
- * t1tokens.h
- *
- * Type 1 tokenizer
- *
- * Copyright 1996 David Turner, Robert Wilhelm and Werner Lemberg.
- *
- * This file is part of the FreeType project, and may only be used
- * modified and distributed under the terms of the FreeType project
- * license, LICENSE.TXT. By continuing to use, modify or distribute
- * this file you indicate that you have read the license and
- * understand and accept it fully.
- *
- * The tokenizer is in charge of loading and reading a Type1 font
- * file (either in PFB or PFA format), and extract successive tokens
- * and keywords from its two streams (i.e. the font program, and the
- * private dictionary).
- *
- * Eexec decryption is performed automatically when entering the
- * private dictionary, or when retrieving char strings..
- *
- ******************************************************************/
+/***************************************************************************/
+/* */
+/* t1tokens.h */
+/* */
+/* Type 1 tokenizer (specification). */
+/* */
+/* Copyright 1996-2000 by */
+/* David Turner, Robert Wilhelm, and Werner Lemberg. */
+/* */
+/* This file is part of the FreeType project, and may only be used, */
+/* modified, and distributed under the terms of the FreeType project */
+/* license, LICENSE.TXT. By continuing to use, modify, or distribute */
+/* this file you indicate that you have read the license and */
+/* understand and accept it fully. */
+/* */
+/***************************************************************************/
+
#ifndef T1TOKENS_H
#define T1TOKENS_H
#include <t1objs.h>
-/* enum value of first keyword */
-#define key_first_ 100
+ /* enum value of first keyword */
+#define key_first_ 100
+
+ /* enum value of first immediate name */
+#define imm_first_ 200
-/* enum value of first immediate name */
-#define imm_first_ 200
- typedef enum T1_TokenType_
+ typedef enum T1_TokenType_
{
tok_error = 0,
- tok_eof, /* end of file */
+ tok_eof, /* end of file */
/* simple token types */
@@ -50,14 +45,14 @@
tok_hexarray, /* array of hexadecimal nibbles */
tok_any, /* anything else */
- /* Postscript keywords - placed in lexicographical order */
+ /* Postscript keywords -- placed in lexicographical order */
- key_RD_alternate = key_first_, /* "-|" = alternate form of RD */
- key_ExpertEncoding,
+ key_RD_alternate = key_first_, /* `-|' = alternate form of RD */
+ key_ExpertEncoding,
key_ND,
key_NP,
key_RD,
- key_StandardEncoding,
+ key_StandardEncoding,
key_array,
key_begin,
key_closefile,
@@ -77,16 +72,16 @@
key_readonly,
key_true,
key_userdict,
- key_NP_alternate, /* "|" = alternate form of NP */
- key_ND_alternate, /* "|-" = alternate form of ND */
+ key_NP_alternate, /* `|' = alternate form of NP */
+ key_ND_alternate, /* `|-' = alternate form of ND */
key_max, /* always keep this value there */
- /* Postscript immediate names - other names will be ignored, except */
- /* in charstrings.. */
+ /* Postscript immediate names -- other names will be ignored, except */
+ /* in charstrings */
- imm_RD_alternate = imm_first_, /* "-|" = alternate form of RD */
- imm_notdef, /* "/.notdef" immediate */
+ imm_RD_alternate = imm_first_, /* `-|' = alternate form of RD */
+ imm_notdef, /* `/.notdef' immediate */
imm_BlendAxisTypes,
imm_BlueFuzz,
imm_BlueScale,
@@ -135,219 +130,109 @@
imm_password,
imm_version,
- imm_NP_alternate, /* "|" = alternate form of NP */
- imm_ND_alternate, /* "|-" = alternate form of ND */
+ imm_NP_alternate, /* `|' = alternate form of NP */
+ imm_ND_alternate, /* `|-' = alternate form of ND */
imm_max /* always keep this value here */
} T1_TokenType;
- /* these arrays are visible for debugging purposes.. */
- extern const char* t1_keywords[];
- extern const char* t1_immediates[];
-
-
- /*************************************************************************/
- /* */
- /* <Struct> T1_Token */
- /* */
- /* <Description> */
- /* A structure used to describe a token in the current input */
- /* stream. Note that the Type1 driver doesn't try to interpret */
- /* tokens until it really needs to.. */
- /* */
- /* <Fields> */
- /* kind :: token type. Describes the token to the loader */
- /* kind2 :: detailed token type. */
- /* */
- /* start :: index of first character of token in input stream */
- /* */
- /* len :: length of token in characters. */
- /* */
- typedef struct T1_Token_
+ /* these arrays are visible for debugging purposes */
+ extern const char* t1_keywords[];
+ extern const char* t1_immediates[];
+
+
+ /*************************************************************************/
+ /* */
+ /* <Struct> */
+ /* T1_Token */
+ /* */
+ /* <Description> */
+ /* A structure used to describe a token in the current input stream. */
+ /* Note that the Type1 driver doesn't try to interpret tokens until */
+ /* it really needs to. */
+ /* */
+ /* <Fields> */
+ /* kind :: The token type. Describes the token to the loader. */
+ /* */
+ /* kind2 :: Detailed token type. */
+ /* */
+ /* start :: The index of the first character of token in the input */
+ /* stream. */
+ /* */
+ /* len :: The length of the token in characters. */
+ /* */
+ typedef struct T1_Token_
{
- T1_TokenType kind; /* simple type */
- T1_TokenType kind2; /* detailed type */
- FT_Int start; /* index of first token character */
- FT_Int len; /* length of token in chars */
+ T1_TokenType kind; /* simple type */
+ T1_TokenType kind2; /* detailed type */
+ FT_Int start; /* index of first token character */
+ FT_Int len; /* length of token in chars */
} T1_Token;
-
-
- typedef struct T1_TokenParser_
+ typedef struct T1_TokenParser_
{
- FT_Memory memory;
- FT_Stream stream;
+ FT_Memory memory;
+ FT_Stream stream;
- FT_Bool in_pfb; /* true if PFB file, PFA otherwise */
- FT_Bool in_private; /* true if in private dictionary */
+ FT_Bool in_pfb; /* true if PFB file, PFA otherwise */
+ FT_Bool in_private; /* true if in private dictionary */
- FT_Byte* base; /* base address of current read buffer */
- FT_Long cursor; /* current position in read buffer */
- FT_Long limit; /* limit of current read buffer */
- FT_Long max; /* maximum size of read buffer */
+ FT_Byte* base; /* base address of current read buffer */
+ FT_Long cursor; /* current position in read buffer */
+ FT_Long limit; /* limit of current read buffer */
+ FT_Long max; /* maximum size of read buffer */
- FT_Error error; /* last error */
- T1_Token token; /* last token read */
+ FT_Error error; /* last error */
+ T1_Token token; /* last token read */
} T1_TokenParser;
+ /*************************************************************************/
+ /* */
+ /* <Type> */
+ /* T1_Tokenizer */
+ /* */
+ /* <Description> */
+ /* A handle to an object used to extract tokens from the input. The */
+ /* object is able to perform PFA/PFB recognition, eexec decryption of */
+ /* the private dictionary, as well as eexec decryption of the */
+ /* charstrings. */
+ /* */
+ typedef T1_TokenParser* T1_Tokenizer;
+
+
+ LOCAL_DEF
+ FT_Error New_Tokenizer( FT_Stream stream,
+ T1_Tokenizer* tokenizer );
+
+ LOCAL_DEF
+ FT_Error Done_Tokenizer( T1_Tokenizer tokenizer );
+
+ LOCAL_DEF
+ FT_Error Open_PrivateDict( T1_Tokenizer tokenizer );
- /*************************************************************************/
- /* */
- /* <Type> T1_Tokenizer */
- /* */
- /* <Description> */
- /* A handle to an object used to extract tokens from the input. */
- /* The object is able to perform PFA/PFB recognition, eexec */
- /* decryption of the private dictionary, as well as eexec decryption */
- /* of the charstrings.. */
- /* */
- typedef T1_TokenParser* T1_Tokenizer;
-
-
- /*************************************************************************/
- /* */
- /* <Function> New_Tokenizer */
- /* */
- /* <Description> */
- /* Creates a new tokenizer from a given input stream. This function */
- /* automatically recognizes "pfa" or "pfb" files. The function */
- /* "Read_Token" can then be used to extract successive tokens from */
- /* the stream.. */
- /* */
- /* <Input> */
- /* stream :: input stream */
- /* */
- /* <Output> */
- /* tokenizer :: handle to new tokenizer object.. */
- /* */
- /* <Return> */
- /* Type1 error code. 0 means success.. */
- /* */
- /* <Note> */
- /* This function copies the stream handle within the object. Callers */
- /* should not discard "stream". This is done by the Done_Tokenizer */
- /* function.. */
- /* */
- LOCAL_DEF
- FT_Error New_Tokenizer( FT_Stream stream,
- T1_Tokenizer* tokenizer );
-
-
-
- /*************************************************************************/
- /* */
- /* <Function> Done_Tokenizer */
- /* */
- /* <Description> */
- /* Closes a given tokenizer. This function will also close the */
- /* stream embedded in the object.. */
- /* */
- /* <Input> */
- /* tokenizer :: target tokenizer object */
- /* */
- /* <Return> */
- /* Type1 error code. 0 means success.. */
- /* */
- LOCAL_DEF
- FT_Error Done_Tokenizer( T1_Tokenizer tokenizer );
-
-
-
- /*************************************************************************/
- /* */
- /* <Function> Open_PrivateDict */
- /* */
- /* <Description> */
- /* This function must be called to set the tokenizer to the private */
- /* section of the Type1 file. It recognizes automatically the */
- /* the kind of eexec encryption used (ascii or binary).. */
- /* */
- /* <Input> */
- /* tokenizer :: target tokenizer object */
- /* lenIV :: value of the "lenIV" variable.. */
- /* */
- /* <Return> */
- /* Type1 error code. 0 means success.. */
- /* */
- LOCAL_DEF
- FT_Error Open_PrivateDict( T1_Tokenizer tokenizer );
-
-
-
- /*************************************************************************/
- /* */
- /* <Function> Read_Token */
- /* */
- /* <Description> */
- /* Read a new token from the current input stream. This function */
- /* extracts a token from the font program until "Open_PrivateDict" */
- /* has been called. After this, it returns tokens from the */
- /* (eexec-encrypted) private dictionnary.. */
- /* */
- /* <Input> */
- /* tokenizer :: target tokenizer object */
- /* */
- /* <Return> */
- /* Type1 error code. 0 means success.. */
- /* */
- /* <Note> */
- /* One should use the function Read_CharStrings to read the binary */
- /* charstrings from the private dict.. */
- /* */
- LOCAL_DEF
- FT_Error Read_Token( T1_Tokenizer tokenizer );
+ LOCAL_DEF
+ FT_Error Read_Token( T1_Tokenizer tokenizer );
#if 0
- /*************************************************************************/
- /* */
- /* <Function> Read_CharStrings */
- /* */
- /* <Description> */
- /* Read a charstrings from the current input stream. These are */
- /* binary bytes that encode each individual glyph outline. */
- /* */
- /* <Input> */
- /* tokenizer :: target tokenizer object */
- /* num_chars :: number of binary bytes to read */
- /* */
- /* <Output> */
- /* buffer :: target array of bytes. These are eexec-decrypted.. */
- /* */
- /* <Return> */
- /* Type1 error code. 0 means success.. */
- /* */
- /* <Note> */
- /* One should use the function Read_CharStrings to read the binary */
- /* charstrings from the private dict.. */
- /* */
- LOCAL_DEF
- FT_Error Read_CharStrings( T1_Tokenizer tokenizer,
- FT_Int num_chars,
- FT_Byte* buffer );
-#endif
-
- /*************************************************************************/
- /* */
- /* <Function> t1_decrypt */
- /* */
- /* <Description> */
- /* Performs the Type 1 charstring decryption process.. */
- /* */
- /* <Input> */
- /* buffer :: base address of data to decrypt */
- /* length :: number of bytes to decrypt from base address */
- /* seed :: ecnryption seed (4330 for charstrings). */
- /* */
+ LOCAL_DEF
+ FT_Error Read_CharStrings( T1_Tokenizer tokenizer,
+ FT_Int num_chars,
+ FT_Byte* buffer );
+#endif /* 0 */
+
LOCAL_DEF
void t1_decrypt( FT_Byte* buffer,
FT_Int length,
FT_UShort seed );
#endif /* T1TOKENS_H */
+
+
+/* END */