From 159c738e9e0b6bdfaa8b04bf194b243b7b46cc5a Mon Sep 17 00:00:00 2001 From: zimoch Date: Tue, 20 Mar 2012 10:29:50 +0000 Subject: [PATCH] str-to-enum.patch applied --- src/db/dbConvert.c | 10 +++--- src/db/dbFastLinkConv.c | 6 ++-- src/db/dbTest.c | 2 +- str-to-enum.patch | 75 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 84 insertions(+), 9 deletions(-) create mode 100644 str-to-enum.patch diff --git a/src/db/dbConvert.c b/src/db/dbConvert.c index e2bb9df42..60fae1332 100644 --- a/src/db/dbConvert.c +++ b/src/db/dbConvert.c @@ -416,7 +416,7 @@ static long getCharChar( char *pbuffer = (char *)pto; char *psrc=(char *)(paddr->pfield); - if (paddr->pfldDes->field_type == DBF_STRING) { + if (paddr->pfldDes && paddr->pfldDes->field_type == DBF_STRING) { pbuffer[--nRequest] = 0; if (nRequest == 0) return(0); } @@ -440,7 +440,7 @@ static long getCharUchar( unsigned char *pbuffer = (unsigned char *)pto; char *psrc=(char *)(paddr->pfield); - if (paddr->pfldDes->field_type == DBF_STRING) { + if (paddr->pfldDes && paddr->pfldDes->field_type == DBF_STRING) { pbuffer[--nRequest] = 0; if (nRequest == 0) return(0); } @@ -2594,7 +2594,7 @@ static long putStringEnum( status = (*prset->get_enum_strs)(paddr,&enumStrs); if(!status) { nchoices = enumStrs.no_str; - nargs = sscanf(pbuffer," %u %n",&ind,&nchars); + nargs = sscanf(pbuffer,"%u%n",&ind,&nchars); if(nargs==1 && nchars==strlen(pbuffer) && indget_enum_strs)(paddr,&enumStrs); if(!status) { nchoices = enumStrs.no_str; - nargs = sscanf(from," %u %n",&ind,&nchars); + nargs = sscanf(from,"%u%n",&ind,&nchars); if(nargs==1 && nchars==strlen(from) && indget_enum_strs)(paddr,&enumStrs); + if(!status) { + nchoices = enumStrs.no_str; +- nargs = sscanf(pbuffer," %u %n",&ind,&nchars); ++ nargs = sscanf(pbuffer,"%u%n",&ind,&nchars); + if(nargs==1 && nchars==strlen(pbuffer) && indget_enum_strs)(paddr,&enumStrs); + if(!status) { + nchoices = enumStrs.no_str; +- nargs = sscanf(from," %u %n",&ind,&nchars); ++ nargs = sscanf(from,"%u%n",&ind,&nchars); + if(nargs==1 && nchars==strlen(from) && ind