summaryrefslogtreecommitdiff
path: root/gs/src/gstrap.c
diff options
context:
space:
mode:
Diffstat (limited to 'gs/src/gstrap.c')
-rw-r--r--gs/src/gstrap.c115
1 files changed, 19 insertions, 96 deletions
diff --git a/gs/src/gstrap.c b/gs/src/gstrap.c
index faaf68576..416a07881 100644
--- a/gs/src/gstrap.c
+++ b/gs/src/gstrap.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1997, 1998 Aladdin Enterprises. All rights reserved.
+/* Copyright (C) 1997, 1998, 1999 Aladdin Enterprises. All rights reserved.
This file is part of Aladdin Ghostscript.
@@ -22,80 +22,9 @@
#include "gx.h"
#include "gserrors.h"
#include "gstrap.h"
+#include "gsparamx.h"
-/* Parameter utilities, copied from gdevpsdf.c. */
-/* These should be merged.... */
-
-/* Compare a C string and a gs_param_string. */
-private bool
-trap_key_eq(const gs_param_string * pcs, const char *str)
-{
- return (strlen(str) == pcs->size &&
- !strncmp(str, (const char *)pcs->data, pcs->size));
-}
-
-/* Put an enumerated value. */
-private int
-trap_put_enum_param(gs_param_list * plist, gs_param_name param_name,
- int *pvalue, const char *const pnames[], int ecode)
-{
- gs_param_string ens;
- int code = param_read_name(plist, param_name, &ens);
-
- switch (code) {
- case 1:
- return ecode;
- case 0:
- {
- int i;
-
- for (i = 0; pnames[i] != 0; ++i)
- if (trap_key_eq(&ens, pnames[i])) {
- *pvalue = i;
- return 0;
- }
- }
- code = gs_error_rangecheck;
- default:
- ecode = code;
- param_signal_error(plist, param_name, code);
- }
- return code;
-}
-
-/* Put a Boolean, integer, or float parameter. */
-private int
-trap_put_bool_param(gs_param_list * plist, gs_param_name param_name,
- bool * pval, int ecode)
-{
- int code;
-
- switch (code = param_read_bool(plist, param_name, pval)) {
- default:
- ecode = code;
- param_signal_error(plist, param_name, ecode);
- case 0:
- case 1:
- break;
- }
- return ecode;
-}
-private int
-trap_put_int_param(gs_param_list * plist, gs_param_name param_name,
- int *pval, int ecode)
-{
- int code;
-
- switch (code = param_read_int(plist, param_name, pval)) {
- default:
- ecode = code;
- param_signal_error(plist, param_name, ecode);
- case 0:
- case 1:
- break;
- }
- return ecode;
-}
+/* Put a float parameter. */
private bool
check_unit(float *pval)
{
@@ -133,50 +62,44 @@ gs_settrapparams(gs_trap_params_t * pparams, gs_param_list * plist)
{
gs_trap_params_t params;
int ecode = 0;
- static const char *const trap_placement_names[] =
- {
+ static const char *const trap_placement_names[] = {
gs_trap_placement_names, 0
};
params = *pparams;
ecode = trap_put_float_param(plist, "BlackColorLimit",
- &params.BlackColorLimit,
- check_unit, ecode);
+ &params.BlackColorLimit, check_unit, ecode);
ecode = trap_put_float_param(plist, "BlackDensityLimit",
&params.BlackDensityLimit,
check_positive, ecode);
ecode = trap_put_float_param(plist, "BlackWidth",
- &params.BlackWidth,
- check_positive, ecode);
- ecode = trap_put_bool_param(plist, "Enabled",
- &params.Enabled, ecode);
- ecode = trap_put_bool_param(plist, "ImageInternalTrapping",
- &params.ImageInternalTrapping, ecode);
- ecode = trap_put_int_param(plist, "ImageResolution",
- &params.ImageResolution, ecode);
+ &params.BlackWidth, check_positive, ecode);
+ ecode = param_put_bool(plist, "Enabled",
+ &params.Enabled, ecode);
+ ecode = param_put_bool(plist, "ImageInternalTrapping",
+ &params.ImageInternalTrapping, ecode);
+ ecode = param_put_int(plist, "ImageResolution",
+ &params.ImageResolution, ecode);
if (params.ImageResolution <= 0)
param_signal_error(plist, "ImageResolution",
ecode = gs_error_rangecheck);
- ecode = trap_put_bool_param(plist, "ImageToObjectTrapping",
- &params.ImageToObjectTrapping, ecode);
+ ecode = param_put_bool(plist, "ImageToObjectTrapping",
+ &params.ImageToObjectTrapping, ecode);
{
int placement = params.ImageTrapPlacement;
- ecode = trap_put_enum_param(plist, "ImageTrapPlacement",
- &placement, trap_placement_names, ecode);
+ ecode = param_put_enum(plist, "ImageTrapPlacement",
+ &placement, trap_placement_names, ecode);
params.ImageTrapPlacement = placement;
}
ecode = trap_put_float_param(plist, "SlidingTrapLimit",
- &params.SlidingTrapLimit,
- check_unit, ecode);
+ &params.SlidingTrapLimit, check_unit, ecode);
ecode = trap_put_float_param(plist, "StepLimit",
&params.StepLimit, check_unit, ecode);
ecode = trap_put_float_param(plist, "TrapColorScaling",
- &params.TrapColorScaling,
- check_unit, ecode);
+ &params.TrapColorScaling, check_unit, ecode);
ecode = trap_put_float_param(plist, "TrapWidth",
- &params.TrapWidth,
- check_positive, ecode);
+ &params.TrapWidth, check_positive, ecode);
if (ecode < 0)
return ecode;
*pparams = params;