Commit 036292ae authored by Dimitri van Heesch's avatar Dimitri van Heesch
Browse files

Bug 709706 - Terminating C comments within markdown files breaks aliases

parent 5d8fc1c1
Loading
Loading
Loading
Loading
+23 −3
Original line number Original line Diff line number Diff line
@@ -78,6 +78,7 @@ static int g_blockCount;
static bool     g_lastEscaped;
static bool     g_lastEscaped;
static int      g_lastBlockContext;
static int      g_lastBlockContext;
static bool     g_pythonDocString;
static bool     g_pythonDocString;
static int      g_nestingCount;


static SrcLangExt g_lang;
static SrcLangExt g_lang;
static bool       isFixedForm; // For Fortran
static bool       isFixedForm; // For Fortran
@@ -251,6 +252,7 @@ void replaceComment(int offset);
				     else
				     else
				     {
				     {
                                       g_pythonDocString = TRUE;
                                       g_pythonDocString = TRUE;
                                       g_nestingCount=0;
                                       copyToOutput(yytext,(int)yyleng); 
                                       copyToOutput(yytext,(int)yyleng); 
				       BEGIN(CComment);
				       BEGIN(CComment);
				     }
				     }
@@ -263,6 +265,7 @@ void replaceComment(int offset);
				     else
				     else
				     {
				     {
                                       copyToOutput(yytext,(int)yyleng); 
                                       copyToOutput(yytext,(int)yyleng); 
                                       g_nestingCount=0;
				       BEGIN(CComment);
				       BEGIN(CComment);
				     }
				     }
  				   }
  				   }
@@ -277,6 +280,7 @@ void replaceComment(int offset);
                                       if (isFixedForm && (g_col == 0))
                                       if (isFixedForm && (g_col == 0))
                                       {
                                       {
                                         copyToOutput(yytext,(int)yyleng); 
                                         copyToOutput(yytext,(int)yyleng); 
                                         g_nestingCount=0;
				         BEGIN(CComment);
				         BEGIN(CComment);
				       }
				       }
				       else
				       else
@@ -367,6 +371,7 @@ void replaceComment(int offset);
				   }
				   }
<Scan>"/*"[*!]?			   { /* start of a C comment */
<Scan>"/*"[*!]?			   { /* start of a C comment */
  			             g_specialComment=(int)yyleng==3;
  			             g_specialComment=(int)yyleng==3;
                                     g_nestingCount=0;
                                     copyToOutput(yytext,(int)yyleng); 
                                     copyToOutput(yytext,(int)yyleng); 
				     BEGIN(CComment); 
				     BEGIN(CComment); 
                                   }
                                   }
@@ -378,6 +383,7 @@ void replaceComment(int offset);
				     else
				     else
				     {
				     {
                                       copyToOutput(yytext,(int)yyleng); 
                                       copyToOutput(yytext,(int)yyleng); 
                                       g_nestingCount=0;
				       BEGIN(CComment);
				       BEGIN(CComment);
				     }
				     }
  				   }
  				   }
@@ -389,6 +395,7 @@ void replaceComment(int offset);
				     else
				     else
				     {
				     {
                                       copyToOutput(yytext,(int)yyleng); 
                                       copyToOutput(yytext,(int)yyleng); 
                                       g_nestingCount=0;
				       BEGIN(CComment);
				       BEGIN(CComment);
				     }
				     }
  				   }
  				   }
@@ -400,6 +407,7 @@ void replaceComment(int offset);
				     else
				     else
				     {
				     {
                                       copyToOutput(yytext,(int)yyleng); 
                                       copyToOutput(yytext,(int)yyleng); 
                                       g_nestingCount=0;
				       BEGIN(CComment);
				       BEGIN(CComment);
				     }
				     }
  				   }
  				   }
@@ -564,7 +572,7 @@ void replaceComment(int offset);
                                     copyToOutput(yytext,(int)yyleng); 
                                     copyToOutput(yytext,(int)yyleng); 
                                   }
                                   }


<CComment>[^\\!@*\n{\"]*           { /* anything that is not a '*' or command */ 
<CComment>[^\\!@*\n{\"\/]*           { /* anything that is not a '*' or command */ 
                                     copyToOutput(yytext,(int)yyleng); 
                                     copyToOutput(yytext,(int)yyleng); 
                                   }
                                   }
<CComment>"*"+[^*/\\@\n{\"]*       { /* stars without slashes */
<CComment>"*"+[^*/\\@\n{\"]*       { /* stars without slashes */
@@ -590,16 +598,27 @@ void replaceComment(int offset);
				       BEGIN(Scan);
				       BEGIN(Scan);
				     }
				     }
                                   }
                                   }
<CComment>"/"+"*"                  { /* nested C comment */
                                     g_nestingCount++;
                                     copyToOutput(yytext,(int)yyleng); 
                                   }
<CComment>"*"+"/"                  { /* end of C comment */
<CComment>"*"+"/"                  { /* end of C comment */
                                     if (g_lang==SrcLangExt_Python)
                                     if (g_lang==SrcLangExt_Python)
				     {
				     {
				       REJECT;
				       REJECT;
				     }
				     }
				     else
				     else
				     {
                                       if (g_nestingCount<=0)
                                       {
                                       {
				         copyToOutput(yytext,(int)yyleng);
				         copyToOutput(yytext,(int)yyleng);
				         BEGIN(Scan);
				         BEGIN(Scan);
                                       }
                                       }
                                       else
                                       {
                                         g_nestingCount--;
                                       }
				     }
                                   }
                                   }
<CComment>"\n"/[ \t]*[^#]	   { /* end of Python comment */
<CComment>"\n"/[ \t]*[^#]	   { /* end of Python comment */
                                     if (g_lang!=SrcLangExt_Python || g_pythonDocString)
                                     if (g_lang!=SrcLangExt_Python || g_pythonDocString)
@@ -935,6 +954,7 @@ void convertCppComments(BufStr *inBuf,BufStr *outBuf,const char *fileName)


  if (g_lang==SrcLangExt_Markdown)
  if (g_lang==SrcLangExt_Markdown)
  {
  {
    g_nestingCount=0;
    BEGIN(CComment);
    BEGIN(CComment);
  }
  }
  else
  else