=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/file/magic-load.c,v retrieving revision 1.19 retrieving revision 1.20 diff -c -r1.19 -r1.20 *** src/usr.bin/file/magic-load.c 2015/11/15 22:11:18 1.19 --- src/usr.bin/file/magic-load.c 2016/05/01 08:48:39 1.20 *************** *** 1,4 **** ! /* $OpenBSD: magic-load.c,v 1.19 2015/11/15 22:11:18 tobias Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: magic-load.c,v 1.20 2016/05/01 08:48:39 nicm Exp $ */ /* * Copyright (c) 2015 Nicholas Marriott *************** *** 191,197 **** else { switch (ml->type) { case MAGIC_TYPE_NONE: - case MAGIC_TYPE_DEFAULT: case MAGIC_TYPE_BESTRING16: case MAGIC_TYPE_LESTRING16: return (0); /* don't use result */ --- 191,196 ---- *************** *** 260,265 **** --- 259,266 ---- case MAGIC_TYPE_PSTRING: case MAGIC_TYPE_REGEX: case MAGIC_TYPE_SEARCH: + case MAGIC_TYPE_DEFAULT: + case MAGIC_TYPE_CLEAR: re = &ml->root->format_string; break; } *************** *** 295,300 **** --- 296,303 ---- case MAGIC_TYPE_NONE: case MAGIC_TYPE_DEFAULT: return (0); + case MAGIC_TYPE_CLEAR: + break; case MAGIC_TYPE_BYTE: case MAGIC_TYPE_UBYTE: n += 1 * MAGIC_STRENGTH_MULTIPLIER; *************** *** 794,799 **** --- 797,804 ---- ml->type = MAGIC_TYPE_MELDATE; else if (strcmp(s, "default") == 0 || strcmp(s, "udefault") == 0) ml->type = MAGIC_TYPE_DEFAULT; + else if (strcmp(s, "clear") == 0 || strcmp(s, "uclear") == 0) + ml->type = MAGIC_TYPE_CLEAR; else { magic_warn(ml, "unknown type: %s", s); goto fail; *************** *** 832,837 **** --- 837,848 ---- s = *line; if (s[0] == 'x' && (s[1] == '\0' || isspace((u_char)s[1]))) { (*line)++; + ml->test_operator = 'x'; + return (0); + } + + if (ml->type == MAGIC_TYPE_DEFAULT || ml->type == MAGIC_TYPE_CLEAR) { + magic_warn(ml, "test specified for default or clear"); ml->test_operator = 'x'; return (0); }