}
break;
+ case 'c':
+ /* insert charset */
+ if (ct->c_charset) {
+ strncpy(bp, ct->c_charset, buflen);
+ }
+ break;
+
case 'd':
/* insert content description */
if (ct->c_descr) {
}
}
- if (buflen <= 0 || (ct->c_termproc &&
- (size_t)buflen <= strlen(ct->c_termproc))) {
- /*
- ** content_error would provide a more useful error message
- ** here, except that if we got overrun, it probably would
- ** too.
- */
- fprintf(stderr, "Buffer overflow constructing show command!\n");
- return NOTOK;
- }
-
- /* use charset string to modify display method */
- if (ct->c_termproc) {
- char term[BUFSIZ];
-
- strncpy(term, buffer, sizeof(term));
- snprintf(buffer, sizeof(buffer), ct->c_termproc, term);
- }
-
got_command:
return show_content_aux2(ct, alternate, cracked, buffer,
fd, xlist, xstdin, xtty);
** if it is not a text part of a multipart/alternative
*/
if (!alternate || ct->c_subtype == TEXT_PLAIN) {
- snprintf(buffer, sizeof(buffer), "%%p%s '%%F'", defaultpager);
+ if (!check_charset(ct->c_charset, strlen(ct->c_charset))) {
+ snprintf(buffer, sizeof(buffer), "%%liconv -f '%s'",
+ ct->c_charset);
+ } else {
+ snprintf(buffer, sizeof(buffer), "%%lcat");
+ }
cp = (ct->c_showproc = getcpy(buffer));
return show_content_aux(ct, alternate, cp, NULL);
}
}
break;
+ case 'c':
+ /* insert charset */
+ if (ct->c_charset) {
+ strncpy(bp, ct->c_charset, buflen);
+ }
+ break;
+
case 'd':
/* insert content description */
if (ct->c_descr) {
}
}
- if (buflen <= 0 || (ct->c_termproc &&
- (size_t)buflen <= strlen(ct->c_termproc))) {
- /*
- ** content_error would provide a more useful error message
- ** here, except that if we got overrun, it probably would
- ** too.
- */
- fprintf(stderr, "Buffer overflow constructing show command!\n");
- return NOTOK;
- }
-
- /* use charset string to modify display method */
- if (ct->c_termproc) {
- char term[BUFSIZ];
-
- strncpy(term, buffer, sizeof(term));
- snprintf(buffer, sizeof(buffer), ct->c_termproc, term);
- }
-
return show_content_aux2(ct, alternate, NULL, buffer,
NOTOK, xlist, 0, xtty);
}