Warning: Attempt to read property "date" on null in /usr/local/www/websvn.planix.org/blame.php on line 247

Warning: Attempt to read property "msg" on null in /usr/local/www/websvn.planix.org/blame.php on line 247
WebSVN – planix.SVN – Blame – /os/branches/planix-v0/sys/src/cmd/gs/src/idparam.h – Rev 2

Subversion Repositories planix.SVN

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 - 1
/* Copyright (C) 1992, 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: idparam.h,v 1.7 2004/08/04 19:36:12 stefan Exp $ */
18
/* Interface to idparam.c */
19
 
20
#ifndef idparam_INCLUDED
21
#  define idparam_INCLUDED
22
 
23
#ifndef gs_matrix_DEFINED
24
#  define gs_matrix_DEFINED
25
typedef struct gs_matrix_s gs_matrix;
26
#endif
27
 
28
#ifndef gs_uid_DEFINED
29
#  define gs_uid_DEFINED
30
typedef struct gs_uid_s gs_uid;
31
#endif
32
 
33
/*
34
 * Unless otherwise noted, all the following routines return 0 for
35
 * a valid parameter, 1 for a defaulted parameter, or <0 on error.
36
 *
37
 * Note that all the dictionary parameter routines take a C string,
38
 * not a t_name ref *.  Even though this is slower, it means that
39
 * the GC doesn't have to worry about finding statically declared
40
 * name refs, and we have that many fewer static variables.
41
 *
42
 * All these routines allow pdict == NULL, which they treat the same as
43
 * pdict referring to an empty dictionary.  Routines with "null" in their
44
 * name return 2 if the parameter is null, without setting *pvalue.
45
 */
46
int dict_bool_param(const ref * pdict, const char *kstr,
47
		    bool defaultval, bool * pvalue);
48
int dict_int_param(const ref * pdict, const char *kstr,
49
		   int minval, int maxval, int defaultval, int *pvalue);
50
int dict_int_null_param(const ref * pdict, const char *kstr,
51
			int minval, int maxval, int defaultval,
52
			int *pvalue);
53
int dict_uint_param(const ref * pdict, const char *kstr,
54
		    uint minval, uint maxval, uint defaultval,
55
		    uint * pvalue);
56
int dict_float_param(const ref * pdict, const char *kstr,
57
		     floatp defaultval, float *pvalue);
58
/*
59
 * There are 3 variants of the procedures for getting array parameters.
60
 * All return the element count if the parameter is present and of the
61
 * correct size, 0 if the key is missing.
62
 *	_xxx_check_param return over_error if the array size > len,
63
 *	  (under_error < 0 ? under_error : the element count) if the array
64
 *	  size < len.
65
 *	_xxx_param return limitcheck if the array size > maxlen.
66
 *	  Equivalent to _xxx_check_param(..., 0, limitcheck).
67
 *	_xxxs return rangecheck if the array size != len.
68
 *	  Equivalent to _xxx_check_param(..., rangecheck, rangecheck).
69
 * All can return other error codes (e.g., typecheck).
70
 */
71
int dict_int_array_check_param(const ref * pdict, const char *kstr,
72
			       uint len, int *ivec,
73
			       int under_error, int over_error);
74
int dict_int_array_param(const ref * pdict, const char *kstr,
75
			 uint maxlen, int *ivec);
76
int dict_ints_param(const ref * pdict, const char *kstr,
77
		    uint len, int *ivec);
78
/*
79
 * For _float_array_param, if the parameter is missing and defaultvec is
80
 * not NULL, copy (max)len elements from defaultvec to fvec and return
81
 * (max)len.
82
 */
83
int dict_float_array_check_param(const gs_memory_t *mem,
84
				 const ref * pdict, const char *kstr,
85
				 uint len, float *fvec,
86
				 const float *defaultvec,
87
				 int under_error, int over_error);
88
int dict_float_array_param(const gs_memory_t *mem,
89
			   const ref * pdict, const char *kstr,
90
			   uint maxlen, float *fvec,
91
			   const float *defaultvec);
92
int dict_floats_param(const gs_memory_t *mem,
93
		      const ref * pdict, const char *kstr,
94
		      uint len, float *fvec,
95
		      const float *defaultvec);
96
 
97
/*
98
 * For dict_proc_param,
99
 *      defaultval = false means substitute t__invalid;
100
 *      defaultval = true means substitute an empty procedure.
101
 * In either case, return 1.
102
 */
103
int dict_proc_param(const ref * pdict, const char *kstr, ref * pproc,
104
		    bool defaultval);
105
int dict_matrix_param(const gs_memory_t *mem, 
106
		      const ref * pdict, const char *kstr,
107
		      gs_matrix * pmat);
108
int dict_uid_param(const ref * pdict, gs_uid * puid, int defaultval,
109
		   gs_memory_t * mem, const i_ctx_t *i_ctx_p);
110
 
111
/* Check that a UID in a dictionary is equal to an existing, valid UID. */
112
bool dict_check_uid_param(const ref * pdict, const gs_uid * puid);
113
 
114
#endif /* idparam_INCLUDED */