commit 8f897682112026cf0f86cfcf5c24f5052111e02d
Author: Thibaut Cuvelier <cuvelier.thib...@gmail.com>
Date:   Fri Jun 19 02:27:31 2020 +0200

    Fix in symbols handling: parse the XML entity with \def.
---
 lib/symbols                |   20 ++++++++++----------
 src/mathed/MathFactory.cpp |   11 +++++++----
 2 files changed, 17 insertions(+), 14 deletions(-)

diff --git a/lib/symbols b/lib/symbols
index d069141..277dd80 100644
--- a/lib/symbols
+++ b/lib/symbols
@@ -16,9 +16,9 @@
 # or
 # \def\macroname{definition} requires
 # or
-# \def\macroname{definition} extra xmlname
+# \def\macroname{definition} extra htmlname xmlname
 # or
-# \def\macroname{definition} extra xmlname requires
+# \def\macroname{definition} extra htmlname xmlname requires
 #
 # ("" for empty strings is not supported. One would have to use x for fields
 # that are not set.)
@@ -999,12 +999,12 @@ bignplus           stmry 112   0 mathop     x  x  
stmaryrd # caution: named huge
 \def\Arrownot{\lyxArrownot\mathrel{\kern0.5mu}}             stmaryrd
 \def\longarrownot{\mathrel{\kern5.5mu}\arrownot\mathrel{\kern-5.5mu}} stmaryrd
 \def\Longarrownot{\mathrel{\kern5.5mu}\Arrownot\mathrel{\kern-5.5mu}} stmaryrd
-\def\Mapsto{\Mapstochar\mathrel\Rightarrow}              mathrel &#x2907; 
stmaryrd
-\def\mapsfrom{\leftarrow\kern-9mu\mapsfromchar}          mathrel &#x21a4; 
stmaryrd
-\def\Mapsfrom{\Leftarrow\kern-9mu\Mapsfromchar}          mathrel &#x2906; 
stmaryrd
-\def\Longmapsto{\Mapstochar\Longrightarrow}              mathrel &#x27fe; 
stmaryrd
-\def\longmapsfrom{\longleftarrow\mapsfromchar}           mathrel &#x27fb; 
stmaryrd
-\def\Longmapsfrom{\Longleftarrow\mathrel{\kern1mu}\Mapsfromchar}   mathrel 
&#x27fd; stmaryrd
+\def\Mapsto{\Mapstochar\mathrel\Rightarrow}              mathrel &#x2907; 
&#x2907; stmaryrd
+\def\mapsfrom{\leftarrow\kern-9mu\mapsfromchar}          mathrel &#x21a4; 
&#x21a4; stmaryrd
+\def\Mapsfrom{\Leftarrow\kern-9mu\Mapsfromchar}          mathrel &#x2906; 
&#x2906; stmaryrd
+\def\Longmapsto{\Mapstochar\Longrightarrow}              mathrel &#x27fe; 
&#x27fe; stmaryrd
+\def\longmapsfrom{\longleftarrow\mapsfromchar}           mathrel &#x27fb; 
&#x27fb; stmaryrd
+\def\Longmapsfrom{\Longleftarrow\mathrel{\kern1mu}\Mapsfromchar}   mathrel 
&#x27fd; &#x27fd; stmaryrd
 
 # symbols from the mhchem package, all of them are equivalent to a math symbol
 # mhchem is not loaded because these commands can only be used inside
@@ -1159,8 +1159,8 @@ ordinarycolon      cmr          58  58    mathrel :  :    
      mathtools
 \def\lnot{\neg}                                                 mathord &not;  
     &#xAC;
 \def\notin{\not\in}                                             mathrel 
&notin;     &#x2209;
 
-\def\ddag{\ddagger}                                             mathbin 
&Dagger;
-\def\dag{\dagger}                                               mathbin 
&dagger;
+\def\ddag{\ddagger}                                             mathbin 
&Dagger;    &#x2021;
+\def\dag{\dagger}                                               mathbin 
&dagger;    &#x2020;
 
 \def\joinrel{\mathrel{\kern-3mu}}
 \def\relbar{\lyxbar}
diff --git a/src/mathed/MathFactory.cpp b/src/mathed/MathFactory.cpp
index f50f7ef..33b674b 100644
--- a/src/mathed/MathFactory.cpp
+++ b/src/mathed/MathFactory.cpp
@@ -186,23 +186,24 @@ void initSymbols()
                        // or
                        // \def\macroname{definition} requires
                        // or
-                       // \def\macroname{definition} extra htmlname requires
+                       // \def\macroname{definition} extra htmlname xmlname 
requires
                        istringstream is(line);
                        string macro;
                        string required;
                        string extra;
                        string htmlname;
+                       string xmlname;
                        bool hidden = false;
                        is >> setw(65536) >> macro >> required;
-                       if ((is >> htmlname)) {
+                       if ((is >> htmlname >> xmlname)) {
                                extra = required;
                                if (!(is >> required))
                                        required = "";
                        } else
-                               htmlname = "";
+                               htmlname = xmlname = "";
                        MacroTable::iterator it = 
MacroTable::globalMacros().insert(
                                        0, from_utf8(macro));
-                       if (!extra.empty() || !htmlname.empty() || 
!required.empty()) {
+                       if (!extra.empty() || !htmlname.empty() || 
!xmlname.empty() || !required.empty()) {
                                MathWordList::iterator wit = 
theMathWordList.find(it->first);
                                if (wit != theMathWordList.end())
                                        LYXERR(Debug::MATHED, "readSymbols: 
inset "
@@ -213,6 +214,7 @@ void initSymbols()
                                        tmp.name = it->first;
                                        tmp.extra = from_utf8(extra);
                                        tmp.htmlname = from_utf8(htmlname);
+                                       tmp.xmlname = from_utf8(xmlname);
                                        if (required == "hiddensymbol") {
                                                required = "";
                                                tmp.hidden = hidden = true;
@@ -230,6 +232,7 @@ void initSymbols()
                            << "  draw: 0"
                            << "  extra: " << extra
                            << "  html: " << htmlname
+                           << "  xml: " << xmlname
                                << "  requires: " << required
                                << "  hidden: " << hidden << '\'');
                        continue;
-- 
lyx-cvs mailing list
lyx-cvs@lists.lyx.org
http://lists.lyx.org/mailman/listinfo/lyx-cvs

Reply via email to