SF.net SVN: geany: [2135] trunk

eht16 at users.sourceforge.net eht16 at xxxxx
Sun Dec 30 15:20:23 UTC 2007


Revision: 2135
          http://geany.svn.sourceforge.net/geany/?rev=2135&view=rev
Author:   eht16
Date:     2007-12-30 07:20:22 -0800 (Sun, 30 Dec 2007)

Log Message:
-----------
Don't parse in comments and fix wrong creation of tags including non-tag characters(e.g. '=' sign).

Modified Paths:
--------------
    trunk/ChangeLog
    trunk/tagmanager/basic.c

Modified: trunk/ChangeLog
===================================================================
--- trunk/ChangeLog	2007-12-28 17:35:58 UTC (rev 2134)
+++ trunk/ChangeLog	2007-12-30 15:20:22 UTC (rev 2135)
@@ -1,3 +1,10 @@
+2007-12-30  Enrico Tröger  <enrico(dot)troeger(at)uvena(dot)de>
+
+ * tagmanager/basic.c:
+   Don't parse in comments and fix wrong creation of tags including
+   non-tag characters(e.g. '=' sign).
+
+
 2007-12-28  Nick Treleaven  <nick(dot)treleaven(at)btinternet(dot)com>
 
  * plugins/filebrowser.c:

Modified: trunk/tagmanager/basic.c
===================================================================
--- trunk/tagmanager/basic.c	2007-12-28 17:35:58 UTC (rev 2134)
+++ trunk/tagmanager/basic.c	2007-12-30 15:20:22 UTC (rev 2135)
@@ -105,7 +105,7 @@
 			pos++;
 	}
 
-	for (; *pos && !isspace (*pos) && *pos != '(' && *pos != ','; pos++)
+	for (; *pos && !isspace (*pos) && *pos != '(' && *pos != ',' && *pos != '='; pos++)
 		vStringPut (name, *pos);
 	vStringTerminate (name);
 	makeSimpleTag (name, BasicKinds, kind);
@@ -113,13 +113,21 @@
 	// if the line contains a ',', we have multiple declarations
 	while (*pos && strchr (pos, ','))
 	{
-		while (*pos != ',') // skip all we don't need(e.g. "..., new_array(5), " we skip "(5)")
+		// skip all we don't need(e.g. "..., new_array(5), " we skip "(5)")
+		while (*pos != ',' && *pos != '\'')
 			pos++;
+
+		if (*pos == '\'')
+			return 0; // break if we are in a comment
+
 		while (isspace (*pos) || *pos == ',')
 			pos++;
 
+		if (*pos == '\'')
+			return 0; // break if we are in a comment
+
 		vStringClear (name);
-		for (; *pos && !isspace (*pos) && *pos != '(' && *pos != ','; pos++)
+		for (; *pos && !isspace (*pos) && *pos != '(' && *pos != ',' && *pos != '='; pos++)
 			vStringPut (name, *pos);
 		vStringTerminate (name);
 		makeSimpleTag (name, BasicKinds, kind);


This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.



More information about the Commits mailing list