Changeset 216 for trunk/zoo-kernel/service.h
- Timestamp:
- May 31, 2011, 3:13:53 AM (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/zoo-kernel/service.h
r114 r216 28 28 #pragma once 29 29 30 #ifdef WIN32 31 #define strncasecmp strnicmp 32 #define strcasecmp stricmp 33 #define snprintf sprintf_s 34 #endif 35 30 36 #ifdef __cplusplus 31 37 extern "C" { … … 193 199 } 194 200 201 static map* getLastMap(map* m){ 202 map* tmp=m; 203 while(tmp!=NULL){ 204 if(tmp->next==NULL){ 205 return tmp; 206 } 207 tmp=tmp->next; 208 } 209 return NULL; 210 } 211 195 212 static map* getMapFromMaps(maps* m,const char* key,const char* subkey){ 196 213 maps* _tmpm=getMaps(m,key); … … 201 218 else return NULL; 202 219 } 220 221 static char* getMapsAsKVP(maps* m,int length,int type){ 222 char *dataInputsKVP=(char*) malloc(length*sizeof(char)); 223 maps* curs=m; 224 int i=0; 225 while(curs!=NULL){ 226 if(i==0) 227 if(type==0) 228 sprintf(dataInputsKVP,"%s=",curs->name); 229 else 230 sprintf(dataInputsKVP,"%s",curs->name); 231 else{ 232 char *temp=strdup(dataInputsKVP); 233 if(type==0) 234 sprintf(dataInputsKVP,"%s;%s=",temp,curs->name); 235 else 236 sprintf(dataInputsKVP,"%s;%s",temp,curs->name); 237 free(temp); 238 } 239 map* icurs=curs->content; 240 if(type==0){ 241 map* tmp=getMap(curs->content,"value"); 242 char *temp=strdup(dataInputsKVP); 243 if(getMap(m->content,"xlink:href")!=NULL) 244 sprintf(dataInputsKVP,"%sReference",temp); 245 else 246 sprintf(dataInputsKVP,"%s%s",temp,icurs->value); 247 free(temp); 248 } 249 int j=0; 250 while(icurs!=NULL){ 251 if(strcasecmp(icurs->name,"value")!=0 && 252 strcasecmp(icurs->name,"Reference")!=0 && 253 strcasecmp(icurs->name,"minOccurs")!=0 && 254 strcasecmp(icurs->name,"maxOccurs")!=0 && 255 strcasecmp(icurs->name,"inRequest")!=0){ 256 char *itemp=strdup(dataInputsKVP); 257 sprintf(dataInputsKVP,"%s@%s=%s",itemp,icurs->name,icurs->value); 258 free(itemp); 259 } 260 icurs=icurs->next; 261 } 262 curs=curs->next; 263 i++; 264 } 265 return dataInputsKVP; 266 } 267 203 268 204 269 static void freeMap(map** mo){ … … 516 581 map* _ztmpm=getMap(_tmpm->content,subkey); 517 582 if(_ztmpm!=NULL){ 518 free(_ztmpm->value); 583 if(_ztmpm->value!=NULL) 584 free(_ztmpm->value); 519 585 _ztmpm->value=strdup(value); 520 586 }else{
Note: See TracChangeset
for help on using the changeset viewer.