Ejemplo n.º 1
0
void stringToTime(char* string, int* h, int* m, int *s) {
  char hour[3];
  char minute[3];
  char second[3];
  hour[0] = string[0]; hour[1] = string[1]; hour[2] = '\0';
  minute[0] = string[2]; minute[1] = string[3]; minute[2] = '\0';
  second[0] = string[4]; second[1] = string[5]; second[2] = '\0';

  *h = sys_atoi(hour);
  *m = sys_atoi(minute);
  *s = sys_atoi(second);
}
Ejemplo n.º 2
0
/*----------------------------------------------------------------------------*/
int sys_str2int(const char *s)
{
  int m = 1;
  if(*s == '-')
  {
    m = -1;
    s ++;
  }
  else
  if(*s == '+')
    s++;

  if(*s == '0')
  {
    s ++;
    if(*s == 'x' || *s == 'X')
      return m * sys_atoi16(s + 1);
    else
    if(*s)
      return m * sys_atoi8(s + 1);
    else
      return 0;
  }
  else
  if(*s == 'x' || *s == 'X')
    return m * sys_atoi16(s + 1);

  return m * sys_atoi(s);
}
Ejemplo n.º 3
0
/*----------------------------------------------------------------------------*/
int sys_nvprintf(writer_t write, void *data, const char *fmt, va_list ap)
{
  char spec[20];
  int r = 0, i, brk;
  const char *fmt0;

  fmt0 = fmt;
  while(*fmt)
  {
    if(*fmt == '%')
    {
      r += write(data, fmt0, fmt - fmt0);
      fmt ++;
      brk = 0;
      i = 0;
      spec[0] = '\0';
      while(*fmt && !brk)
      {
        brk = 1;
        switch(*fmt)
        {
        case '%':
          r += write(data, fmt, 1);
          break;
        case 'c':
          spec[0] = va_arg(ap, int);
          r += write(data, spec, 1);
          break;

        case 'd':
        case 'i':
        case 'o':
        case 'u':
        case 'x':
        case 'X':
          r += write_int(write, data, *fmt, va_arg(ap, unsigned), sys_atoi(spec), spec[0] == '0' ? '0' : ' ');
          break;
        case 's':
          i = sys_atoi(spec);
          r += write_str(write, data, va_arg(ap, char*), i > 0 ? i : 0, i < 0 ? -i : 0);
          break;
        default:
          if(i < (int)sizeof(spec))
          {
            spec[i++] = *fmt;
            spec[i] = '\0';
          }
          brk = 0;
          break;
        }
        fmt ++;
      }
      fmt0 = fmt;
      continue;
    }
    fmt ++;
  }
Ejemplo n.º 4
0
void stringToDate(char* string, int* yr, int* m, int *d, int format) {
  /* string: a date in the format DDMMYYYY, MMDDYYYY or YYYYMMDD
   * if year < 1000 it has to be zero-padded.
   * result goes into arguments 2-4. format is the format to expect
   * (values are the same as on the dateformat setting)
   * if format is not specified, it is read according to settings.
   * does not check if the date read is valid or if the string has the right size.
   */
  char year[6];
  char month[3];
  char day[3];
  switch(format) {
    case 0:
      day[0] = string[0]; day[1] = string[1]; day[2] = '\0';
      month[0] = string[2]; month[1] = string[3]; month[2] = '\0';
      
      year[0] = string[4]; year[1] = string[5]; year[2] = string[6];
      year[3] = string[7]; year[4] = '\0';
      break;
    case 1:
      day[0] = string[2]; day[1] = string[3]; day[2] = '\0';
      month[0] = string[0]; month[1] = string[1]; month[2] = '\0';

      year[0] = string[4]; year[1] = string[5]; year[2] = string[6];
      year[3] = string[7]; year[4] = '\0';
      break;
    case 2:
      day[0] = string[6]; day[1] = string[7]; day[2] = '\0';
      month[0] = string[4]; month[1] = string[5]; month[2] = '\0';
      year[0] = string[0]; year[1] = string[1]; year[2] = string[2]; year[3] = string[3];
      year[4] = '\0';
      break;
  }

  *yr = sys_atoi(year);
  *m = sys_atoi(month);
  *d = sys_atoi(day);
}