Lines Matching refs:m

139 		struct magic *m = &magic[magindex];  in match()  local
141 if (m->type != FILE_NAME) in match()
142 if ((IS_LIBMAGIC_STRING(m->type) && in match()
144 ((text && (m->str_flags & FLT) == STRING_BINTEST) || in match()
145 (!text && (m->str_flags & FLT) == STRING_TEXTTEST))) || in match()
146 (m->flag & mode) != mode) { in match()
155 ms->offset = m->offset; in match()
156 ms->line = m->lineno; in match()
159 switch (mget(ms, s, m, nbytes, offset, cont_level, mode, text, in match()
165 flush = m->reln != '!'; in match()
168 if (m->type == FILE_INDIRECT) in match()
171 switch (magiccheck(ms, m)) { in match()
194 if ((e = handle_annotation(ms, m)) != 0) { in match()
202 if (*m->desc) { in match()
210 if (print && mprint(ms, m) == -1) in match()
213 ms->c.li[cont_level].off = moffset(ms, m); in match()
221 m = &magic[magindex]; in match()
222 ms->line = m->lineno; /* for messages */ in match()
224 if (cont_level < m->cont_level) in match()
226 if (cont_level > m->cont_level) { in match()
231 cont_level = m->cont_level; in match()
233 ms->offset = m->offset; in match()
234 if (m->flag & OFFADD) { in match()
240 if (m->cond == COND_ELSE || in match()
241 m->cond == COND_ELIF) { in match()
246 switch (mget(ms, s, m, nbytes, offset, cont_level, mode, in match()
252 if (m->reln != '!') in match()
257 if (m->type == FILE_INDIRECT) in match()
263 switch (flush ? 1 : magiccheck(ms, m)) { in match()
275 if (m->type != FILE_DEFAULT) in match()
281 if ((e = handle_annotation(ms, m)) != 0) { in match()
289 if (*m->desc) { in match()
305 && ((m->flag & NOSPACE) == 0) in match()
306 && *m->desc) { in match()
312 if (print && mprint(ms, m) == -1) in match()
315 ms->c.li[cont_level].off = moffset(ms, m); in match()
317 if (*m->desc) in match()
343 check_fmt(struct magic_set *ms, struct magic *m) in check_fmt() argument
350 if (strchr(m->desc, '%') == NULL) { in check_fmt()
357 return !pcre_exec(pce, re_extra, m->desc, strlen(m->desc), 0, re_options, NULL, 0); in check_fmt()
362 mprint(struct magic_set *ms, struct magic *m) in mprint() argument
371 switch (m->type) { in mprint()
373 v = file_signextend(ms, m, (uint64_t)p->b); in mprint()
374 switch (check_fmt(ms, m)) { in mprint()
380 if (file_printf(ms, m->desc, buf) == -1) in mprint()
384 if (file_printf(ms, m->desc, (unsigned char) v) == -1) in mprint()
394 v = file_signextend(ms, m, (uint64_t)p->h); in mprint()
395 switch (check_fmt(ms, m)) { in mprint()
401 if (file_printf(ms, m->desc, buf) == -1) in mprint()
406 file_printf(ms, m->desc, (unsigned short) v) == -1) in mprint()
417 v = file_signextend(ms, m, (uint64_t)p->l); in mprint()
418 switch (check_fmt(ms, m)) { in mprint()
423 if (file_printf(ms, m->desc, buf) == -1) in mprint()
427 if (file_printf(ms, m->desc, (uint32_t) v) == -1) in mprint()
437 v = file_signextend(ms, m, p->q); in mprint()
438 if (file_printf(ms, m->desc, (uint64_t) v) == -1) in mprint()
447 if (m->reln == '=' || m->reln == '!') { in mprint()
448 if (file_printf(ms, m->desc, m->value.s) == -1) in mprint()
450 t = ms->offset + m->vallen; in mprint()
458 if (*m->value.s == '\0') in mprint()
461 if (m->str_flags & STRING_TRIM) { in mprint()
474 if (file_printf(ms, m->desc, str) == -1) in mprint()
477 if (m->type == FILE_PSTRING) in mprint()
478 t += file_pstring_length_size(m); in mprint()
486 if (file_printf(ms, m->desc, file_fmttime(p->l, FILE_T_LOCAL, in mprint()
496 if (file_printf(ms, m->desc, file_fmttime(p->l, 0, tbuf)) == -1) in mprint()
504 if (file_printf(ms, m->desc, file_fmttime(p->q, FILE_T_LOCAL, in mprint()
513 if (file_printf(ms, m->desc, file_fmttime(p->q, 0, tbuf)) == -1) in mprint()
521 if (file_printf(ms, m->desc, file_fmttime(p->q, FILE_T_WINDOWS, in mprint()
531 switch (check_fmt(ms, m)) { in mprint()
536 if (file_printf(ms, m->desc, buf) == -1) in mprint()
540 if (file_printf(ms, m->desc, vf) == -1) in mprint()
551 switch (check_fmt(ms, m)) { in mprint()
556 if (file_printf(ms, m->desc, buf) == -1) in mprint()
560 if (file_printf(ms, m->desc, vd) == -1) in mprint()
576 rval = file_printf(ms, m->desc, cp); in mprint()
582 if ((m->str_flags & REGEX_OFFSET_START)) in mprint()
590 if (file_printf(ms, m->desc, m->value.s) == -1) in mprint()
592 if ((m->str_flags & REGEX_OFFSET_START)) in mprint()
595 t = ms->search.offset + m->vallen; in mprint()
599 if (file_printf(ms, m->desc, m->value.s) == -1) in mprint()
611 file_magerror(ms, "invalid m->type (%d) in mprint()", m->type); in mprint()
618 moffset(struct magic_set *ms, struct magic *m) in moffset() argument
620 switch (m->type) { in moffset()
644 if (m->reln == '=' || m->reln == '!') in moffset()
645 return ms->offset + m->vallen; in moffset()
650 if (*m->value.s == '\0') in moffset()
653 if (m->type == FILE_PSTRING) in moffset()
654 t += (uint32_t)file_pstring_length_size(m); in moffset()
691 if ((m->str_flags & REGEX_OFFSET_START) != 0) in moffset()
698 if ((m->str_flags & REGEX_OFFSET_START) != 0) in moffset()
701 return CAST(int32_t, (ms->search.offset + m->vallen)); in moffset()
765 if (m->num_mask) \
766 switch (m->mask_op & FILE_OPS_MASK) { \
768 p->fld &= cast m->num_mask; \
771 p->fld |= cast m->num_mask; \
774 p->fld ^= cast m->num_mask; \
777 p->fld += cast m->num_mask; \
780 p->fld -= cast m->num_mask; \
783 p->fld *= cast m->num_mask; \
786 p->fld /= cast m->num_mask; \
789 p->fld %= cast m->num_mask; \
792 if (m->mask_op & FILE_OPINVERSE) \
796 cvt_8(union VALUETYPE *p, const struct magic *m) in cvt_8() argument
802 cvt_16(union VALUETYPE *p, const struct magic *m) in cvt_16() argument
808 cvt_32(union VALUETYPE *p, const struct magic *m) in cvt_32() argument
814 cvt_64(union VALUETYPE *p, const struct magic *m) in cvt_64() argument
820 if (m->num_mask) \
821 switch (m->mask_op & FILE_OPS_MASK) { \
823 p->fld += cast (int64_t)m->num_mask; \
826 p->fld -= cast (int64_t)m->num_mask; \
829 p->fld *= cast (int64_t)m->num_mask; \
832 p->fld /= cast (int64_t)m->num_mask; \
837 cvt_float(union VALUETYPE *p, const struct magic *m) in cvt_float() argument
843 cvt_double(union VALUETYPE *p, const struct magic *m) in cvt_double() argument
854 mconvert(struct magic_set *ms, struct magic *m, int flip) in mconvert() argument
858 switch (cvt_flip(m->type, flip)) { in mconvert()
860 cvt_8(p, m); in mconvert()
863 cvt_16(p, m); in mconvert()
868 cvt_32(p, m); in mconvert()
874 cvt_64(p, m); in mconvert()
884 size_t sz = file_pstring_length_size(m); in mconvert()
886 size_t len = file_pstring_get_length(m, ptr1); in mconvert()
906 cvt_16(p, m); in mconvert()
913 cvt_32(p, m); in mconvert()
924 cvt_64(p, m); in mconvert()
928 cvt_16(p, m); in mconvert()
935 cvt_32(p, m); in mconvert()
946 cvt_64(p, m); in mconvert()
953 cvt_32(p, m); in mconvert()
956 cvt_float(p, m); in mconvert()
961 cvt_float(p, m); in mconvert()
966 cvt_float(p, m); in mconvert()
969 cvt_double(p, m); in mconvert()
976 cvt_double(p, m); in mconvert()
983 cvt_double(p, m); in mconvert()
992 file_magerror(ms, "invalid type %d in mconvert()", m->type); in mconvert()
1009 const unsigned char *s, uint32_t offset, size_t nbytes, struct magic *m) in mcopy() argument
1031 linecnt = m->str_range; in mcopy()
1130 mget(struct magic_set *ms, const unsigned char *s, struct magic *m, in mget() argument
1146 if (mcopy(ms, p, m->type, m->flag & INDIR, s, (uint32_t)(offset + o), in mget()
1147 (uint32_t)nbytes, m) == -1) in mget()
1152 "nbytes=%zu)\n", m->type, m->flag, offset, o, nbytes); in mget()
1156 if (m->flag & INDIR) { in mget()
1157 int off = m->in_offset; in mget()
1158 if (m->in_op & FILE_OPINDIRECT) { in mget()
1161 switch (cvt_flip(m->in_type, flip)) { in mget()
1195 switch (cvt_flip(m->in_type, flip)) { in mget()
1200 switch (m->in_op & FILE_OPS_MASK) { in mget()
1228 if (m->in_op & FILE_OPINVERSE) in mget()
1235 switch (m->in_op & FILE_OPS_MASK) { in mget()
1280 if (m->in_op & FILE_OPINVERSE) in mget()
1287 switch (m->in_op & FILE_OPS_MASK) { in mget()
1332 if (m->in_op & FILE_OPINVERSE) in mget()
1339 switch (m->in_op & FILE_OPS_MASK) { in mget()
1368 if (m->in_op & FILE_OPINVERSE) in mget()
1376 switch (m->in_op & FILE_OPS_MASK) { in mget()
1439 if (m->in_op & FILE_OPINVERSE) in mget()
1447 switch (m->in_op & FILE_OPS_MASK) { in mget()
1510 if (m->in_op & FILE_OPINVERSE) in mget()
1517 switch (m->in_op & FILE_OPS_MASK) { in mget()
1580 if (m->in_op & FILE_OPINVERSE) in mget()
1587 switch (m->in_op & FILE_OPS_MASK) { in mget()
1615 if (m->in_op & FILE_OPINVERSE) in mget()
1620 switch (cvt_flip(m->in_type, flip)) { in mget()
1632 if (m->flag & INDIROFFADD) { in mget()
1643 if (mcopy(ms, p, m->type, 0, s, offset, nbytes, m) == -1) in mget()
1654 switch (m->type) { in mget()
1696 if (OFFSET_OOB(nbytes, offset, m->vallen)) in mget()
1723 file_printf(ms, m->desc, offset) == -1) { in mget()
1744 sbuf = m->value.s; in mget()
1755 if (m->flag & NOSPACE) in mget()
1765 if (file_printf(ms, "%s", m->desc) == -1) in mget()
1772 if (!mconvert(ms, m, flip)) in mget()
1889 magiccheck(struct magic_set *ms, struct magic *m) in magiccheck() argument
1891 uint64_t l = m->value.q; in magiccheck()
1898 switch (m->type) { in magiccheck()
1942 fl = m->value.f; in magiccheck()
1944 switch (m->reln) { in magiccheck()
1968 m->reln); in magiccheck()
1976 dl = m->value.d; in magiccheck()
1978 switch (m->reln) { in magiccheck()
2001 file_magerror(ms, "cannot happen with double: invalid relation `%c'", m->reln); in magiccheck()
2014 v = file_strncmp(m->value.s, p->s, (size_t)m->vallen, m->str_flags); in magiccheck()
2020 v = file_strncmp16(m->value.s, p->s, (size_t)m->vallen, m->str_flags); in magiccheck()
2030 slen = MIN(m->vallen, sizeof(m->value.s)); in magiccheck()
2034 for (idx = 0; m->str_range == 0 || idx < m->str_range; idx++) { in magiccheck()
2038 v = file_strncmp(m->value.s, ms->search.s + idx, slen, m->str_flags); in magiccheck()
2053 ZVAL_STRINGL(pattern, (char *)m->value.s, m->vallen, 0); in magiccheck()
2057 if (m->str_flags & STRING_IGNORE_CASE) { in magiccheck()
2199 file_magerror(ms, "invalid type %d in magiccheck()", m->type); in magiccheck()
2203 v = file_signextend(ms, m, v); in magiccheck()
2205 switch (m->reln) { in magiccheck()
2230 if (m->flag & UNSIGNED) { in magiccheck()
2248 if (m->flag & UNSIGNED) { in magiccheck()
2288 m->reln); in magiccheck()
2296 handle_annotation(struct magic_set *ms, struct magic *m) in handle_annotation() argument
2299 if (file_printf(ms, "%.8s", m->apple) == -1) in handle_annotation()
2303 if ((ms->flags & MAGIC_MIME_TYPE) && m->mimetype[0]) { in handle_annotation()
2304 if (file_printf(ms, "%s", m->mimetype) == -1) in handle_annotation()