=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/file/magic-test.c,v retrieving revision 1.17 retrieving revision 1.18 diff -c -r1.17 -r1.18 *** src/usr.bin/file/magic-test.c 2016/04/30 21:10:28 1.17 --- src/usr.bin/file/magic-test.c 2016/04/30 21:42:11 1.18 *************** *** 1,4 **** ! /* $OpenBSD: magic-test.c,v 1.17 2016/04/30 21:10:28 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: magic-test.c,v 1.18 2016/04/30 21:42:11 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott *************** *** 1054,1060 **** magic_test_type_default(__unused struct magic_line *ml, __unused struct magic_state *ms) { ! return (1); } static int (*magic_test_functions[])(struct magic_line *, --- 1054,1060 ---- magic_test_type_default(__unused struct magic_line *ml, __unused struct magic_state *ms) { ! return (!ms->matched); } static int (*magic_test_functions[])(struct magic_line *, *************** *** 1219,1229 **** --- 1219,1232 ---- ml->type_string, ml->test_operator, offset, ms->offset, ml->result == NULL ? "" : ml->result); + ms->matched = 0; offset = ms->offset; TAILQ_FOREACH(child, &ml->children, entry) { ms->offset = offset; magic_test_line(child, ms); } + + ms->matched = 1; return (ml->result != NULL); }