[BACK]Return to magic-load.c CVS log [TXT][DIR] Up to [local] / src / usr.bin / file

Diff for /src/usr.bin/file/magic-load.c between version 1.10 and 1.11

version 1.10, 2015/08/11 22:06:19 version 1.11, 2015/08/11 22:12:48
Line 842 
Line 842 
                 *cp++ = *(*line)++;                  *cp++ = *(*line)++;
         *cp = '\0';          *cp = '\0';
   
         if (*ml->type_string == 'u')          switch (ml->type) {
                 endptr = magic_strtoull(copy, &ml->test_unsigned);          case MAGIC_TYPE_FLOAT:
         else {          case MAGIC_TYPE_DOUBLE:
                 endptr = magic_strtoll(copy, &ml->test_signed);          case MAGIC_TYPE_BEFLOAT:
                 if (endptr == NULL || *endptr != '\0') {          case MAGIC_TYPE_BEDOUBLE:
                         /*          case MAGIC_TYPE_LEFLOAT:
                          * If we can't parse this as a signed number, try as          case MAGIC_TYPE_LEDOUBLE:
                          * unsigned instead.                  errno = 0;
                          */                  ml->test_double = strtod(copy, &endptr);
                         endptr = magic_strtoull(copy, &u);                  if (errno == ERANGE)
                         if (endptr != NULL && *endptr == '\0')                          endptr = NULL;
                                 ml->test_signed = (int64_t)u;                  break;
           default:
                   if (*ml->type_string == 'u')
                           endptr = magic_strtoull(copy, &ml->test_unsigned);
                   else {
                           endptr = magic_strtoll(copy, &ml->test_signed);
                           if (endptr == NULL || *endptr != '\0') {
                                   /*
                                    * If we can't parse this as a signed number,
                                    * try as unsigned instead.
                                    */
                                   endptr = magic_strtoull(copy, &u);
                                   if (endptr != NULL && *endptr == '\0')
                                           ml->test_signed = (int64_t)u;
                           }
                 }                  }
                   break;
         }          }
         if (endptr == NULL || *endptr != '\0') {          if (endptr == NULL || *endptr != '\0') {
                 magic_warn(ml, "can't parse number: %s", copy);                  magic_warn(ml, "can't parse number: %s", copy);

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11