Index: Doxyfile
===================================================================
RCS file: /cvsroot/doxygen/Doxyfile,v
retrieving revision 1.27
diff -u -r1.27 Doxyfile
--- Doxyfile	15 Jun 2005 19:21:32 -0000	1.27
+++ Doxyfile	23 Sep 2005 15:29:51 -0000
@@ -126,6 +126,7 @@
 GENERATE_HTML          = YES
 HTML_OUTPUT            = 
 HTML_FILE_EXTENSION    = .html
+HTML_SIMPLE_ENTITIES   = YES
 HTML_HEADER            = 
 HTML_FOOTER            = 
 HTML_STYLESHEET        = 
Index: addon/doxmlparser/Doxyfile
===================================================================
RCS file: /cvsroot/doxygen/addon/doxmlparser/Doxyfile,v
retrieving revision 1.3
diff -u -r1.3 Doxyfile
--- addon/doxmlparser/Doxyfile	18 Feb 2002 21:34:00 -0000	1.3
+++ addon/doxmlparser/Doxyfile	23 Sep 2005 15:29:51 -0000
@@ -80,6 +80,7 @@
 #---------------------------------------------------------------------------
 GENERATE_HTML          = YES
 HTML_OUTPUT            = 
+HTML_SIMPLE_ENTITIES   = YES
 HTML_HEADER            = 
 HTML_FOOTER            = 
 HTML_STYLESHEET        = 
Index: doc/config.doc
===================================================================
RCS file: /cvsroot/doxygen/doc/config.doc,v
retrieving revision 1.117
diff -u -r1.117 config.doc
--- doc/config.doc	6 Aug 2005 11:47:29 -0000	1.117
+++ doc/config.doc	23 Sep 2005 15:29:53 -0000
@@ -135,6 +135,7 @@
 \refitem cfg_html_footer HTML_FOOTER
 \refitem cfg_html_header HTML_HEADER
 \refitem cfg_html_output HTML_OUTPUT
+\refitem cfg_html_simple_entities HTML_SIMPLE_ENTITIES
 \refitem cfg_html_stylesheet HTML_STYLESHEET
 \refitem cfg_ignore_prefix IGNORE_PREFIX
 \refitem cfg_image_path IMAGE_PATH
@@ -999,6 +1000,14 @@
  each generated HTML page (for example: .htm, .php, .asp). If it is left blank
  doxygen will generate files with .html extension.
 
+\anchor cfg_html_simple_entities
+<dt>\c HTML_SIMPLE_ENTITIES <dd>
+ \addindex HTML_SIMPLE_ENTITIES
+ If the \c HTML_SIMPLE_ENTITIES tag is set to \c YES (the default) Doxygen will
+ generate simplified entities (eg. literal double quote character instead of
+ \&quot; or \&ldquo;) which are likely to work with all browsers (but the
+ output may be of lower quality).
+
 \anchor cfg_html_header
 <dt>\c HTML_HEADER <dd>      
  \addindex HTML_HEADER
Index: doc/htmlcmds.doc
===================================================================
RCS file: /cvsroot/doxygen/doc/htmlcmds.doc,v
retrieving revision 1.35
diff -u -r1.35 htmlcmds.doc
--- doc/htmlcmds.doc	15 Jun 2005 19:21:34 -0000	1.35
+++ doc/htmlcmds.doc	23 Sep 2005 15:29:54 -0000
@@ -102,7 +102,19 @@
 
 <ul>
 <li><tt>\&copy;</tt> the copyright symbol
-<li><tt>\&quot;</tt> a double quote
+<li><tt>\&tm;</tt> the trade mark symbol
+<li><tt>\&reg;</tt> the registered trade mark symbol
+<li><tt>\&lt;</tt> less-than symbol
+<li><tt>\&gt;</tt> greater-than symbol
+<li><tt>\&amp;</tt> ampersand
+<li><tt>\&apos;</tt> single quotation mark (straight)
+<li><tt>\&quot;</tt> double quotation mark (straight)
+<li><tt>\&lsquo;</tt> left single quotation mark
+<li><tt>\&rsquo;</tt> right single quotation mark
+<li><tt>\&ldquo;</tt> left double quotation mark
+<li><tt>\&rdquo;</tt> right double quotation mark
+<li><tt>\&ndash;</tt> n-dash (for numeric ranges, eg. 2&ndash;8)
+<li><tt>\&mdash;</tt> m-dash (for parenthetical punctuation &mdash; like this)
 <li><tt>\&?uml;</tt>   where ? is one of {A,E,I,O,U,Y,a,e,i,o,u,y}, 
        writes a character with a diaeresis accent (like &auml;).
 <li><tt>\&?acute;</tt> where ? is one of {A,E,I,O,U,Y,a,e,i,o,u,y},
Index: qtools/Doxyfile
===================================================================
RCS file: /cvsroot/doxygen/qtools/Doxyfile,v
retrieving revision 1.4
diff -u -r1.4 Doxyfile
--- qtools/Doxyfile	17 May 2004 20:19:02 -0000	1.4
+++ qtools/Doxyfile	23 Sep 2005 15:29:56 -0000
@@ -577,6 +577,13 @@
 
 HTML_FILE_EXTENSION    = .html
 
+# If the HTML_SIMPLE_ENTITIES tag is set to YES (the default) Doxygen will
+# generate simplified entities (eg. literal double quote character instead of
+# &qout; or &ldquo;) which are likely to work with all browsers (but the
+# output may be of lower quality). 
+
+HTML_SIMPLE_ENTITIES   = YES
+
 # The HTML_HEADER tag can be used to specify a personal HTML header for 
 # each generated HTML page. If it is left blank doxygen will generate a 
 # standard header.
Index: src/compound.xsd
===================================================================
RCS file: /cvsroot/doxygen/src/compound.xsd,v
retrieving revision 1.19
diff -u -r1.19 compound.xsd
--- src/compound.xsd	6 Aug 2005 11:47:30 -0000	1.19
+++ src/compound.xsd	23 Sep 2005 15:29:57 -0000
@@ -351,6 +351,12 @@
       <xsd:element name="copy" type="docEmptyType" />
       <xsd:element name="trademark" type="docEmptyType" />
       <xsd:element name="registered" type="docEmptyType" />
+      <xsd:element name="lsquo" type="docCharType" />
+      <xsd:element name="rsquo" type="docCharType" />
+      <xsd:element name="ldquo" type="docCharType" />
+      <xsd:element name="rdquo" type="docCharType" />
+      <xsd:element name="ndash" type="docCharType" />
+      <xsd:element name="mdash" type="docCharType" />
       <xsd:element name="umlaut" type="docCharType" />
       <xsd:element name="acute" type="docCharType" />
       <xsd:element name="grave" type="docCharType" />
Index: src/compound_xsd.h
===================================================================
RCS file: /cvsroot/doxygen/src/compound_xsd.h,v
retrieving revision 1.19
diff -u -r1.19 compound_xsd.h
--- src/compound_xsd.h	6 Aug 2005 11:47:30 -0000	1.19
+++ src/compound_xsd.h	23 Sep 2005 15:29:58 -0000
@@ -351,6 +351,12 @@
 "      <xsd:element name=\"copy\" type=\"docEmptyType\" />\n"
 "      <xsd:element name=\"trademark\" type=\"docEmptyType\" />\n"
 "      <xsd:element name=\"registered\" type=\"docEmptyType\" />\n"
+"      <xsd:element name=\"lsquo\" type=\"docCharType\" />\n"
+"      <xsd:element name=\"rsquo\" type=\"docCharType\" />\n"
+"      <xsd:element name=\"ldquo\" type=\"docCharType\" />\n"
+"      <xsd:element name=\"rdquo\" type=\"docCharType\" />\n"
+"      <xsd:element name=\"ndash\" type=\"docCharType\" />\n"
+"      <xsd:element name=\"mdash\" type=\"docCharType\" />\n"
 "      <xsd:element name=\"umlaut\" type=\"docCharType\" />\n"
 "      <xsd:element name=\"acute\" type=\"docCharType\" />\n"
 "      <xsd:element name=\"grave\" type=\"docCharType\" />\n"
Index: src/config.l
===================================================================
RCS file: /cvsroot/doxygen/src/config.l,v
retrieving revision 1.147
diff -u -r1.147 config.l
--- src/config.l	18 Sep 2005 19:25:31 -0000	1.147
+++ src/config.l	23 Sep 2005 15:30:02 -0000
@@ -2018,6 +2018,15 @@
                    );
   cs->setDefaultValue(".html");
   cs->addDependency("GENERATE_HTML");
+  cb = addBool(
+                    "HTML_SIMPLE_ENTITIES",
+                    "If the HTML_SIMPLE_ENTITIES tag is set to YES (the default) Doxygen will \n"
+                    "generate simplified entities (eg. literal double quote character instead of\n"
+                    "&qout; or &ldquo;) which are likely to work with all browsers (but the\n"
+                    "output may be of lower quality). \n",
+                    TRUE
+                 );
+  cs->addDependency("GENERATE_HTML");
   cs = addString(
                     "HTML_HEADER",
                     "The HTML_HEADER tag can be used to specify a personal HTML header for \n"
Index: src/docparser.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/docparser.cpp,v
retrieving revision 1.79
diff -u -r1.79 docparser.cpp
--- src/docparser.cpp	18 Sep 2005 19:25:31 -0000	1.79
+++ src/docparser.cpp	23 Sep 2005 15:30:07 -0000
@@ -1285,6 +1285,12 @@
   else if (symName=="&amp;")   return DocSymbol::Amp;
   else if (symName=="&apos;")  return DocSymbol::Apos;
   else if (symName=="&quot;")  return DocSymbol::Quot;
+  else if (symName=="&lsquo;") return DocSymbol::Lsquo;
+  else if (symName=="&rsquo;") return DocSymbol::Rsquo;
+  else if (symName=="&ldquo;") return DocSymbol::Ldquo;
+  else if (symName=="&rdquo;") return DocSymbol::Rdquo;
+  else if (symName=="&ndash;") return DocSymbol::Ndash;
+  else if (symName=="&mdash;") return DocSymbol::Mdash;
   else if (symName=="&szlig;") return DocSymbol::Szlig;
   else if (symName=="&nbsp;")  return DocSymbol::Nbsp;
   else if (l==6 && symName.right(4)=="uml;")  
@@ -2587,6 +2593,12 @@
             case DocSymbol::Percent: m_entry+='%';  break;
             case DocSymbol::Apos:    m_entry+='\''; break;
             case DocSymbol::Quot:    m_entry+='"';  break;
+            case DocSymbol::Lsquo:   m_entry+='`';  break;
+            case DocSymbol::Rsquo:   m_entry+='\'';  break;
+            case DocSymbol::Ldquo:   m_entry+="``";  break;
+            case DocSymbol::Rdquo:   m_entry+="''";  break;
+            case DocSymbol::Ndash:   m_entry+="--";  break;
+            case DocSymbol::Mdash:   m_entry+="---";  break;
             default:
               warn_doc_error(g_fileName,doctokenizerYYlineno,"Warning: Unexpected symbol found as argument of \\addindex");
               break;
Index: src/docparser.h
===================================================================
RCS file: /cvsroot/doxygen/src/docparser.h,v
retrieving revision 1.48
diff -u -r1.48 docparser.h
--- src/docparser.h	18 Sep 2005 19:25:31 -0000	1.48
+++ src/docparser.h	23 Sep 2005 15:30:09 -0000
@@ -323,7 +323,8 @@
   public:
     enum SymType { Unknown=0, BSlash,At,Less,Greater,Amp,Dollar,Hash,Percent, 
                    Copy, Tm, Reg, Apos, Quot, Uml, Acute, Grave, Circ, Tilde, Szlig,
-                   Cedil, Ring, Nbsp, Slash
+                   Cedil, Ring, Nbsp, Slash, Lsquo, Rsquo, Ldquo, Rdquo, Ndash,
+                   Mdash
                  };
     DocSymbol(DocNode *parent,SymType s,char letter='\0') : 
       m_parent(parent), m_symbol(s), m_letter(letter) {}
Index: src/htmldocvisitor.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/htmldocvisitor.cpp,v
retrieving revision 1.45
diff -u -r1.45 htmldocvisitor.cpp
--- src/htmldocvisitor.cpp	6 Aug 2005 11:47:30 -0000	1.45
+++ src/htmldocvisitor.cpp	23 Sep 2005 15:30:10 -0000
@@ -89,7 +89,10 @@
 
 void HtmlDocVisitor::visit(DocSymbol *s)
 {
+  bool simplify;
+
   if (m_hide) return;
+  simplify = Config_getBool("HTML_SIMPLE_ENTITIES");
   switch(s->symbol())
   {
     case DocSymbol::BSlash:  m_t << "\\"; break;
@@ -104,7 +107,13 @@
     case DocSymbol::Tm:      m_t << "&tm;"; break;
     case DocSymbol::Reg:     m_t << "&reg;"; break;
     case DocSymbol::Apos:    m_t << "'"; break;
-    case DocSymbol::Quot:    m_t << "\""; break;
+    case DocSymbol::Quot:    m_t << (simplify ? "\"" : "&quot;"); break;
+    case DocSymbol::Lsquo:   m_t << (simplify ? "\'" : "&lsquo;"); break;
+    case DocSymbol::Rsquo:   m_t << (simplify ? "\'" : "&rsquo;"); break;
+    case DocSymbol::Ldquo:   m_t << (simplify ? "\"" : "&ldquo;"); break;
+    case DocSymbol::Rdquo:   m_t << (simplify ? "\"" : "&rdquo;"); break;
+    case DocSymbol::Ndash:   m_t << (simplify ? "-" : "&ndash;"); break;
+    case DocSymbol::Mdash:   m_t << (simplify ? "--" : "&mdash;"); break;
     case DocSymbol::Uml:     m_t << "&" << s->letter() << "uml;"; break;
     case DocSymbol::Acute:   m_t << "&" << s->letter() << "acute;"; break;
     case DocSymbol::Grave:   m_t << "&" << s->letter() << "grave;"; break;
Index: src/latexdocvisitor.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/latexdocvisitor.cpp,v
retrieving revision 1.34
diff -u -r1.34 latexdocvisitor.cpp
--- src/latexdocvisitor.cpp	6 Aug 2005 11:47:30 -0000	1.34
+++ src/latexdocvisitor.cpp	23 Sep 2005 15:30:11 -0000
@@ -136,7 +136,13 @@
     case DocSymbol::Tm:      m_t << "\\texttrademark"; break;
     case DocSymbol::Reg:     m_t << "\\textregistered"; break;
     case DocSymbol::Apos:    m_t << "'"; break;
-    case DocSymbol::Quot:    m_t << "''"; break;
+    case DocSymbol::Quot:    m_t << "\""; break;
+    case DocSymbol::Lsquo:  m_t << "`"; break;
+    case DocSymbol::Rsquo:  m_t << "'"; break;
+    case DocSymbol::Ldquo:  m_t << "``"; break;
+    case DocSymbol::Rdquo:  m_t << "''"; break;
+    case DocSymbol::Ndash:   m_t << "--"; break;
+    case DocSymbol::Mdash:   m_t << "---"; break;
     case DocSymbol::Uml:     
                              if (s->letter()=='i') 
                                m_t << "\\\"{\\i}"; 
Index: src/mandocvisitor.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/mandocvisitor.cpp,v
retrieving revision 1.22
diff -u -r1.22 mandocvisitor.cpp
--- src/mandocvisitor.cpp	6 Aug 2005 11:47:30 -0000	1.22
+++ src/mandocvisitor.cpp	23 Sep 2005 15:30:11 -0000
@@ -88,6 +88,12 @@
     case DocSymbol::Reg:     m_t << "(R)"; break;
     case DocSymbol::Apos:    m_t << "'"; break;
     case DocSymbol::Quot:    m_t << "''"; break;
+    case DocSymbol::Lsquo:   m_t << "'"; break;
+    case DocSymbol::Rsquo:   m_t << "'"; break;
+    case DocSymbol::Ldquo:   m_t << "''"; break;
+    case DocSymbol::Rdquo:   m_t << "''"; break;
+    case DocSymbol::Ndash:   m_t << "-"; break;
+    case DocSymbol::Mdash:   m_t << "--"; break;
     case DocSymbol::Uml:     m_t << s->letter() << "\\*(4"; break;
     case DocSymbol::Acute:   m_t << s->letter() << "\\*(`"; break;
     case DocSymbol::Grave:   m_t << s->letter() << "\\*:"; break;
Index: src/perlmodgen.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/perlmodgen.cpp,v
retrieving revision 1.24
diff -u -r1.24 perlmodgen.cpp
--- src/perlmodgen.cpp	28 Mar 2005 13:38:52 -0000	1.24
+++ src/perlmodgen.cpp	23 Sep 2005 15:30:14 -0000
@@ -532,6 +532,12 @@
   case DocSymbol::Hash:    c = '#'; break;
   case DocSymbol::Percent: c = '%'; break;
   case DocSymbol::Quot:    c = '"'; break;
+  case DocSymbol::Lsquo:   s = "\\\'"; break;
+  case DocSymbol::Rsquo:   s = "\\\'"; break;
+  case DocSymbol::Ldquo:   c = '"'; break;
+  case DocSymbol::Rdquo:   c = '"'; break;
+  case DocSymbol::Ndash:   c = '-'; break;
+  case DocSymbol::Mdash:   s = "--"; break;
   case DocSymbol::Nbsp:    c = ' '; break;
   case DocSymbol::Uml:     accent = "umlaut"; break;
   case DocSymbol::Acute:   accent = "acute"; break;
Index: src/printdocvisitor.h
===================================================================
RCS file: /cvsroot/doxygen/src/printdocvisitor.h,v
retrieving revision 1.18
diff -u -r1.18 printdocvisitor.h
--- src/printdocvisitor.h	28 Mar 2005 13:38:53 -0000	1.18
+++ src/printdocvisitor.h	23 Sep 2005 15:30:14 -0000
@@ -68,6 +68,12 @@
 	case DocSymbol::Copy:    printf("&copy;"); break;
 	case DocSymbol::Apos:    printf("'"); break;
 	case DocSymbol::Quot:    printf("\""); break;
+	case DocSymbol::Lsquo:   printf("&lsquo;"); break;
+	case DocSymbol::Rsquo:   printf("&rsquo;"); break;
+	case DocSymbol::Ldquo:   printf("&ldquo;"); break;
+	case DocSymbol::Rdquo:   printf("&rdquo;"); break;
+	case DocSymbol::Ndash:   printf("&ndash;"); break;
+	case DocSymbol::Mdash:   printf("&mdash;"); break;
 	case DocSymbol::Uml:     printf("&%cuml;",s->letter()); break;
 	case DocSymbol::Acute:   printf("&%cacute;",s->letter()); break;
 	case DocSymbol::Grave:   printf("&%cgrave;",s->letter()); break;
Index: src/rtfdocvisitor.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/rtfdocvisitor.cpp,v
retrieving revision 1.31
diff -u -r1.31 rtfdocvisitor.cpp
--- src/rtfdocvisitor.cpp	6 Aug 2005 11:47:30 -0000	1.31
+++ src/rtfdocvisitor.cpp	23 Sep 2005 15:30:16 -0000
@@ -114,6 +114,12 @@
     case DocSymbol::Reg:     m_t << "(R)"; break;
     case DocSymbol::Apos:    m_t << "'"; break;
     case DocSymbol::Quot:    m_t << "\""; break;
+    case DocSymbol::Lsquo:   m_t << "`"; break;
+    case DocSymbol::Rsquo:   m_t << "'"; break;
+    case DocSymbol::Ldquo:   m_t << "\""; break;
+    case DocSymbol::Rdquo:   m_t << "\""; break;
+    case DocSymbol::Ndash:   m_t << "-"; break;
+    case DocSymbol::Mdash:   m_t << "--"; break;
     case DocSymbol::Uml:     switch(s->letter())
                              {
                                case 'A' : m_t << '\304'; break;
Index: src/xmldocvisitor.cpp
===================================================================
RCS file: /cvsroot/doxygen/src/xmldocvisitor.cpp,v
retrieving revision 1.27
diff -u -r1.27 xmldocvisitor.cpp
--- src/xmldocvisitor.cpp	6 Aug 2005 11:47:31 -0000	1.27
+++ src/xmldocvisitor.cpp	23 Sep 2005 15:30:17 -0000
@@ -82,6 +82,10 @@
     case DocSymbol::Reg:     m_t << "<registered/>"; break;
     case DocSymbol::Apos:    m_t << "'"; break;
     case DocSymbol::Quot:    m_t << "\""; break;
+    case DocSymbol::Lsquo:   m_t << "`"; break;
+    case DocSymbol::Rsquo:   m_t << "'"; break;
+    case DocSymbol::Ldquo:   m_t << "<ldquo/>"; break;
+    case DocSymbol::Rdquo:   m_t << "<rdquo/>"; break;
     case DocSymbol::Uml:     m_t << "<umlaut char=\"" << s->letter() << "\"/>"; break;
     case DocSymbol::Acute:   m_t << "<acute char=\"" << s->letter() << "\"/>"; break;
     case DocSymbol::Grave:   m_t << "<grave char=\"" << s->letter() << "\"/>"; break;
