2 |
- |
1 |
/* Copyright (C) 1996, 1998 Aladdin Enterprises. All rights reserved.
|
|
|
2 |
|
|
|
3 |
This software is provided AS-IS with no warranty, either express or
|
|
|
4 |
implied.
|
|
|
5 |
|
|
|
6 |
This software is distributed under license and may not be copied,
|
|
|
7 |
modified or distributed except as expressly authorized under the terms
|
|
|
8 |
of the license contained in the file LICENSE in this distribution.
|
|
|
9 |
|
|
|
10 |
For more information about licensing, please refer to
|
|
|
11 |
http://www.ghostscript.com/licensing/. For information on
|
|
|
12 |
commercial licensing, go to http://www.artifex.com/licensing/ or
|
|
|
13 |
contact Artifex Software, Inc., 101 Lucas Valley Road #110,
|
|
|
14 |
San Rafael, CA 94903, U.S.A., +1(415)492-9861.
|
|
|
15 |
*/
|
|
|
16 |
|
|
|
17 |
/* $Id: sstring.h,v 1.7 2005/04/25 12:28:49 igor Exp $ */
|
|
|
18 |
/* String and hexstring streams (filters) */
|
|
|
19 |
|
|
|
20 |
#ifndef sstring_INCLUDED
|
|
|
21 |
# define sstring_INCLUDED
|
|
|
22 |
|
|
|
23 |
/* ASCIIHexEncode */
|
|
|
24 |
typedef struct stream_AXE_state_s {
|
|
|
25 |
stream_state_common;
|
|
|
26 |
/* The following are set by the client. */
|
|
|
27 |
bool EndOfData; /* if true, write > at EOD (default) */
|
|
|
28 |
/* The following change dynamically. */
|
|
|
29 |
int count; /* # of digits since last EOL */
|
|
|
30 |
} stream_AXE_state;
|
|
|
31 |
|
|
|
32 |
#define private_st_AXE_state() /* in sstring.c */\
|
|
|
33 |
gs_private_st_simple(st_AXE_state, stream_AXE_state,\
|
|
|
34 |
"ASCIIHexEncode state")
|
|
|
35 |
#define s_AXE_init_inline(ss)\
|
|
|
36 |
((ss)->EndOfData = true, (ss)->count = 0)
|
|
|
37 |
extern const stream_template s_AXE_template;
|
|
|
38 |
|
|
|
39 |
/* ASCIIHexDecode */
|
|
|
40 |
typedef struct stream_AXD_state_s {
|
|
|
41 |
stream_state_common;
|
|
|
42 |
int odd; /* odd digit */
|
|
|
43 |
} stream_AXD_state;
|
|
|
44 |
|
|
|
45 |
#define private_st_AXD_state() /* in sstring.c */\
|
|
|
46 |
gs_private_st_simple(st_AXD_state, stream_AXD_state,\
|
|
|
47 |
"ASCIIHexDecode state")
|
|
|
48 |
#define s_AXD_init_inline(ss)\
|
|
|
49 |
((ss)->min_left = 1, (ss)->odd = -1, 0)
|
|
|
50 |
extern const stream_template s_AXD_template;
|
|
|
51 |
|
|
|
52 |
/* PSStringDecode */
|
|
|
53 |
typedef struct stream_PSSD_state_s {
|
|
|
54 |
stream_state_common;
|
|
|
55 |
/* The following are set by the client. */
|
|
|
56 |
bool from_string; /* true if using Level 1 \ convention */
|
|
|
57 |
/* The following change dynamically. */
|
|
|
58 |
int depth;
|
|
|
59 |
} stream_PSSD_state;
|
|
|
60 |
|
|
|
61 |
#define private_st_PSSD_state() /* in sstring.c */\
|
|
|
62 |
gs_private_st_simple(st_PSSD_state, stream_PSSD_state,\
|
|
|
63 |
"PSStringDecode state")
|
|
|
64 |
|
|
|
65 |
/* Initialize the state */
|
|
|
66 |
int s_PSSD_init(stream_state * st);
|
|
|
67 |
|
|
|
68 |
/* A special initialization procedure for the scanner */
|
|
|
69 |
/* can avoid a procedure call. */
|
|
|
70 |
/* Note : it doesn't initialize ss->from_string. */
|
|
|
71 |
#define s_PSSD_partially_init_inline(ss)\
|
|
|
72 |
((ss)->depth = 0)
|
|
|
73 |
extern const stream_template s_PSSD_template;
|
|
|
74 |
|
|
|
75 |
/* PSStringEncode */
|
|
|
76 |
/* (no state) */
|
|
|
77 |
extern const stream_template s_PSSE_template;
|
|
|
78 |
|
|
|
79 |
#endif /* sstring_INCLUDED */
|