Revision: 5295 http://geany.svn.sourceforge.net/geany/?rev=5295&view=rev Author: ntrel Date: 2010-10-15 12:17:22 +0000 (Fri, 15 Oct 2010)
Log Message: ----------- Ignore D /+ +/ comments.
Modified Paths: -------------- trunk/ChangeLog trunk/tagmanager/get.c
Modified: trunk/ChangeLog =================================================================== --- trunk/ChangeLog 2010-10-08 19:32:06 UTC (rev 5294) +++ trunk/ChangeLog 2010-10-15 12:17:22 UTC (rev 5295) @@ -1,3 +1,9 @@ +2010-10-15 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com> + + * tagmanager/get.c: + Ignore D /+ +/ comments. + + 2010-10-08 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
* src/stash.c:
Modified: trunk/tagmanager/get.c =================================================================== --- trunk/tagmanager/get.c 2010-10-08 19:32:06 UTC (rev 5294) +++ trunk/tagmanager/get.c 2010-10-15 12:17:22 UTC (rev 5295) @@ -33,7 +33,7 @@ /* * DATA DECLARATIONS */ -typedef enum { COMMENT_NONE, COMMENT_C, COMMENT_CPLUS } Comment; +typedef enum { COMMENT_NONE, COMMENT_C, COMMENT_CPLUS, COMMENT_D } Comment;
enum eCppLimits { MaxCppNestingLevel = 20, @@ -444,6 +444,8 @@ comment = COMMENT_C; else if (next == '/') comment = COMMENT_CPLUS; + else if (next == '+') + comment = COMMENT_D; else { fileUngetc (next); @@ -495,6 +497,33 @@ return c; }
+/* Skips over a D style comment. + * Really we should match nested /+ comments. At least they're less common. + */ +int skipOverDComment (void) +{ + int c = fileGetc (); + + while (c != EOF) + { + if (c != '+') + c = fileGetc (); + else + { + const int next = fileGetc (); + + if (next != '/') + c = next; + else + { + c = SPACE; /* replace comment with space */ + break; + } + } + } + return c; +} + /* Skips to the end of a string, returning a special character to * symbolically represent a generic string. */ @@ -614,6 +643,8 @@ if (c == NEWLINE) fileUngetc (c); } + else if (comment == COMMENT_D) + c = skipOverDComment (); else Cpp.directive.accept = FALSE; break;
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.