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