diff options
author | peter <peter@FreeBSD.org> | 2000-10-11 07:31:01 +0000 |
---|---|---|
committer | peter <peter@FreeBSD.org> | 2000-10-11 07:31:01 +0000 |
commit | a81407a537bfd1ab9e48c69007eb6b30e66d271b (patch) | |
tree | 9ec00b41242bbe63b83c0ac5316c539466d9f9de /contrib/ncurses/form | |
parent | cc6a5cc05f3c2cde24338d35c9714f1e7ebf032e (diff) | |
download | FreeBSD-src-a81407a537bfd1ab9e48c69007eb6b30e66d271b.zip FreeBSD-src-a81407a537bfd1ab9e48c69007eb6b30e66d271b.tar.gz |
Import ncurses-5.1-20001009 onto the vendor branch
Diffstat (limited to 'contrib/ncurses/form')
-rw-r--r-- | contrib/ncurses/form/Makefile.in | 10 | ||||
-rw-r--r-- | contrib/ncurses/form/fty_enum.c | 74 |
2 files changed, 45 insertions, 39 deletions
diff --git a/contrib/ncurses/form/Makefile.in b/contrib/ncurses/form/Makefile.in index dd65638..9c40f8a 100644 --- a/contrib/ncurses/form/Makefile.in +++ b/contrib/ncurses/form/Makefile.in @@ -1,4 +1,4 @@ -# $Id: Makefile.in,v 1.28 2000/05/28 01:40:18 tom Exp $ +# $Id: Makefile.in,v 1.30 2000/08/26 21:51:44 tom Exp $ ############################################################################## # Copyright (c) 1998-2000 Free Software Foundation, Inc. # # # @@ -46,7 +46,7 @@ SHELL = /bin/sh THIS = Makefile MODEL = @DFT_LWR_MODEL@ -INSTALL_PREFIX = @INSTALL_PREFIX@ +DESTDIR = @DESTDIR@ srcdir = @srcdir@ prefix = @prefix@ exec_prefix = @exec_prefix@ @@ -108,7 +108,7 @@ install :: $(AUTO_SRC) $(LIBRARIES) sources : $(AUTO_SRC) -$(INSTALL_PREFIX)$(libdir) : +$(DESTDIR)$(libdir) : $(srcdir)/../mkinstalldirs $@ # make copies to simplify include-paths while still keeping form's include @@ -127,8 +127,8 @@ FORM_PRIV_H = \ tags: ctags *.[ch] -TAGS: - etags *.[ch] +@MAKE_UPPER_TAGS@TAGS: +@MAKE_UPPER_TAGS@ etags *.[ch] mostlyclean :: -rm -f core tags TAGS *~ *.ln *.atac trace diff --git a/contrib/ncurses/form/fty_enum.c b/contrib/ncurses/form/fty_enum.c index 701d80f..490bf26 100644 --- a/contrib/ncurses/form/fty_enum.c +++ b/contrib/ncurses/form/fty_enum.c @@ -13,7 +13,7 @@ #include "form.priv.h" -MODULE_ID("$Id: fty_enum.c,v 1.11 2000/03/19 01:09:56 Bruno.Haible Exp $") +MODULE_ID("$Id: fty_enum.c,v 1.13 2000/09/10 00:55:26 juergen Exp $") typedef struct { char **kwds; @@ -33,20 +33,21 @@ typedef struct { static void *Make_Enum_Type(va_list * ap) { enumARG *argp = (enumARG *)malloc(sizeof(enumARG)); - char **kp; - int cnt=0; if (argp) { + int cnt = 0; + char **kp = (char **)0; int ccase, cunique; + 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++) ) cnt++; + while( (kp && *kp++) ) cnt++; argp->count = cnt; } return (void *)argp; @@ -62,11 +63,12 @@ static void *Make_Enum_Type(va_list * ap) +--------------------------------------------------------------------------*/ static void *Copy_Enum_Type(const void * argp) { - const enumARG *ap = (const enumARG *)argp; enumARG *result = (enumARG *)0; if (argp) { + const enumARG *ap = (const enumARG *)argp; + result = (enumARG *)malloc(sizeof(enumARG)); if (result) *result = *ap; @@ -165,14 +167,14 @@ static bool Check_Enum_Field(FIELD * field, const void * argp) char *s, *t, *p; int res; - while( (s=(*kwds++)) ) + while( kwds && (s=(*kwds++)) ) { if ((res=Compare((unsigned char *)s,bp,ccase))!=NOMATCH) { p=t=s; /* t is at least a partial match */ if ((unique && res!=EXACT)) { - while( (p = *kwds++) ) + while( kwds && (p = *kwds++) ) { if ((res=Compare((unsigned char *)p,bp,ccase))!=NOMATCH) { @@ -218,18 +220,20 @@ static bool Next_Enum(FIELD * field, const void * argp) int cnt = args->count; unsigned char *bp = (unsigned char *)field_buffer(field,0); - while(cnt--) - { - if (Compare((unsigned char *)(*kwds++),bp,ccase)==EXACT) - break; - } - if (cnt<=0) - kwds = args->kwds; - if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT)) - { - set_field_buffer(field,0,*kwds); - return TRUE; - } + if (kwds) { + while(cnt--) + { + if (Compare((unsigned char *)(*kwds++),bp,ccase)==EXACT) + break; + } + if (cnt<=0) + kwds = args->kwds; + if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT)) + { + set_field_buffer(field,0,*kwds); + return TRUE; + } + } return FALSE; } @@ -252,20 +256,22 @@ static bool Previous_Enum(FIELD * field, const void * argp) bool ccase = args->checkcase; unsigned char *bp = (unsigned char *)field_buffer(field,0); - while(cnt--) - { - if (Compare((unsigned char *)(*kwds--),bp,ccase)==EXACT) - break; - } - - if (cnt<=0) - kwds = &args->kwds[args->count-1]; - - if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT)) - { - set_field_buffer(field,0,*kwds); - return TRUE; - } + if (kwds) { + while(cnt--) + { + if (Compare((unsigned char *)(*kwds--),bp,ccase)==EXACT) + break; + } + + if (cnt<=0) + kwds = &args->kwds[args->count-1]; + + if ((cnt>=0) || (Compare((const unsigned char *)dummy,bp,ccase)==EXACT)) + { + set_field_buffer(field,0,*kwds); + return TRUE; + } + } return FALSE; } |