[anjuta/newproject] am: Fix removing and adding modules
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [anjuta/newproject] am: Fix removing and adding modules
- Date: Sun, 14 Nov 2010 21:53:00 +0000 (UTC)
commit bed225e6d0b8024908612cbb7bdffe13e8ccb157
Author: Sébastien Granjoux <seb sfo free fr>
Date: Sun Nov 14 21:47:16 2010 +0100
am: Fix removing and adding modules
libanjuta/anjuta-token.c | 4 +++-
plugins/am-project/ac-writer.c | 20 +++++++++++++++++---
plugins/am-project/am-node.c | 10 ++++++++--
plugins/am-project/am-project.c | 1 -
4 files changed, 28 insertions(+), 7 deletions(-)
---
diff --git a/libanjuta/anjuta-token.c b/libanjuta/anjuta-token.c
index b11cd9a..868eeb9 100644
--- a/libanjuta/anjuta-token.c
+++ b/libanjuta/anjuta-token.c
@@ -1527,6 +1527,7 @@ AnjutaToken*
anjuta_token_free_children (AnjutaToken *token)
{
AnjutaToken *child;
+ AnjutaToken *last;
if (token == NULL) return NULL;
@@ -1538,10 +1539,11 @@ anjuta_token_free_children (AnjutaToken *token)
if (token->last != NULL)
{
+ last = token->last;
for (child = anjuta_token_next (token); child != NULL; child = anjuta_token_next (token))
{
anjuta_token_free (child);
- if (child == token->last) break;
+ if (child == last) break;
}
}
token->last = NULL;
diff --git a/plugins/am-project/ac-writer.c b/plugins/am-project/ac-writer.c
index f2fe322..e0a15e6 100644
--- a/plugins/am-project/ac-writer.c
+++ b/plugins/am-project/ac-writer.c
@@ -264,6 +264,7 @@ amp_module_create_token (AmpProject *project, AnjutaAmModuleNode *module, GErro
gboolean after;
AnjutaToken *token;
AnjutaToken *prev;
+ AnjutaToken *next;
AnjutaProjectNode *sibling;
/* Get root node */
@@ -280,7 +281,11 @@ amp_module_create_token (AmpProject *project, AnjutaAmModuleNode *module, GErro
if (anjuta_project_node_get_node_type (sibling) == ANJUTA_PROJECT_MODULE)
{
prev = amp_module_get_token (ANJUTA_AM_MODULE_NODE (sibling));
- if (prev != NULL) break;
+ if (prev != NULL)
+ {
+ prev = anjuta_token_list (prev);
+ break;
+ }
}
}
if (prev == NULL)
@@ -291,12 +296,21 @@ amp_module_create_token (AmpProject *project, AnjutaAmModuleNode *module, GErro
if (anjuta_project_node_get_node_type (sibling) == ANJUTA_PROJECT_MODULE)
{
prev = amp_module_get_token (ANJUTA_AM_MODULE_NODE (sibling));
- if (prev != NULL) break;
+ if (prev != NULL)
+ {
+ prev = anjuta_token_list (prev);
+ break;
+ }
}
}
}
-
+
token = amp_project_write_module_list (root, anjuta_project_node_get_name (ANJUTA_PROJECT_NODE (module)), after, prev);
+ next = anjuta_token_next (token);
+ next = anjuta_token_next (next);
+ next = anjuta_token_next (next);
+ amp_module_add_token (module, next);
+
amp_root_update_configure (root, token);
return TRUE;
diff --git a/plugins/am-project/am-node.c b/plugins/am-project/am-node.c
index 16ff677..a24f515 100644
--- a/plugins/am-project/am-node.c
+++ b/plugins/am-project/am-node.c
@@ -382,9 +382,15 @@ anjuta_am_root_node_class_init (AnjutaAmRootNodeClass *klass)
void
amp_module_add_token (AnjutaAmModuleNode *module, AnjutaToken *token)
{
+ gchar *name;
+
module->module = token;
- g_free (module->base.name);
- module->base.name = anjuta_token_evaluate (anjuta_token_first_item (token));
+ name = anjuta_token_evaluate (anjuta_token_first_item (token));
+ if (name != NULL)
+ {
+ g_free (module->base.name);
+ module->base.name = name;
+ }
}
AnjutaToken *
diff --git a/plugins/am-project/am-project.c b/plugins/am-project/am-project.c
index 5d984d8..c74cc42 100644
--- a/plugins/am-project/am-project.c
+++ b/plugins/am-project/am-project.c
@@ -757,7 +757,6 @@ amp_project_load_module (AmpProject *project, AnjutaToken *module_token)
AnjutaAmPackageNode *package;
gchar *compare;
-
/* Module name */
arg = anjuta_token_first_item (module_token);
value = anjuta_token_evaluate (arg);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]