version 1.6, 2015/05/29 15:58:01 |
version 1.7, 2015/08/11 22:12:48 |
|
|
} |
} |
|
|
static int |
static int |
|
magic_test_double(struct magic_line *ml, double value, double wanted) |
|
{ |
|
switch (ml->test_operator) { |
|
case 'x': |
|
return (1); |
|
case '=': |
|
return (value == wanted); |
|
} |
|
return (-1); |
|
} |
|
|
|
static int |
magic_test_type_none(__unused struct magic_line *ml, |
magic_test_type_none(__unused struct magic_line *ml, |
__unused struct magic_state *ms) |
__unused struct magic_state *ms) |
{ |
{ |
|
|
{ |
{ |
uint32_t value0; |
uint32_t value0; |
double value; |
double value; |
|
int result; |
|
|
if (magic_copy_from(ms, -1, &value0, sizeof value0) != 0) |
if (magic_copy_from(ms, -1, &value0, sizeof value0) != 0) |
return (0); |
return (0); |
|
|
if (ml->type_operator != ' ') |
if (ml->type_operator != ' ') |
return (-1); |
return (-1); |
|
|
if (ml->test_operator != 'x') |
result = magic_test_double(ml, value, (float)ml->test_double); |
return (-1); |
if (result == !ml->test_not && ml->result != NULL) { |
|
magic_add_result(ms, ml, "%g", value); |
magic_add_result(ms, ml, "%g", value); |
ms->offset += sizeof value0; |
ms->offset += sizeof value0; |
} |
return (1); |
return (1); |
} |
} |
|
|
|
|
{ |
{ |
uint64_t value0; |
uint64_t value0; |
double value; |
double value; |
|
int result; |
|
|
if (magic_copy_from(ms, -1, &value0, sizeof value0) != 0) |
if (magic_copy_from(ms, -1, &value0, sizeof value0) != 0) |
return (0); |
return (0); |
|
|
if (ml->type_operator != ' ') |
if (ml->type_operator != ' ') |
return (-1); |
return (-1); |
|
|
if (ml->test_operator != 'x') |
result = magic_test_double(ml, value, (double)ml->test_double); |
return (-1); |
if (result == !ml->test_not && ml->result != NULL) { |
|
magic_add_result(ms, ml, "%g", value); |
magic_add_result(ms, ml, "%g", value); |
ms->offset += sizeof value0; |
ms->offset += sizeof value0; |
} |
return (1); |
return (1); |
} |
} |
|
|