summaryrefslogtreecommitdiff
path: root/gs/src/idparam.h
diff options
context:
space:
mode:
Diffstat (limited to 'gs/src/idparam.h')
-rw-r--r--gs/src/idparam.h75
1 files changed, 75 insertions, 0 deletions
diff --git a/gs/src/idparam.h b/gs/src/idparam.h
new file mode 100644
index 000000000..dc9c333ae
--- /dev/null
+++ b/gs/src/idparam.h
@@ -0,0 +1,75 @@
+/* Copyright (C) 1992, 1993, 1994 Aladdin Enterprises. All rights reserved.
+
+ This file is part of Aladdin Ghostscript.
+
+ Aladdin Ghostscript is distributed with NO WARRANTY OF ANY KIND. No author
+ or distributor accepts any responsibility for the consequences of using it,
+ or for whether it serves any particular purpose or works at all, unless he
+ or she says so in writing. Refer to the Aladdin Ghostscript Free Public
+ License (the "License") for full details.
+
+ Every copy of Aladdin Ghostscript must include a copy of the License,
+ normally in a plain ASCII text file named PUBLIC. The License grants you
+ the right to copy, modify and redistribute Aladdin Ghostscript, but only
+ under certain conditions described in the License. Among other things, the
+ License requires that the copyright notice and this notice be preserved on
+ all copies.
+*/
+
+/* idparam.h */
+/* Interface to idparam.c */
+
+#ifndef gs_matrix_DEFINED
+# define gs_matrix_DEFINED
+typedef struct gs_matrix_s gs_matrix;
+#endif
+
+#ifndef gs_uid_DEFINED
+# define gs_uid_DEFINED
+typedef struct gs_uid_s gs_uid;
+#endif
+
+/*
+ * Unless otherwise noted, all the following routines return 0 for
+ * a valid parameter, 1 for a defaulted parameter, or <0 on error.
+ *
+ * Note that all the dictionary parameter routines take a C string,
+ * not a t_name ref *. Even though this is slower, it means that
+ * the GC doesn't have to worry about finding statically declared
+ * name refs, and we have that many fewer static variables.
+ *
+ * All these routines allow pdict == NULL, which they treat the same as
+ * pdict referring to an empty dictionary. Routines with "null" in their
+ * name return 2 if the parameter is null, without setting *pvalue.
+ */
+int dict_bool_param(P4(const ref *pdict, const char _ds *kstr,
+ bool defaultval, bool *pvalue));
+int dict_int_param(P6(const ref *pdict, const char _ds *kstr,
+ int minval, int maxval, int defaultval, int *pvalue));
+int dict_int_null_param(P6(const ref *pdict, const char _ds *kstr,
+ int minval, int maxval, int defaultval,
+ int *pvalue));
+int dict_uint_param(P6(const ref *pdict, const char _ds *kstr,
+ uint minval, uint maxval, uint defaultval,
+ uint *pvalue));
+int dict_float_param(P4(const ref *pdict, const char _ds *kstr,
+ floatp defaultval, float *pvalue));
+int dict_int_array_param(P4(const ref *pdict, const char _ds *kstr,
+ uint maxlen, int *ivec));
+int dict_float_array_param(P5(const ref *pdict, const char _ds *kstr,
+ uint maxlen, float *fvec,
+ const float *defaultvec));
+/*
+ * For dict_proc_param,
+ * defaultval = false means substitute t__invalid;
+ * defaultval = true means substitute an empty procedure.
+ * In either case, return 1.
+ */
+int dict_proc_param(P4(const ref *pdict, const char _ds *kstr, ref *pproc,
+ bool defaultval));
+int dict_matrix_param(P3(const ref *pdict, const char _ds *kstr,
+ gs_matrix *pmat));
+int dict_uid_param(P4(const ref *pdict, gs_uid *puid, int defaultval,
+ gs_memory_t *mem));
+/* Check that a UID in a dictionary is equal to an existing, valid UID. */
+bool dict_check_uid_param(P2(const ref *pdict, const gs_uid *puid));