SF.net SVN: geany: [1253] branches/geany-0.10.1
ntrel at users.sourceforge.net
ntrel at xxxxx
Wed Feb 7 12:28:09 UTC 2007
Revision: 1253
http://svn.sourceforge.net/geany/?rev=1253&view=rev
Author: ntrel
Date: 2007-02-07 04:28:09 -0800 (Wed, 07 Feb 2007)
Log Message:
-----------
Fix missing global tags for C files when a C++ source file was loaded first.
Modified Paths:
--------------
branches/geany-0.10.1/NEWS
branches/geany-0.10.1/src/symbols.c
Modified: branches/geany-0.10.1/NEWS
===================================================================
--- branches/geany-0.10.1/NEWS 2007-02-06 17:39:19 UTC (rev 1252)
+++ branches/geany-0.10.1/NEWS 2007-02-07 12:28:09 UTC (rev 1253)
@@ -3,6 +3,8 @@
Bugs fixed:
* Wrong tab foreground colour for unmodified documents.
* Fixed crashes when closing dialogs by clicking X on some systems.
+ * Fix missing global tags for C files when a C++ source file was
+ loaded first.
Geany 0.10 (December 21, 2006)
Modified: branches/geany-0.10.1/src/symbols.c
===================================================================
--- branches/geany-0.10.1/src/symbols.c 2007-02-06 17:39:19 UTC (rev 1252)
+++ branches/geany-0.10.1/src/symbols.c 2007-02-07 12:28:09 UTC (rev 1253)
@@ -37,6 +37,15 @@
tm_tag_struct_t | tm_tag_typedef_t | tm_tag_union_t;
+static gchar **html_entities = NULL;
+
+
+typedef struct
+{
+ gboolean tags_loaded;
+ const gchar *tag_file;
+} TagFileInfo;
+
enum // Geany tag files
{
GTF_C,
@@ -47,14 +56,6 @@
GTF_MAX
};
-static gchar **html_entities = NULL;
-
-typedef struct
-{
- gboolean tags_loaded;
- const gchar *tag_file;
-} TagFileInfo;
-
static TagFileInfo tag_file_info[GTF_MAX] =
{
{FALSE, "global.tags"},
@@ -72,7 +73,7 @@
void symbols_global_tags_loaded(gint file_type_idx)
{
TagFileInfo *tfi;
- gint gtf, lt;
+ gint tag_type;
if (app->ignore_global_tags) return;
@@ -81,27 +82,32 @@
case GEANY_FILETYPES_HTML:
html_tags_loaded();
return;
- case GEANY_FILETYPES_C: gtf = GTF_C; break;
- case GEANY_FILETYPES_CPP: gtf = GTF_C; break;
- case GEANY_FILETYPES_PASCAL:gtf = GTF_PASCAL; break;
- case GEANY_FILETYPES_PHP: gtf = GTF_PHP; break;
- case GEANY_FILETYPES_LATEX: gtf = GTF_LATEX; break;
+ case GEANY_FILETYPES_CPP:
+ symbols_global_tags_loaded(GEANY_FILETYPES_C); // load C global tags
+ return; // no C++ tagfile yet
+ 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;
+ case GEANY_FILETYPES_LATEX: tag_type = GTF_LATEX; break;
default:
return;
}
- lt = filetypes[file_type_idx]->lang;
- tfi = &tag_file_info[gtf];
+ tfi = &tag_file_info[tag_type];
if (! tfi->tags_loaded)
{
- gchar *file = g_strconcat(app->datadir, G_DIR_SEPARATOR_S, tfi->tag_file, NULL);
- tm_workspace_load_global_tags(file, lt);
+ gchar *fname = g_strconcat(app->datadir, G_DIR_SEPARATOR_S, tfi->tag_file, NULL);
+ gint tm_lang;
+
+ tm_lang = filetypes[file_type_idx]->lang;
+ tm_workspace_load_global_tags(fname, tm_lang);
tfi->tags_loaded = TRUE;
- g_free(file);
+ g_free(fname);
}
}
+// HTML tagfile is just a list of entities for autocompletion (e.g. '&')
static void html_tags_loaded()
{
TagFileInfo *tfi;
@@ -112,6 +118,7 @@
if (! tfi->tags_loaded)
{
gchar *file = g_strconcat(app->datadir, G_DIR_SEPARATOR_S, tfi->tag_file, NULL);
+
html_entities = utils_read_file_in_array(file);
tfi->tags_loaded = TRUE;
g_free(file);
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