Lines Matching refs:ms

78 file_softmagic(struct magic_set *ms, const unsigned char *buf, size_t nbytes,  in file_softmagic()  argument
83 for (ml = ms->mlist[0]->next; ml != ms->mlist[0]; ml = ml->next) in file_softmagic()
84 if ((rv = match(ms, ml->magic, ml->nmagic, buf, nbytes, 0, mode, in file_softmagic()
120 match(struct magic_set *ms, struct magic *magic, uint32_t nmagic, in match() argument
129 int print = (ms->flags & (MAGIC_MIME|MAGIC_APPLE)) == 0; in match()
134 if (file_check_mem(ms, cont_level) == -1) 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()
171 switch (magiccheck(ms, m)) { in match()
194 if ((e = handle_annotation(ms, m)) != 0) { in match()
205 if (print_sep(ms, firstline) == -1) in match()
210 if (print && mprint(ms, m) == -1) in match()
213 ms->c.li[cont_level].off = moffset(ms, m); in match()
216 if (file_check_mem(ms, ++cont_level) == -1) in match()
222 ms->line = m->lineno; /* for messages */ in match()
233 ms->offset = m->offset; in match()
235 ms->offset += in match()
236 ms->c.li[cont_level - 1].off; in match()
242 if (ms->c.li[cont_level].last_match == 1) in match()
246 switch (mget(ms, s, m, nbytes, offset, cont_level, mode, in match()
263 switch (flush ? 1 : magiccheck(ms, m)) { in match()
268 ms->c.li[cont_level].last_match = 0; in match()
273 ms->c.li[cont_level].last_match = 1; in match()
276 ms->c.li[cont_level].got_match = 1; in match()
277 else if (ms->c.li[cont_level].got_match) { in match()
278 ms->c.li[cont_level].got_match = 0; in match()
281 if ((e = handle_annotation(ms, m)) != 0) { in match()
292 if (print_sep(ms, firstline) in match()
308 file_printf(ms, " ") == -1) in match()
312 if (print && mprint(ms, m) == -1) in match()
315 ms->c.li[cont_level].off = moffset(ms, m); in match()
325 if (file_check_mem(ms, ++cont_level) == -1) in match()
335 if ((ms->flags & MAGIC_CONTINUE) == 0 && *printed_something) { in match()
343 check_fmt(struct magic_set *ms, struct magic *m) in check_fmt() argument
362 mprint(struct magic_set *ms, struct magic *m) in mprint() argument
369 union VALUETYPE *p = &ms->ms_value; 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()
388 t = ms->offset + sizeof(char); 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()
410 t = ms->offset + sizeof(short); 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()
431 t = ms->offset + sizeof(int32_t); 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()
440 t = ms->offset + sizeof(int64_t); in mprint()
448 if (file_printf(ms, m->desc, m->value.s) == -1) in mprint()
450 t = ms->offset + m->vallen; in mprint()
456 t = ms->offset + strlen(str); in mprint()
474 if (file_printf(ms, m->desc, str) == -1) in mprint()
486 if (file_printf(ms, m->desc, file_fmttime(p->l, FILE_T_LOCAL, in mprint()
489 t = ms->offset + sizeof(uint32_t); in mprint()
496 if (file_printf(ms, m->desc, file_fmttime(p->l, 0, tbuf)) == -1) in mprint()
498 t = ms->offset + sizeof(uint32_t); in mprint()
504 if (file_printf(ms, m->desc, file_fmttime(p->q, FILE_T_LOCAL, in mprint()
507 t = ms->offset + sizeof(uint64_t); in mprint()
513 if (file_printf(ms, m->desc, file_fmttime(p->q, 0, tbuf)) == -1) in mprint()
515 t = ms->offset + sizeof(uint64_t); in mprint()
521 if (file_printf(ms, m->desc, file_fmttime(p->q, FILE_T_WINDOWS, in mprint()
524 t = ms->offset + sizeof(uint64_t); 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()
544 t = ms->offset + sizeof(float); 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()
564 t = ms->offset + sizeof(double); in mprint()
571 cp = estrndup((const char *)ms->search.s, ms->search.rm_len); in mprint()
573 file_oomem(ms, ms->search.rm_len); in mprint()
576 rval = file_printf(ms, m->desc, cp); in mprint()
583 t = ms->search.offset; in mprint()
585 t = ms->search.offset + ms->search.rm_len; in mprint()
590 if (file_printf(ms, m->desc, m->value.s) == -1) in mprint()
593 t = ms->search.offset; in mprint()
595 t = ms->search.offset + m->vallen; in mprint()
599 if (file_printf(ms, m->desc, m->value.s) == -1) in mprint()
601 t = ms->offset; in mprint()
607 t = ms->offset; 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
622 return CAST(int32_t, (ms->offset + sizeof(char))); in moffset()
627 return CAST(int32_t, (ms->offset + sizeof(short))); in moffset()
633 return CAST(int32_t, (ms->offset + sizeof(int32_t))); in moffset()
638 return CAST(int32_t, (ms->offset + sizeof(int64_t))); in moffset()
645 return ms->offset + m->vallen; in moffset()
647 union VALUETYPE *p = &ms->ms_value; in moffset()
652 t = CAST(uint32_t, (ms->offset + strlen(p->s))); in moffset()
662 return CAST(int32_t, (ms->offset + sizeof(uint32_t))); in moffset()
668 return CAST(int32_t, (ms->offset + sizeof(uint32_t))); in moffset()
673 return CAST(int32_t, (ms->offset + sizeof(uint64_t))); in moffset()
678 return CAST(int32_t, (ms->offset + sizeof(uint64_t))); in moffset()
683 return CAST(int32_t, (ms->offset + sizeof(float))); in moffset()
688 return CAST(int32_t, (ms->offset + sizeof(double))); in moffset()
692 return CAST(int32_t, ms->search.offset); in moffset()
694 return CAST(int32_t, (ms->search.offset + in moffset()
695 ms->search.rm_len)); in moffset()
699 return CAST(int32_t, ms->search.offset); in moffset()
701 return CAST(int32_t, (ms->search.offset + m->vallen)); in moffset()
704 return ms->offset; in moffset()
707 return ms->offset; in moffset()
854 mconvert(struct magic_set *ms, struct magic *m, int flip) in mconvert() argument
856 union VALUETYPE *p = &ms->ms_value; in mconvert()
992 file_magerror(ms, "invalid type %d in mconvert()", m->type); in mconvert()
1008 mcopy(struct magic_set *ms, union VALUETYPE *p, int type, int indir, in mcopy() argument
1018 ms->search.s = RCAST(const char *, s) + offset; in mcopy()
1019 ms->search.s_len = nbytes - offset; in mcopy()
1020 ms->search.offset = offset; in mcopy()
1044 ms->search.s_len = 0; in mcopy()
1045 ms->search.s = NULL; in mcopy()
1064 ms->search.s = buf; in mcopy()
1065 ms->search.s_len = last - buf; in mcopy()
1066 ms->search.offset = offset; in mcopy()
1067 ms->search.rm_len = 0; in mcopy()
1082 file_magerror(ms, "invalid offset %u in mcopy()", in mcopy()
1130 mget(struct magic_set *ms, const unsigned char *s, struct magic *m, in mget() argument
1135 uint32_t soffset, offset = ms->offset; in mget()
1138 union VALUETYPE *p = &ms->ms_value; in mget()
1142 file_error(ms, 0, "recursion nesting exceeded"); in mget()
1146 if (mcopy(ms, p, m->type, m->flag & INDIR, s, (uint32_t)(offset + o), in mget()
1150 if ((ms->flags & MAGIC_DEBUG) != 0) { in mget()
1192 if ((ms->flags & MAGIC_DEBUG) != 0) in mget()
1633 offset += ms->c.li[cont_level-1].off; in mget()
1635 if ((ms->flags & MAGIC_DEBUG) != 0) in mget()
1640 if ((ms->flags & MAGIC_DEBUG) != 0) in mget()
1643 if (mcopy(ms, p, m->type, 0, s, offset, nbytes, m) == -1) in mget()
1645 ms->offset = offset; in mget()
1647 if ((ms->flags & MAGIC_DEBUG) != 0) { in mget()
1710 sbuf = ms->o.buf; in mget()
1711 soffset = ms->offset; in mget()
1712 ms->o.buf = NULL; in mget()
1713 ms->offset = 0; in mget()
1714 rv = file_softmagic(ms, s + offset, nbytes - offset, in mget()
1716 if ((ms->flags & MAGIC_DEBUG) != 0) in mget()
1718 rbuf = ms->o.buf; in mget()
1719 ms->o.buf = sbuf; in mget()
1720 ms->offset = soffset; in mget()
1722 if ((ms->flags & (MAGIC_MIME|MAGIC_APPLE)) == 0 && in mget()
1723 file_printf(ms, m->desc, offset) == -1) { in mget()
1729 if (file_printf(ms, "%s", rbuf) == -1) { in mget()
1749 if (file_magicfind(ms, sbuf, &ml) == -1) { in mget()
1750 file_error(ms, 0, "cannot find entry `%s'", sbuf); in mget()
1757 rv = match(ms, ml.magic, ml.nmagic, s, nbytes, offset + o, 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
1896 union VALUETYPE *p = &ms->ms_value; in magiccheck()
1967 file_magerror(ms, "cannot happen with float: invalid relation `%c'", in magiccheck()
2001 file_magerror(ms, "cannot happen with double: invalid relation `%c'", m->reln); in magiccheck()
2027 if (ms->search.s == NULL) in magiccheck()
2035 if (slen + idx > ms->search.s_len) in magiccheck()
2038 v = file_strncmp(m->value.s, ms->search.s + idx, slen, m->str_flags); in magiccheck()
2040 ms->search.offset += idx; in magiccheck()
2078 haystack = estrndup(ms->search.s, ms->search.s_len); in magiccheck()
2081 …php_pcre_match_impl(pce, haystack, ms->search.s_len, retval, subpats, 1, 1, PREG_OFFSET_CAPTURE, 0… in magiccheck()
2166 ms->search.s += (int)Z_LVAL_P(pattern_offset); /* this is where the match starts */ in magiccheck()
2167ms->search.offset += (size_t)Z_LVAL_P(pattern_offset); /* this is where the match starts as size_t… in magiccheck()
2168 ms->search.rm_len = Z_STRLEN_P(pattern_match) /* This is the length of the matched pattern */; in magiccheck()
2199 file_magerror(ms, "invalid type %d in magiccheck()", m->type); in magiccheck()
2203 v = file_signextend(ms, m, v); in magiccheck()
2207 if ((ms->flags & MAGIC_DEBUG) != 0) in magiccheck()
2215 if ((ms->flags & MAGIC_DEBUG) != 0) in magiccheck()
2223 if ((ms->flags & MAGIC_DEBUG) != 0) in magiccheck()
2232 if ((ms->flags & MAGIC_DEBUG) != 0) in magiccheck()
2240 if ((ms->flags & MAGIC_DEBUG) != 0) in magiccheck()
2250 if ((ms->flags & MAGIC_DEBUG) != 0) in magiccheck()
2258 if ((ms->flags & MAGIC_DEBUG) != 0) in magiccheck()
2267 if ((ms->flags & MAGIC_DEBUG) != 0) in magiccheck()
2277 if ((ms->flags & MAGIC_DEBUG) != 0) in magiccheck()
2287 file_magerror(ms, "cannot happen: invalid relation `%c'", in magiccheck()
2296 handle_annotation(struct magic_set *ms, struct magic *m) in handle_annotation() argument
2298 if (ms->flags & MAGIC_APPLE) { in handle_annotation()
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()
2312 print_sep(struct magic_set *ms, int firstline) in print_sep() argument
2314 if (ms->flags & MAGIC_MIME) in print_sep()
2322 return file_printf(ms, "\n- "); in print_sep()