FACT++  1.0
void did_read_string ( char  type,
int  num,
void **  buffer_ptr,
char **  str_ptr 
)

Definition at line 2365 of file webDid.c.

References i, read_str_char(), and read_str_int().

Referenced by did_prepare_command().

2366 {
2367 int i, ret = 0;
2368 float ff;
2369 double dd;
2370 void *ptr;
2371 char *strp, *ptr1;
2372 char cc;
2373  short s;
2374 
2375  strp = *str_ptr;
2376  ptr = *buffer_ptr;
2377  if(!num)
2378  num = 1000000;
2379  switch(type)
2380  {
2381  case 'L':
2382  case 'l':
2383  case 'I':
2384  case 'i':
2385  for(i = 0; i<num; i++)
2386  {
2387  *(int *)ptr = read_str_int(strp);
2388  ptr = (int *)ptr +1;
2389  if( (strp = strchr(strp,' ')) )
2390  strp++;
2391  else
2392  break;
2393  }
2394  break;
2395  case 'S':
2396  case 's':
2397  for(i = 0; i<num; i++)
2398  {
2399  s = (short)read_str_int(strp);
2400  *((short *)ptr) = s;
2401  ptr = (short *)ptr +1;
2402  if( (strp = strchr(strp,' ')) )
2403  strp++;
2404  else
2405  break;
2406  }
2407  break;
2408  case 'F':
2409  case 'f':
2410  for(i = 0; i<num; i++)
2411  {
2412  sscanf(strp,"%f",&ff);
2413  *(float *)ptr = ff;
2414  ptr = (float *)ptr +1;
2415  if( (strp = strchr(strp,' ')) )
2416  strp++;
2417  else
2418  break;
2419  }
2420  break;
2421  case 'D':
2422  case 'd':
2423  for(i = 0; i<num; i++)
2424  {
2425  sscanf(strp,"%f",&ff);
2426  dd = (double)ff;
2427  *(double *)ptr = dd;
2428  ptr = (double *)ptr +1;
2429  if( (strp = strchr(strp,' ')) )
2430  strp++;
2431  else
2432  break;
2433  }
2434  break;
2435  case 'C':
2436  case 'c':
2437  default:
2438  for(i = 0; i<num; i++)
2439  {
2440  if((ret = read_str_char(strp, &cc)) <= 0)
2441  break;
2442  *(char *)ptr = cc;
2443  ptr = (char *)ptr +1;
2444  if( (strp = strchr(strp,' ')) )
2445  strp++;
2446  else
2447  break;
2448  }
2449  if(ret <= 0)
2450  {
2451  if(!ret)
2452  {
2453  strp++;
2454  }
2455  num = (int)strlen(strp)+1;
2456  strncpy((char *)ptr,strp,(size_t)num);
2457  if( (ptr1 = (char *)strchr((char *)ptr,'\"')) )
2458  {
2459  num--;
2460  *ptr1 = '\0';
2461  }
2462  ptr = (char *)ptr + num;
2463  if( (strp = strchr(strp,' ')) )
2464  strp++;
2465  else
2466  break;
2467  }
2468  }
2469  *buffer_ptr = ptr;
2470  *str_ptr = strp;
2471 }
int read_str_char(char *str, char *cc)
Definition: webDid.c:2336
int i
Definition: db_dim_client.c:21
int type
int read_str_int(char *str)
Definition: webDid.c:2326

+ Here is the call graph for this function:

+ Here is the caller graph for this function: