-static void pdf_rdaddwc(rdstringc *rs, word *text) {
- char *c;
-
- for (; text; text = text->next) switch (text->type) {
- case word_HyperLink:
- case word_HyperEnd:
- case word_UpperXref:
- case word_LowerXref:
- case word_XrefEnd:
- case word_IndexRef:
- break;
-
- case word_Normal:
- case word_Emph:
- case word_Code:
- case word_WeakCode:
- case word_WhiteSpace:
- case word_EmphSpace:
- case word_CodeSpace:
- case word_WkCodeSpace:
- case word_Quote:
- case word_EmphQuote:
- case word_CodeQuote:
- case word_WkCodeQuote:
- assert(text->type != word_CodeQuote &&
- text->type != word_WkCodeQuote);
- if (towordstyle(text->type) == word_Emph &&
- (attraux(text->aux) == attr_First ||
- attraux(text->aux) == attr_Only))
- rdaddc(rs, '_'); /* FIXME: configurability */
- else if (towordstyle(text->type) == word_Code &&
- (attraux(text->aux) == attr_First ||
- attraux(text->aux) == attr_Only))
- rdaddc(rs, '\''); /* FIXME: configurability */
- if (removeattr(text->type) == word_Normal) {
- if (pdf_convert(text->text, &c))
- rdaddsc(rs, c);
- else
- pdf_rdaddwc(rs, text->alt);
- sfree(c);
- } else if (removeattr(text->type) == word_WhiteSpace) {
- rdaddc(rs, ' ');
- } else if (removeattr(text->type) == word_Quote) {
- rdaddc(rs, '\''); /* FIXME: configurability */
- }
- if (towordstyle(text->type) == word_Emph &&
- (attraux(text->aux) == attr_Last ||
- attraux(text->aux) == attr_Only))
- rdaddc(rs, '_'); /* FIXME: configurability */
- else if (towordstyle(text->type) == word_Code &&
- (attraux(text->aux) == attr_Last ||
- attraux(text->aux) == attr_Only))
- rdaddc(rs, '\''); /* FIXME: configurability */
- break;