Subversion Repositories planix.SVN

Rev

Rev 2 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* Copyright (C) 1993, 2000 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: sfilter.h,v 1.8 2002/02/21 22:24:54 giles Exp $ */
18
/* Definitions for simple Ghostscript streams */
19
/* Requires scommon.h; should require strimpl.h only if any templates */
20
/* are referenced, but some compilers always require strimpl.h. */
21
 
22
#ifndef sfilter_INCLUDED
23
#  define sfilter_INCLUDED
24
 
25
#include "gstypes.h"		/* for gs_[const_]string */
26
 
27
/*
28
 * Define the processing states of the simplest Ghostscript streams.
29
 * We use abbreviations for the stream names so as not to exceed the
30
 * 31-character limit that some compilers put on identifiers.
31
 *
32
 * The processing state of a stream has three logical sections:
33
 * parameters set by the client before the stream is opened,
34
 * values computed from the parameters at initialization time,
35
 * and values that change dynamically.  Unless otherwise indicated,
36
 * all structure members change dynamically.
37
 */
38
 
39
/* eexecEncode */
40
typedef struct stream_exE_state_s {
41
    stream_state_common;
42
    /* The following parameters are set by the client. */
43
    ushort cstate;		/* encryption state */
44
} stream_exE_state;
45
 
46
#define private_st_exE_state()	/* in sfilter1.c */\
47
  gs_private_st_simple(st_exE_state, stream_exE_state, "eexecEncode state")
48
extern const stream_template s_exE_template;
49
 
50
/* eexecDecode */
51
typedef struct stream_PFBD_state_s stream_PFBD_state;
52
typedef struct stream_exD_state_s {
53
    stream_state_common;
54
    /* The following parameters are set by the client. */
55
    ushort cstate;		/* encryption state */
56
    int binary;			/* 1=binary, 0=hex, -1=don't know yet */
57
    int lenIV;			/* # of initial decoded bytes to skip */
58
    stream_PFBD_state *pfb_state;	/* state of underlying */
59
				/* PFBDecode stream, if any */
60
    /* The following change dynamically. */
61
    int odd;			/* odd digit */
62
    long record_left;		/* data left in binary record in .PFB file, */
63
				/* max_long if not reading a .PFB file */
64
    long hex_left;		/* # of encoded chars to process as hex */
65
				/* if binary == 0 */
66
    int skip;			/* # of decoded bytes to skip */
67
} stream_exD_state;
68
 
69
#define private_st_exD_state()	/* in seexec.c */\
70
  gs_private_st_ptrs1(st_exD_state, stream_exD_state, "eexecDecode state",\
71
    exd_enum_ptrs, exd_reloc_ptrs, pfb_state)
72
extern const stream_template s_exD_template;
73
 
74
/* PFBDecode */
75
/* The typedef for the state appears under eexecDecode above. */
76
/*typedef */ struct stream_PFBD_state_s {
77
    stream_state_common;
78
    /* The following parameters are set by the client. */
79
    int binary_to_hex;
80
    /* The following change dynamically. */
81
    int record_type;
82
    ulong record_left;		/* bytes left in current record */
83
} /*stream_PFBD_state */ ;
84
 
85
#define private_st_PFBD_state()	/* in sfilter1.c */\
86
  gs_private_st_simple(st_PFBD_state, stream_PFBD_state, "PFBDecode state")
87
extern const stream_template s_PFBD_template;
88
 
89
/* SubFileDecode */
90
typedef struct stream_SFD_state_s {
91
    stream_state_common;
92
    /* The following parameters are set by the client. */
93
    long count;			/* # of chars or EODs to scan over */
94
    gs_const_string eod;
95
    long skip_count;		/* # of initial chars or records to skip */
96
    /* The following change dynamically. */
97
    uint match;			/* # of matched chars not copied to output */
98
    uint copy_count;		/* # of matched characters left to copy */
99
    uint copy_ptr;		/* index of next character to copy */
100
} stream_SFD_state;
101
#define private_st_SFD_state()	/* in sfilter1.c */\
102
  gs_private_st_const_strings1(st_SFD_state, stream_SFD_state,\
103
    "SubFileDecode state", sfd_enum_ptrs, sfd_reloc_ptrs, eod)
104
extern const stream_template s_SFD_template;
105
 
106
#endif /* sfilter_INCLUDED */