From 5487f855ad12d0b7f3ba70aab72fd2debedae16d Mon Sep 17 00:00:00 2001 From: Dimitri van Heesch Date: Sun, 1 Nov 2015 16:15:17 +0100 Subject: [PATCH] Bug 756604 - Unable to prevent a numbered list --- src/cmdmapper.cpp | 3 +++ src/cmdmapper.h | 5 ++++- src/docparser.cpp | 9 +++++++++ src/docparser.h | 2 +- src/doctokenizer.l | 2 +- src/htmlentity.cpp | 4 +++- src/markdown.cpp | 10 +++++++--- 7 files changed, 28 insertions(+), 7 deletions(-) diff --git a/src/cmdmapper.cpp b/src/cmdmapper.cpp index 5c38b5aa877..6784b3e0602 100644 --- a/src/cmdmapper.cpp +++ b/src/cmdmapper.cpp @@ -115,6 +115,9 @@ CommandMap cmdMap[] = { "#", CMD_HASH }, { "%", CMD_PERCENT }, { "|", CMD_PIPE }, + { ".", CMD_PUNT }, + { "+", CMD_PLUS }, + { "-", CMD_MINUS }, { "::", CMD_DCOLON }, { "\"", CMD_QUOTE }, { "_internalref", CMD_INTERNALREF }, diff --git a/src/cmdmapper.h b/src/cmdmapper.h index 5a59f39c34a..92c906ada1a 100644 --- a/src/cmdmapper.h +++ b/src/cmdmapper.h @@ -130,7 +130,10 @@ enum CommandType CMD_MDASH = 100, CMD_STARTUML = 101, CMD_ENDUML = 102, - CMD_SETSCOPE = 103 + CMD_SETSCOPE = 103, + CMD_PUNT = 104, + CMD_PLUS = 105, + CMD_MINUS = 106 }; enum HtmlTagType diff --git a/src/docparser.cpp b/src/docparser.cpp index 13d1bfa8729..d425914995e 100644 --- a/src/docparser.cpp +++ b/src/docparser.cpp @@ -1367,6 +1367,15 @@ static bool defaultHandleToken(DocNode *parent,int tok, QList &children case CMD_HASH: children.append(new DocSymbol(parent,DocSymbol::Sym_Hash)); break; + case CMD_PUNT: + children.append(new DocSymbol(parent,DocSymbol::Sym_Dot)); + break; + case CMD_PLUS: + children.append(new DocSymbol(parent,DocSymbol::Sym_Plus)); + break; + case CMD_MINUS: + children.append(new DocSymbol(parent,DocSymbol::Sym_Minus)); + break; case CMD_DCOLON: children.append(new DocSymbol(parent,DocSymbol::Sym_DoubleColon)); break; diff --git a/src/docparser.h b/src/docparser.h index fcd18a4a581..5af5e963459 100644 --- a/src/docparser.h +++ b/src/docparser.h @@ -395,7 +395,7 @@ class DocSymbol : public DocNode /* doxygen commands mapped */ Sym_BSlash, Sym_At, Sym_Less, Sym_Greater, Sym_Amp, Sym_Dollar, Sym_Hash, Sym_DoubleColon, Sym_Percent, Sym_Pipe, - Sym_Quot, Sym_Minus + Sym_Quot, Sym_Minus, Sym_Plus, Sym_Dot }; enum PerlType { Perl_unknown = 0, Perl_string, Perl_char, Perl_symbol, Perl_umlaut, Perl_acute, Perl_grave, Perl_circ, Perl_slash, Perl_tilde, diff --git a/src/doctokenizer.l b/src/doctokenizer.l index 8c58fb51e55..3169fc0031c 100644 --- a/src/doctokenizer.l +++ b/src/doctokenizer.l @@ -353,7 +353,7 @@ FILEMASK ({FILESCHAR}*{FILEECHAR}+("."{FILESCHAR}*{FILEECHAR}+)*)|{HFILEMASK} LINKMASK [^ \t\n\r\\@<&${}]+("("[^\n)]*")")?({BLANK}*("const"|"volatile"){BLANK}+)? VERBATIM "verbatim"{BLANK}* SPCMD1 {CMD}([a-z_A-Z][a-z_A-Z0-9]*|{VERBATIM}|"--"|"---") -SPCMD2 {CMD}[\\@<>&$#%~".|] +SPCMD2 {CMD}[\\@<>&$#%~".+|-] SPCMD3 {CMD}form#[0-9]+ SPCMD4 {CMD}"::" INOUT "inout"|"in"|"out"|("in"{BLANK}*","{BLANK}*"out")|("out"{BLANK}*","{BLANK}*"in") diff --git a/src/htmlentity.cpp b/src/htmlentity.cpp index c4c601fd911..ff3c5749b41 100644 --- a/src/htmlentity.cpp +++ b/src/htmlentity.cpp @@ -312,7 +312,9 @@ static struct htmlEntityInfo { SYM(Percent), "%", "%", "%", "%", "\\%", "%", "%", { "%", DocSymbol::Perl_char }}, { SYM(Pipe), "|", "|", "|", "|", "$|$", "|", "|", { "|", DocSymbol::Perl_char }}, { SYM(Quot), "\"", "\"", "\"", """, "\"", "\"", "\"", { "\"", DocSymbol::Perl_char }}, - { SYM(Minus), "-", "-", "-", "-", "-\\/", "-", "-", { "-", DocSymbol::Perl_char }} + { SYM(Minus), "-", "-", "-", "-", "-\\/", "-", "-", { "-", DocSymbol::Perl_char }}, + { SYM(Plus), "+", "+", "+", "+", "+", "+", "+", { "+", DocSymbol::Perl_char }}, + { SYM(Dot), ".", ".", ".", ".", ".", ".", ".", { ".", DocSymbol::Perl_char }} }; static const int g_numHtmlEntities = (int)(sizeof(g_htmlEntities)/ sizeof(*g_htmlEntities)); diff --git a/src/markdown.cpp b/src/markdown.cpp index 9ff139c1486..26acfbc29e2 100644 --- a/src/markdown.cpp +++ b/src/markdown.cpp @@ -1017,8 +1017,8 @@ static int processSpecialCommand(GrowBuf &out, const char *data, int offset, int if (size>1 && data[0]=='\\') { char c=data[1]; - if (c=='[' || c==']' || c=='*' || c=='+' || c=='-' || - c=='!' || c=='(' || c==')' || c=='.' || c=='`' || c=='_') + if (c=='[' || c==']' || c=='*' || /* c=='+' || c=='-' || c=='.' || */ + c=='!' || c=='(' || c==')' || c=='`' || c=='_') { if (c=='-' && size>3 && data[2]=='-' && data[3]=='-') // \--- { @@ -1030,7 +1030,11 @@ static int processSpecialCommand(GrowBuf &out, const char *data, int offset, int out.addStr(&data[1],2); return 3; } - out.addStr(&data[1],1); + else if (c=='-') // \- + { + out.addChar(c); + } + out.addChar(data[1]); return 2; } }