113 if (dry_run || !ansi)
118 while (pos < seq_len)
131 ansi->
attrs |= A_BOLD;
134 else if ((buf[pos] ==
'2') &&
mutt_isdigit(buf[pos + 1]) &&
137 char digit = buf[pos + 1];
141 ansi->
attrs &= ~A_BOLD;
143 else if (
digit ==
'3')
147 else if (
digit ==
'4')
149 ansi->
attrs &= ~A_UNDERLINE;
151 else if (
digit ==
'5')
153 ansi->
attrs &= ~A_BLINK;
155 else if (
digit ==
'7')
157 ansi->
attrs &= ~A_REVERSE;
165 else if (buf[pos] ==
'3')
170 if ((buf[pos + 1] >=
'0') && (buf[pos + 1] <
'8') &&
ansi_is_end_char(buf[pos + 2]))
172 elem->
color = buf[pos + 1] -
'0';
176 else if (buf[pos + 1] ==
'8')
182 unsigned long value = strtoul(buf + pos + 5, &end, 10);
187 pos += end - &buf[pos];
201 unsigned long value = 0;
204 value = strtoul(buf + pos, &end, 10);
205 if ((value > 255) || !end || (end[0] !=
';'))
210 pos += end - &buf[pos] + 1;
212 value = strtoul(buf + pos, &end, 10);
213 if ((value > 255) || !end || (end[0] !=
';'))
218 pos += end - &buf[pos] + 1;
220 value = strtoul(buf + pos, &end, 10);
221 if ((value > 255) || !end || (end[0] !=
'm'))
226 pos += end - &buf[pos] + 1;
228 elem->
color = (r << 16) + (g << 8) + (b << 0);
250 ansi->
attrs |= A_UNDERLINE;
253 else if (buf[pos] ==
'4')
258 if ((buf[pos + 1] >=
'0') && (buf[pos + 1] <
'8') &&
ansi_is_end_char(buf[pos + 2]))
260 elem->
color = buf[pos + 1] -
'0';
264 else if (buf[pos + 1] ==
'8')
270 unsigned long value = strtoul(buf + pos + 5, &end, 10);
275 pos += end - &buf[pos];
289 unsigned long value = 0;
292 value = strtoul(buf + pos, &end, 10);
293 if ((value > 255) || !end || (end[0] !=
';'))
298 pos += end - &buf[pos] + 1;
300 value = strtoul(buf + pos, &end, 10);
301 if ((value > 255) || !end || (end[0] !=
';'))
306 pos += end - &buf[pos] + 1;
308 value = strtoul(buf + pos, &end, 10);
309 if ((value > 255) || !end || (end[0] !=
'm'))
314 pos += end - &buf[pos] + 1;
316 elem->
color = (r << 16) + (g << 8) + (b << 0);
338 ansi->
attrs |= A_BLINK;
343 ansi->
attrs |= A_REVERSE;
346 else if (buf[pos] ==
';')
352 while ((pos < seq_len) && (buf[pos] !=
';'))