}
/* */
-static void HandleMarkup( char *psz_node )
-{
- static const struct
- {
- const char *psz_pattern;
- char i_char;
- } p_replace[] = {
- { "<", '<' },
- { ">", '>' },
- { "&", '&' },
- { """, '"' },
- /* This one will always match */
- { "&", '&' }
- };
-
- char *s = psz_node;
- while( ( s = strchr( s, '&' ) ) != NULL )
- {
- size_t i_size;
- int i;
- for( i = 0; ; i++ )
- {
- i_size = strlen(p_replace[i].psz_pattern);
- if( !strncmp( s, p_replace[i].psz_pattern, i_size ) )
- break;
- }
- if( i_size > 1 )
- memmove( &s[1], &s[i_size],
- strlen( s ) - i_size + 1 );
- *s++ = p_replace[i].i_char;
- }
-}
-
static int ProcessNodes( filter_t *p_filter,
xml_reader_t *p_xml_reader,
text_style_t *p_font_style,
{
/* */
HandleWhiteSpace( psz_node );
- HandleMarkup( psz_node );
+ resolve_xml_special_chars( psz_node );
SetupLine( p_filter, psz_node, &psz_text,
pi_runs, ppi_run_lengths, ppp_styles,