xref: /plan9/sys/src/cmd/gs/src/sbcp.h (revision 593dc095aefb2a85c828727bbfa9da139a49bdf4)
13ff48bf5SDavid du Colombier /* Copyright (C) 2000 Aladdin Enterprises.  All rights reserved.
23ff48bf5SDavid du Colombier 
3*593dc095SDavid du Colombier   This software is provided AS-IS with no warranty, either express or
4*593dc095SDavid du Colombier   implied.
53ff48bf5SDavid du Colombier 
6*593dc095SDavid du Colombier   This software is distributed under license and may not be copied,
7*593dc095SDavid du Colombier   modified or distributed except as expressly authorized under the terms
8*593dc095SDavid du Colombier   of the license contained in the file LICENSE in this distribution.
93ff48bf5SDavid du Colombier 
10*593dc095SDavid du Colombier   For more information about licensing, please refer to
11*593dc095SDavid du Colombier   http://www.ghostscript.com/licensing/. For information on
12*593dc095SDavid du Colombier   commercial licensing, go to http://www.artifex.com/licensing/ or
13*593dc095SDavid du Colombier   contact Artifex Software, Inc., 101 Lucas Valley Road #110,
14*593dc095SDavid du Colombier   San Rafael, CA  94903, U.S.A., +1(415)492-9861.
153ff48bf5SDavid du Colombier */
163ff48bf5SDavid du Colombier 
17*593dc095SDavid du Colombier /* $Id: sbcp.h,v 1.5 2002/06/16 05:00:54 lpd Exp $ */
183ff48bf5SDavid du Colombier /* Interface to [T]BCP streams */
193ff48bf5SDavid du Colombier 
203ff48bf5SDavid du Colombier #ifndef sbcp_INCLUDED
213ff48bf5SDavid du Colombier #  define sbcp_INCLUDED
223ff48bf5SDavid du Colombier 
233ff48bf5SDavid du Colombier /* (T)BCPEncode */
243ff48bf5SDavid du Colombier /* (no state) */
253ff48bf5SDavid du Colombier extern const stream_template s_BCPE_template;
263ff48bf5SDavid du Colombier extern const stream_template s_TBCPE_template;
273ff48bf5SDavid du Colombier 
283ff48bf5SDavid du Colombier /* (T)BCPDecode */
293ff48bf5SDavid du Colombier typedef struct stream_BCPD_state_s {
303ff48bf5SDavid du Colombier     stream_state_common;
313ff48bf5SDavid du Colombier     /* The client sets the following before initialization. */
32*593dc095SDavid du Colombier     int (*signal_interrupt) (stream_state *);
33*593dc095SDavid du Colombier     int (*request_status) (stream_state *);
343ff48bf5SDavid du Colombier     /* The following are updated dynamically. */
353ff48bf5SDavid du Colombier     bool escaped;
363ff48bf5SDavid du Colombier     int matched;		/* TBCP only */
373ff48bf5SDavid du Colombier     int copy_count;		/* TBCP only */
383ff48bf5SDavid du Colombier     const byte *copy_ptr;	/* TBCP only */
393ff48bf5SDavid du Colombier } stream_BCPD_state;
403ff48bf5SDavid du Colombier 
413ff48bf5SDavid du Colombier #define private_st_BCPD_state()	/* in sbcp.c */\
423ff48bf5SDavid du Colombier   gs_private_st_simple(st_BCPD_state, stream_BCPD_state, "(T)BCPDecode state")
433ff48bf5SDavid du Colombier extern const stream_template s_BCPD_template;
443ff48bf5SDavid du Colombier extern const stream_template s_TBCPD_template;
453ff48bf5SDavid du Colombier 
463ff48bf5SDavid du Colombier #endif /* sbcp_INCLUDED */
47