diff options
author | delphij <delphij@FreeBSD.org> | 2014-02-28 19:12:44 +0000 |
---|---|---|
committer | delphij <delphij@FreeBSD.org> | 2014-02-28 19:12:44 +0000 |
commit | 084d7341e201b5153031223070580cfac88a038a (patch) | |
tree | b8f6e12b479a78216f3bffb8e1258d54087268de /form/fty_enum.c | |
parent | 57da9bc8831dabeaf0cff586fbd536851530a22d (diff) | |
download | FreeBSD-src-084d7341e201b5153031223070580cfac88a038a.zip FreeBSD-src-084d7341e201b5153031223070580cfac88a038a.tar.gz |
Undo two previous imports which was never done in preparation of doing a
new import.
Diffstat (limited to 'form/fty_enum.c')
-rw-r--r-- | form/fty_enum.c | 160 |
1 files changed, 28 insertions, 132 deletions
diff --git a/form/fty_enum.c b/form/fty_enum.c index d335164..c96a080 100644 --- a/form/fty_enum.c +++ b/form/fty_enum.c @@ -1,5 +1,5 @@ /**************************************************************************** - * Copyright (c) 1998-2009,2010 Free Software Foundation, Inc. * + * Copyright (c) 1998-2006,2007 Free Software Foundation, Inc. * * * * Permission is hereby granted, free of charge, to any person obtaining a * * copy of this software and associated documentation files (the * @@ -34,7 +34,7 @@ #include "form.priv.h" -MODULE_ID("$Id: fty_enum.c,v 1.26 2010/05/01 21:11:07 tom Exp $") +MODULE_ID("$Id: fty_enum.c,v 1.22 2007/10/13 19:32:26 tom Exp $") typedef struct { @@ -45,99 +45,43 @@ typedef struct } enumARG; -typedef struct - { - char **kwds; - int ccase; - int cunique; - } -enumParams; - /*--------------------------------------------------------------------------- | Facility : libnform -| Function : static void *Generic_Enum_Type(void * arg) +| Function : static void *Make_Enum_Type( va_list * ap ) | | Description : Allocate structure for enumeration type argument. | | Return Values : Pointer to argument structure or NULL on error +--------------------------------------------------------------------------*/ static void * -Generic_Enum_Type(void *arg) +Make_Enum_Type(va_list *ap) { - enumARG *argp = (enumARG *)0; - enumParams *params = (enumParams *) arg; + enumARG *argp = typeMalloc(enumARG, 1); - if (params) + if (argp) { - argp = typeMalloc(enumARG, 1); - - if (argp) - { - int cnt = 0; - char **kp = (char **)0; - char **kwds = (char **)0; - char **kptarget; - int ccase, cunique; - - T((T_CREATE("enumARG %p"), (void *)argp)); - kwds = params->kwds; - ccase = params->ccase; - cunique = params->cunique; - - argp->checkcase = ccase ? TRUE : FALSE; - argp->checkunique = cunique ? TRUE : FALSE; - argp->kwds = (char **)0; - - kp = kwds; - while (kp && (*kp++)) - cnt++; - argp->count = cnt; - - if (cnt > 0) - { - /* We copy the keywords, because we can't rely on the fact - that the caller doesn't relocate or free the memory used - for the keywords (maybe he has GC) - */ - argp->kwds = typeMalloc(char *, cnt + 1); - - kp = kwds; - if ((kptarget = argp->kwds) != 0) - { - while (kp && (*kp)) - { - (*kptarget++) = strdup(*kp++); - } - *kptarget = (char *)0; - } - } - } + int cnt = 0; + char **kp = (char **)0; + int ccase, cunique; + + T((T_CREATE("enumARG %p"), argp)); + argp->kwds = va_arg(*ap, char **); + ccase = va_arg(*ap, int); + cunique = va_arg(*ap, int); + + argp->checkcase = ccase ? TRUE : FALSE; + argp->checkunique = cunique ? TRUE : FALSE; + + kp = argp->kwds; + while (kp && (*kp++)) + cnt++; + argp->count = cnt; } return (void *)argp; } /*--------------------------------------------------------------------------- | Facility : libnform -| Function : static void *Make_Enum_Type( va_list * ap ) -| -| Description : Allocate structure for enumeration type argument. -| -| Return Values : Pointer to argument structure or NULL on error -+--------------------------------------------------------------------------*/ -static void * -Make_Enum_Type(va_list *ap) -{ - enumParams params; - - params.kwds = va_arg(*ap, char **); - params.ccase = va_arg(*ap, int); - params.cunique = va_arg(*ap, int); - - return Generic_Enum_Type((void *)¶ms); -} - -/*--------------------------------------------------------------------------- -| Facility : libnform | Function : static void *Copy_Enum_Type( const void * argp ) | | Description : Copy structure for enumeration type argument. @@ -157,24 +101,8 @@ Copy_Enum_Type(const void *argp) if (result) { - T((T_CREATE("enumARG %p"), (void *)result)); + T((T_CREATE("enumARG %p"), result)); *result = *ap; - - if (ap->count > 0) - { - char **kptarget; - char **kp = ap->kwds; - result->kwds = typeMalloc(char *, 1 + ap->count); - - if ((kptarget = result->kwds) != 0) - { - while (kp && (*kp)) - { - (*kptarget++) = strdup(*kp++); - } - *kptarget = (char *)0; - } - } } } return (void *)result; @@ -192,24 +120,7 @@ static void Free_Enum_Type(void *argp) { if (argp) - { - const enumARG *ap = (const enumARG *)argp; - - if (ap->kwds && ap->count > 0) - { - char **kp = ap->kwds; - int cnt = 0; - - while (kp && (*kp)) - { - free(*kp++); - cnt++; - } - assert(cnt == ap->count); - free(ap->kwds); - } - free(argp); - } + free(argp); } #define SKIP_SPACE(x) while(((*(x))!='\0') && (is_blank(*(x)))) (x)++ @@ -415,28 +326,13 @@ static FIELDTYPE typeENUM = Make_Enum_Type, Copy_Enum_Type, Free_Enum_Type, - INIT_FT_FUNC(Check_Enum_Field), - INIT_FT_FUNC(NULL), - INIT_FT_FUNC(Next_Enum), - INIT_FT_FUNC(Previous_Enum), -#if NCURSES_INTEROP_FUNCS - Generic_Enum_Type -#endif + Check_Enum_Field, + NULL, + Next_Enum, + Previous_Enum }; NCURSES_EXPORT_VAR(FIELDTYPE *) TYPE_ENUM = &typeENUM; -#if NCURSES_INTEROP_FUNCS -/* The next routines are to simplify the use of ncurses from - programming languages with restictions on interop with C level - constructs (e.g. variable access or va_list + ellipsis constructs) -*/ -NCURSES_EXPORT(FIELDTYPE *) -_nc_TYPE_ENUM(void) -{ - return TYPE_ENUM; -} -#endif - /* fty_enum.c ends here */ |