]> git.saurik.com Git - wxWidgets.git/blob - src/html/m_meta.cpp
fixed entities parsing under win32
[wxWidgets.git] / src / html / m_meta.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: m_meta.cpp
3 // Purpose: wxHtml module for parsing <meta> tag
4 // Author: Vaclav Slavik
5 // RCS-ID: $Id$
6 // Copyright: (c) 2000 Vaclav Slavik
7 // Licence: wxWindows Licence
8 /////////////////////////////////////////////////////////////////////////////
9
10 #ifdef __GNUG__
11 #pragma implementation
12 #endif
13
14 #include "wx/wxprec.h"
15
16
17 #include "wx/defs.h"
18 #if wxUSE_HTML && wxUSE_STREAMS
19
20 #ifdef __BORDLANDC__
21 #pragma hdrstop
22 #endif
23
24 #ifndef WXPRECOMP
25 #endif
26
27 #include "wx/fontmap.h"
28 #include "wx/html/forcelnk.h"
29 #include "wx/html/m_templ.h"
30 #include "wx/html/htmlcell.h"
31
32 FORCE_LINK_ME(m_meta)
33
34
35
36
37 TAG_HANDLER_BEGIN(META, "META")
38
39 TAG_HANDLER_PROC(tag)
40 {
41 if (tag.HasParam(_T("HTTP-EQUIV")) &&
42 tag.GetParam(_T("HTTP-EQUIV")) == _T("Content-Type") &&
43 tag.HasParam(_T("CONTENT")))
44 {
45 wxString content = tag.GetParam(_T("CONTENT"));
46 if (content.Left(19) == _T("text/html; charset="))
47 {
48 wxFontEncoding enc =
49 wxTheFontMapper->CharsetToEncoding(content.Mid(19));
50 if (enc == wxFONTENCODING_SYSTEM) return FALSE;
51 if (enc == m_WParser->GetInputEncoding()) return FALSE;
52
53 m_WParser->SetInputEncoding(enc);
54 m_WParser->GetContainer()->InsertCell(
55 new wxHtmlFontCell(m_WParser->CreateCurrentFont()));
56 }
57 }
58 return FALSE;
59 }
60
61 TAG_HANDLER_END(META)
62
63
64 TAGS_MODULE_BEGIN(MetaTag)
65
66 TAGS_MODULE_ADD(META)
67
68 TAGS_MODULE_END(MetaTag)
69
70 #endif