diff options
Diffstat (limited to 'gs/src/gstrap.c')
-rw-r--r-- | gs/src/gstrap.c | 115 |
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", - ¶ms.BlackColorLimit, - check_unit, ecode); + ¶ms.BlackColorLimit, check_unit, ecode); ecode = trap_put_float_param(plist, "BlackDensityLimit", ¶ms.BlackDensityLimit, check_positive, ecode); ecode = trap_put_float_param(plist, "BlackWidth", - ¶ms.BlackWidth, - check_positive, ecode); - ecode = trap_put_bool_param(plist, "Enabled", - ¶ms.Enabled, ecode); - ecode = trap_put_bool_param(plist, "ImageInternalTrapping", - ¶ms.ImageInternalTrapping, ecode); - ecode = trap_put_int_param(plist, "ImageResolution", - ¶ms.ImageResolution, ecode); + ¶ms.BlackWidth, check_positive, ecode); + ecode = param_put_bool(plist, "Enabled", + ¶ms.Enabled, ecode); + ecode = param_put_bool(plist, "ImageInternalTrapping", + ¶ms.ImageInternalTrapping, ecode); + ecode = param_put_int(plist, "ImageResolution", + ¶ms.ImageResolution, ecode); if (params.ImageResolution <= 0) param_signal_error(plist, "ImageResolution", ecode = gs_error_rangecheck); - ecode = trap_put_bool_param(plist, "ImageToObjectTrapping", - ¶ms.ImageToObjectTrapping, ecode); + ecode = param_put_bool(plist, "ImageToObjectTrapping", + ¶ms.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", - ¶ms.SlidingTrapLimit, - check_unit, ecode); + ¶ms.SlidingTrapLimit, check_unit, ecode); ecode = trap_put_float_param(plist, "StepLimit", ¶ms.StepLimit, check_unit, ecode); ecode = trap_put_float_param(plist, "TrapColorScaling", - ¶ms.TrapColorScaling, - check_unit, ecode); + ¶ms.TrapColorScaling, check_unit, ecode); ecode = trap_put_float_param(plist, "TrapWidth", - ¶ms.TrapWidth, - check_positive, ecode); + ¶ms.TrapWidth, check_positive, ecode); if (ecode < 0) return ecode; *pparams = params; |