SF.net SVN: geany:[3204] branches/build-system

elextr at users.sourceforge.net elextr at xxxxx
Tue Nov 11 09:27:49 UTC 2008


Revision: 3204
          http://geany.svn.sourceforge.net/geany/?rev=3204&view=rev
Author:   elextr
Date:     2008-11-11 09:27:49 +0000 (Tue, 11 Nov 2008)

Log Message:
-----------
Symbol fixes to .h and .hpp filetype prototypes

Modified Paths:
--------------
    branches/build-system/ChangeLog
    branches/build-system/src/filetypes.c
    branches/build-system/src/symbols.c

Modified: branches/build-system/ChangeLog
===================================================================
--- branches/build-system/ChangeLog	2008-11-10 18:28:14 UTC (rev 3203)
+++ branches/build-system/ChangeLog	2008-11-11 09:27:49 UTC (rev 3204)
@@ -1,3 +1,17 @@
+2008-11-11  Lex Trotman  <elextr(at)gmail(dot)com>
+
+   fix tagmanager interaction with H and HPP filetypes
+   
+ * src/filetypes.c
+   fix h and hpp filetype names to pretend to be c and c++ for tags
+   purposes
+   filetypes_detect_from_file_internal() modified to detect C++ anywhere 
+   between -*- and another -*-
+ * src/symbols.c
+   add GEANY_FILETYPES_H and GEANY_FILETYPES_HPP as alternates where ever
+   GEANY_FILETYPES_C and GEANY_FILETYPES_CPP occur
+
+
 2008-11-10  Lex Trotman  <elextr(at)gmail(dot)com>
 
    Prototype C and CPP header filetypes, also detects .h or no extension

Modified: branches/build-system/src/filetypes.c
===================================================================
--- branches/build-system/src/filetypes.c	2008-11-10 18:28:14 UTC (rev 3203)
+++ branches/build-system/src/filetypes.c	2008-11-11 09:27:49 UTC (rev 3204)
@@ -92,7 +92,7 @@
 #define CH
 	ft = filetypes[GEANY_FILETYPES_H];
 	ft->lang = 0;
-	ft->name = g_strdup("H");
+	ft->name = g_strdup("C");
 	ft->title = g_strdup_printf(_("%s header file"), "C");
 	ft->extension = g_strdup("h");
 	ft->pattern = utils_strv_new("*.h", NULL);
@@ -115,7 +115,7 @@
 #define HPP
 	ft = filetypes[GEANY_FILETYPES_HPP];
 	ft->lang = 1;
-	ft->name = g_strdup("H++");
+	ft->name = g_strdup("C++");
 	ft->title = g_strdup_printf(_("%s header file"), "C++");
 	ft->extension = g_strdup("hpp");
 	ft->pattern = utils_strv_new("*.h", "*.hpp", "*.hxx", "*.h++", "*.hh", NULL);
@@ -804,8 +804,11 @@
 	id = FILETYPE_ID(ft);
 	if (id == GEANY_FILETYPES_H || id == GEANY_FILETYPES_NONE)
 	{
-		if (strstr(line, "-*-C++-*-"))
-			ft = filetypes[GEANY_FILETYPES_HPP];
+		char *c;
+		if (c=strstr(line, "-*-")) /* look for C++ between -*- es */
+			if (c=strstr(c,"C++"))
+				if (strstr(c,"-*-"))
+					ft = filetypes[GEANY_FILETYPES_HPP];
 	}
 	return ft;
 }

Modified: branches/build-system/src/symbols.c
===================================================================
--- branches/build-system/src/symbols.c	2008-11-10 18:28:14 UTC (rev 3203)
+++ branches/build-system/src/symbols.c	2008-11-11 09:27:49 UTC (rev 3204)
@@ -118,7 +118,8 @@
 	gint tag_type;
 
 	/* load ignore list for C/C++ parser */
-	if ((file_type_idx == GEANY_FILETYPES_C || file_type_idx == GEANY_FILETYPES_CPP) &&
+	if ((file_type_idx == GEANY_FILETYPES_C || file_type_idx == GEANY_FILETYPES_CPP
+		|| file_type_idx == GEANY_FILETYPES_H || file_type_idx == GEANY_FILETYPES_HPP ) &&
 		c_tags_ignore == NULL)
 	{
 		load_c_ignore_tags();
@@ -138,9 +139,11 @@
 	switch (file_type_idx)
 	{
 		case GEANY_FILETYPES_CPP:
+		case GEANY_FILETYPES_HPP:
 			symbols_global_tags_loaded(GEANY_FILETYPES_C);	/* load C global tags */
 			/* no C++ tagfile yet */
 			return;
+		case GEANY_FILETYPES_H:
 		case GEANY_FILETYPES_C:		tag_type = GTF_C; break;
 		case GEANY_FILETYPES_PASCAL:tag_type = GTF_PASCAL; break;
 		case GEANY_FILETYPES_PHP:	tag_type = GTF_PHP; break;
@@ -232,6 +235,8 @@
 	switch (ft_id)
 	{
 		case GEANY_FILETYPES_C:	/* for C++ .h headers or C structs */
+		case GEANY_FILETYPES_H:
+		case GEANY_FILETYPES_HPP:
 		case GEANY_FILETYPES_CPP:
 		case GEANY_FILETYPES_GLSL:	/* for structs */
 		/*case GEANY_FILETYPES_RUBY:*/ /* not sure what to use atm*/
@@ -1025,11 +1030,13 @@
 			return 1;
 		}
 		/* load ignore list for C/C++ parser */
-		if (ft->id == GEANY_FILETYPES_C || ft->id == GEANY_FILETYPES_CPP)
-			load_c_ignore_tags();
+		if (ft->id == GEANY_FILETYPES_C || ft->id == GEANY_FILETYPES_CPP
+			|| ft->id == GEANY_FILETYPES_H || ft->id == GEANY_FILETYPES_HPP )
+				load_c_ignore_tags();
 
-		if (want_preprocess && (ft->id == GEANY_FILETYPES_C || ft->id == GEANY_FILETYPES_CPP))
-			command = g_strdup_printf("%s %s", pre_process, NVL(getenv("CFLAGS"), ""));
+		if (want_preprocess && (ft->id == GEANY_FILETYPES_C || ft->id == GEANY_FILETYPES_CPP
+			|| ft->id == GEANY_FILETYPES_H || ft->id == GEANY_FILETYPES_HPP ))
+				command = g_strdup_printf("%s %s", pre_process, NVL(getenv("CFLAGS"), ""));
 		else
 			command = NULL;	/* don't preprocess */
 


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