Author: baum
Date: Tue Jan 31 21:49:49 2012
New Revision: 40694
URL: http://www.lyx.org/trac/changeset/40694

Log:
Fix bug #7998 and related issues:
- 0x200c is equivalent to \textcompwordmark
- 0x2011 is equivalent to \nobreakdash-
- 0x2009 is a breakable thin space (the old definition was non-breakable) 
- 0x202f is a non-breakable thin space
- add spaces 0x2007, 0x2008, 0x200a and 0x200b

Modified:
   lyx-devel/trunk/lib/unicodesymbols
   lyx-devel/trunk/src/insets/InsetSpecialChar.cpp

Modified: lyx-devel/trunk/lib/unicodesymbols
==============================================================================
--- lyx-devel/trunk/lib/unicodesymbols  Tue Jan 31 19:37:47 2012        (r40693)
+++ lyx-devel/trunk/lib/unicodesymbols  Tue Jan 31 21:49:49 2012        (r40694)
@@ -1581,17 +1581,17 @@
 0x2004 "\\;"                      "" "" "\\;" "" # THREE-PER-EM SPACE
 0x2005 "\\:"                      "" "" "\\:" "" # FOUR-PER-EM SPACE
 0x2006 "\\,"                      "" "" "\\," "" # SIX-PER-EM SPACE
-#0x2007 ""                         "" "" "" "" # FIGURE SPACE
-#0x2008 ""                         "" "" "" "" # PUNCTUATION SPACE
-0x2009 "\\,"                      "" "" "\\," "" # THIN SPACE
-#0x200a ""                         "" "" "" "" # HAIR SPACE
-#0x200b ""                         "" "" "" "" # ZERO WIDTH SPACE
-#0x200c ""                         "" "" "" "" # ZERO WIDTH NON-JOINER
+0x2007 "\\LyXFigureSpace" "\\newcommand*\\LyXFigureSpace{\\hphantom{0}}" "" 
"\\LyXFigureSpace" "\\newcommand*\\LyXFigureSpace{\\hphantom{0}}" # FIGURE SPACE
+0x2008 "\\LyXPunctSpace" "\\newcommand*\\LyXPunctSpace{\\hphantom{,}}" "" 
"\\LyXPunctSpace" "\\newcommand*\\LyXPunctSpace{\\hphantom{,}}" # PUNCTUATION 
SPACE
+0x2009 "\\LyXThinSpace" "\\newcommand*\\LyXThinSpace{\\,\\hspace{0pt}}" "" 
"\\LyXThinSpace" "\\newcommand*\\LyXThinSpace{\\,\\hspace{0pt}}" # THIN SPACE
+0x200a "\\LyXHairSpace" "\\newcommand*\\LyXHairSpace{\\hspace{1pt}}" "" 
"\\LyXHairSpace" "\\newcommand*\\LyXHairSpace{\\hspace{1pt}}" # HAIR SPACE
+0x200b "\\LyXZeroWidthSpace" "\\newcommand*\\LyXZeroWidthSpace{\\hspace{0pt}}" 
"" "\\LyXZeroWidthSpace" "\\newcommand*\\LyXZeroWidthSpace{\\hspace{0pt}}" # 
ZERO WIDTH SPACE
+0x200c "\\textcompwordmark"       "" "" "" "" # ZERO WIDTH NON-JOINER
 #0x200d ""                         "" "" "" "" # ZERO WIDTH JOINER
 #0x200e ""                         "" "" "" "" # LEFT-TO-RIGHT MARK
 #0x200f ""                         "" "" "" "" # RIGHT-TO-LEFT MARK
 0x2010 "-"                        "" "" "" "" # HYPHEN # identic in LaTeX to 
FIGURE DASH
-#0x2011 ""                         "" "" "" "" # NON-BREAKING HYPHEN
+0x2011 "\\nobreakdash-"           "amsmath" "" "" "" # NON-BREAKING HYPHEN
 0x2012 "-"                        "" "" # FIGURE DASH
 0x2013 "\\textendash"             "" "" # EN DASH
 0x2014 "\\textemdash"             "" "" # EM DASH
@@ -1606,7 +1606,7 @@
 0x201c "\\textquotedblleft"       "" "" # LEFT DOUBLE QUOTATION MARK
 0x201d "\\textquotedblright"      "" "" # RIGHT DOUBLE QUOTATION MARK
 0x201e "\\quotedblbase"           "" "" # DOUBLE LOW-9 QUOTATION MARK
-#0x201f ""                         "" "" # DOUBLE LOW-REVERSED-9 QUOTATION MARK
+#0x201f ""                         "" "" # DOUBLE HIGH-REVERSED-9 QUOTATION 
MARK
 0x2020 "\\dag"                    "" "" "\\dagger" "" # DAGGER
 0x2021 "\\ddag"                   "" "" "\\ddagger" "" # DOUBLE DAGGER
 0x2022 "\\textbullet"             "textcomp" "" # BULLET
@@ -1622,7 +1622,7 @@
 #0x202c ""                         "" "" "" "" # POP DIRECTIONAL FORMATTING
 #0x202d ""                         "" "" "" "" # LEFT-TO-RIGHT OVERRIDE
 #0x202e ""                         "" "" "" "" # RIGHT-TO-LEFT OVERRIDE
-#0x202f ""                         "" "" "" "" # NARROW NO-BREAK SPACE
+0x202f "\\,"                      "" "" "\\," "" # NARROW NO-BREAK SPACE
 0x2030 "\\textperthousand"        "textcomp" "" # PER MILLE SIGN
 0x2031 "\\textpertenthousand"     "textcomp" "" # PER TEN THOUSAND SIGN
 0x2032 "\\textasciiacute"         "textcomp" "" "\\prime" "" # PRIME

Modified: lyx-devel/trunk/src/insets/InsetSpecialChar.cpp
==============================================================================
--- lyx-devel/trunk/src/insets/InsetSpecialChar.cpp     Tue Jan 31 19:37:47 
2012        (r40693)
+++ lyx-devel/trunk/src/insets/InsetSpecialChar.cpp     Tue Jan 31 21:49:49 
2012        (r40694)
@@ -243,8 +243,10 @@
 {
        switch (kind_) {
        case HYPHENATION:
-       case LIGATURE_BREAK:
                return 0;
+       case LIGATURE_BREAK:
+               os.put(0x200c);
+               return 1;
        case END_OF_SENTENCE:
                os << '.';
                return 1;
@@ -258,7 +260,7 @@
                os << '/';
                return 1;
        case NOBREAKDASH:
-               os << '-';
+               os.put(0x2011);
                return 1;
        }
        return 0;
@@ -295,7 +297,9 @@
 {
        switch (kind_) {
        case HYPHENATION:
+               break;
        case LIGATURE_BREAK:
+               xs << XHTMLStream::ESCAPE_NONE << "&#8204;";
                break;
        case END_OF_SENTENCE:
                xs << '.';
@@ -310,7 +314,7 @@
                xs << XHTMLStream::ESCAPE_NONE << "&frasl;";
                break;
        case NOBREAKDASH:
-               xs << '-';
+               xs << XHTMLStream::ESCAPE_NONE << "&#8209;";
                break;
        }
        return docstring();

Reply via email to