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

Definition at line 2027 of file didMarkus.c.

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

Referenced by did_prepare_command().

2028 {
2029 int i, ret = 0;
2030 float ff;
2031 double dd;
2032 void *ptr;
2033 char *strp, *ptr1;
2034 char cc;
2035  short s;
2036 
2037  strp = *str_ptr;
2038  ptr = *buffer_ptr;
2039  if(!num)
2040  num = 1000000;
2041  switch(type)
2042  {
2043  case 'L':
2044  case 'l':
2045  case 'I':
2046  case 'i':
2047  for(i = 0; i<num; i++)
2048  {
2049  *(int *)ptr = read_str_int(strp);
2050  ptr = (int *)ptr +1;
2051  if( (strp = strchr(strp,' ')) )
2052  strp++;
2053  else
2054  break;
2055  }
2056  break;
2057  case 'S':
2058  case 's':
2059  for(i = 0; i<num; i++)
2060  {
2061  s = (short)read_str_int(strp);
2062  *((short *)ptr) = s;
2063  ptr = (short *)ptr +1;
2064  if( (strp = strchr(strp,' ')) )
2065  strp++;
2066  else
2067  break;
2068  }
2069  break;
2070  case 'F':
2071  case 'f':
2072  for(i = 0; i<num; i++)
2073  {
2074  sscanf(strp,"%f",&ff);
2075  *(float *)ptr = ff;
2076  ptr = (float *)ptr +1;
2077  if( (strp = strchr(strp,' ')) )
2078  strp++;
2079  else
2080  break;
2081  }
2082  break;
2083  case 'D':
2084  case 'd':
2085  for(i = 0; i<num; i++)
2086  {
2087  sscanf(strp,"%f",&ff);
2088  dd = (double)ff;
2089  *(double *)ptr = dd;
2090  ptr = (double *)ptr +1;
2091  if( (strp = strchr(strp,' ')) )
2092  strp++;
2093  else
2094  break;
2095  }
2096  break;
2097  case 'C':
2098  case 'c':
2099  default:
2100  for(i = 0; i<num; i++)
2101  {
2102  if((ret = read_str_char(strp, &cc)) <= 0)
2103  break;
2104  *(char *)ptr = cc;
2105  ptr = (char *)ptr +1;
2106  if( (strp = strchr(strp,' ')) )
2107  strp++;
2108  else
2109  break;
2110  }
2111  if(ret <= 0)
2112  {
2113  if(!ret)
2114  {
2115  strp++;
2116  }
2117  num = strlen(strp)+1;
2118  strncpy((char *)ptr,strp,num);
2119  if( (ptr1 = (char *)strchr((char *)ptr,'\"')) )
2120  {
2121  num--;
2122  *ptr1 = '\0';
2123  }
2124  ptr = (char *)ptr + num;
2125  if( (strp = strchr(strp,' ')) )
2126  strp++;
2127  else
2128  break;
2129  }
2130  }
2131  *buffer_ptr = ptr;
2132  *str_ptr = strp;
2133 }
int i
Definition: db_dim_client.c:21
int read_str_int(char *str)
Definition: didMarkus.c:2001
int type
int read_str_char(char *str, char *cc)
Definition: didMarkus.c:2011

+ Here is the call graph for this function:

+ Here is the caller graph for this function: