| 146 | virtual ~mblock_virtual_dumper_t() {} |
| 147 | virtual void AddLine(qstring &qs) = 0; |
| 148 | AS_PRINTF(3, 4) int print(int indent, const char *format, ...) |
| 149 | { |
| 150 | qstring buf; |
| 151 | if (indent > 0) |
| 152 | buf.fill(0, ' ', indent); |
| 153 | va_list va; |
| 154 | va_start(va, format); |
| 155 | buf.cat_vsprnt(format, va); |
| 156 | va_end(va); |
| 157 | |
| 158 | // ida 7.1 apparently has a problem with line prefixes, remove this color |
| 159 | static const char pfx_on[] = { COLOR_ON, COLOR_PREFIX, 0 }; |
| 160 | static const char pfx_off[] = { COLOR_OFF, COLOR_PREFIX, 0 }; |
| 161 | buf.replace(pfx_on, ""); |
| 162 | buf.replace(pfx_off, ""); |
| 163 | |
| 164 | AddLine(buf); |
| 165 | return (int)buf.length(); |
| 166 | } |
| 167 | }; |
| 168 | |
| 169 | struct ida_local mblock_qstring_dumper_t : public mblock_virtual_dumper_t |