[anjuta/newproject] Display some target properties
- From: Sebastien Granjoux <sgranjoux src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [anjuta/newproject] Display some target properties
- Date: Thu, 11 Feb 2010 21:36:56 +0000 (UTC)
commit 992983861402b0a0362d23a47f70d6466cd45421
Author: Sébastien Granjoux <seb sfo free fr>
Date: Thu Feb 11 22:36:11 2010 +0100
Display some target properties
libanjuta/anjuta-project.c | 4 +-
plugins/am-project/am-dialogs.c | 4 +-
plugins/am-project/am-project-private.h | 3 +-
plugins/am-project/am-project.c | 48 ++++-----
plugins/am-project/am-properties.c | 171 ++++++++++++++++++++++---------
plugins/am-project/am-properties.h | 5 +
6 files changed, 152 insertions(+), 83 deletions(-)
---
diff --git a/libanjuta/anjuta-project.c b/libanjuta/anjuta-project.c
index 1d6f3c9..86fe40a 100644
--- a/libanjuta/anjuta-project.c
+++ b/libanjuta/anjuta-project.c
@@ -346,14 +346,14 @@ anjuta_project_node_get_property_list (AnjutaProjectNode *node)
list = g_list_prepend (list, item->data);
}
- new_item = g_list_first (list);
for (item = g_list_first (NODE_DATA (node)->properties); item != NULL; item = g_list_next (item))
{
AnjutaProjectPropertyInfo *info = (AnjutaProjectPropertyInfo *)item->data;
if (info->override == NULL) break;
- while (new_item->data != NULL)
+ new_item = g_list_first (list);
+ while ((new_item != NULL) && (new_item->data != NULL))
{
if (new_item->data == info->override)
{
diff --git a/plugins/am-project/am-dialogs.c b/plugins/am-project/am-dialogs.c
index dee953d..f950fef 100644
--- a/plugins/am-project/am-dialogs.c
+++ b/plugins/am-project/am-dialogs.c
@@ -193,7 +193,7 @@ amp_configure_group_dialog (AmpProject *project, AmpGroup *group, GError **error
main_pos = 1;
extra_pos = 0;
- list = anjuta_project_node_get_property_list ((AnjutaProjectNode *)group);
+ list = ANJUTA_PROJECT_NODE_DATA ((AnjutaProjectNode *)group)->properties;
for (prop = anjuta_project_property_first (list); prop != NULL; prop = anjuta_project_property_next (prop))
{
AnjutaProjectPropertyInfo *info;
@@ -251,7 +251,7 @@ amp_configure_target_dialog (AmpProject *project, AmpTarget *target, GError **er
main_pos = 2;
extra_pos = 0;
- list = anjuta_project_node_get_property_list ((AnjutaProjectNode *)target);
+ list = ANJUTA_PROJECT_NODE_DATA ((AnjutaProjectNode *)target)->properties;
for (prop = anjuta_project_property_first (list); prop != NULL; prop = anjuta_project_property_next (prop))
{
AnjutaProjectPropertyInfo *info;
diff --git a/plugins/am-project/am-project-private.h b/plugins/am-project/am-project-private.h
index f9f15ad..5edacff 100644
--- a/plugins/am-project/am-project-private.h
+++ b/plugins/am-project/am-project-private.h
@@ -50,8 +50,9 @@ struct _AmpProperty {
struct _AmpPropertyInfo {
AnjutaProjectPropertyInfo base;
- AnjutaToken *ac_init;
+ gint token_type;
gint position;
+ AnjutaToken *token;
};
typedef struct _AmpPropertyInfo AmpPropertyInfo;
diff --git a/plugins/am-project/am-project.c b/plugins/am-project/am-project.c
index ad55de1..f2e2148 100644
--- a/plugins/am-project/am-project.c
+++ b/plugins/am-project/am-project.c
@@ -565,33 +565,6 @@ amp_project_free_module_hash (AmpProject *project)
}
}
-/* Properties objects
- *---------------------------------------------------------------------------*/
-
-static AmpPropertyInfo *
-amp_property_new (AnjutaToken *ac_init)
-{
- AmpPropertyInfo *prop;
-
- prop = g_slice_new0(AmpPropertyInfo);
- prop->ac_init = ac_init;
-
- return prop;
-}
-
-static void
-amp_property_free (AmpPropertyInfo *prop)
-{
- if (prop->base.override != NULL)
- {
- if ((prop->base.value != NULL) && (prop->base.value != ((AmpPropertyInfo *)(prop->base.override->data))->base.value))
- {
- g_free (prop->base.value);
- }
- g_slice_free (AmpPropertyInfo, prop);
- }
-}
-
/* Group objects
*---------------------------------------------------------------------------*/
@@ -1211,6 +1184,27 @@ project_load_target (AmpProject *project, AnjutaToken *name, AnjutaToken *list,
g_list_free (sources);
}
+ /* Set target properties */
+ if (flags & AM_TARGET_NOBASE)
+ amp_node_property_set (target, AM_TOKEN__PROGRAMS, 0, "1", arg);
+ if (flags & AM_TARGET_NOTRANS)
+ amp_node_property_set (target, AM_TOKEN__PROGRAMS, 1, "1", arg);
+ if (flags & AM_TARGET_DIST)
+ amp_node_property_set (target, AM_TOKEN__PROGRAMS, 2, "1", arg);
+ if (flags & AM_TARGET_NODIST)
+ amp_node_property_set (target, AM_TOKEN__PROGRAMS, 2, "0", arg);
+ if (flags & AM_TARGET_NOINST)
+ amp_node_property_set (target, AM_TOKEN__PROGRAMS, 3, "1", arg);
+ if (flags & AM_TARGET_CHECK)
+ amp_node_property_set (target, AM_TOKEN__PROGRAMS, 4, "1", arg);
+ if (flags & AM_TARGET_MAN)
+ {
+ gchar section[] = "0";
+
+ section[0] += (flags >> 7) & 0x1F;
+ amp_node_property_set (target, AM_TOKEN__PROGRAMS, 4, section, arg);
+ }
+
g_free (canon_id);
g_free (value);
}
diff --git a/plugins/am-project/am-properties.c b/plugins/am-project/am-properties.c
index bd8b0a1..56140a6 100644
--- a/plugins/am-project/am-properties.c
+++ b/plugins/am-project/am-properties.c
@@ -28,6 +28,9 @@
#include "am-project-private.h"
+#include "ac-scanner.h"
+#include "am-scanner.h"
+
#include <glib/gi18n.h>
@@ -38,71 +41,70 @@
*---------------------------------------------------------------------------*/
static AmpPropertyInfo AmpProjectProperties[] = {
- {{N_("Name:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 0},
- {{N_("Version:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 1},
- {{N_("Bug report URL:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 2},
- {{N_("Package name:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 3},
- {{N_("URL:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{NULL, ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 0}};
+ {{N_("Name:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, AC_TOKEN_AC_INIT, 0, NULL},
+ {{N_("Version:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, AC_TOKEN_AC_INIT, 1, NULL},
+ {{N_("Bug report URL:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, AC_TOKEN_AC_INIT, 2, NULL},
+ {{N_("Package name:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, AC_TOKEN_AC_INIT, 3, NULL},
+ {{N_("URL:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, AC_TOKEN_AC_INIT, 4, NULL},
+ {{NULL, ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, AC_TOKEN_AC_INIT, 5, NULL}};
static GList* AmpProjectPropertyList = NULL;
static AmpPropertyInfo AmpGroupProperties[] = {
- {{N_("Linker flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("C preprocessor flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("C++ compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Java Compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Fortan compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Objective C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Lex/Flex flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Yacc/Bison flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Ratfor compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{NULL, ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 0}};
+ {{N_("Linker flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("C preprocessor flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("C++ compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Java Compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Fortan compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Objective C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Lex/Flex flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Yacc/Bison flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Ratfor compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{NULL, ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL}};
static GList* AmpGroupPropertyList = NULL;
static AmpPropertyInfo AmpTargetProperties[] = {
- {{N_("Do not install:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, NULL, 3},
- {{N_("Installation directory:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Linker flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("C preprocessor flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("C++ compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Java Compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Fortan compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Objective C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Lex/Flex flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Yacc/Bison flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Ratfor compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Additional dependencies:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Include in distribution:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, NULL, 2},
- {{N_("Build for check only:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, NULL, 3},
- {{N_("Do not use prefix:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, NULL, 1},
- {{N_("Keep target path:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, NULL, 0},
- {{NULL, ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 0}};
+ {{N_("Do not install:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, AM_TOKEN__PROGRAMS, 3, NULL},
+ {{N_("Installation directory:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Linker flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("C preprocessor flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("C++ compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Java Compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Fortan compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Objective C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Lex/Flex flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Yacc/Bison flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Ratfor compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Additional dependencies:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Include in distribution:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, AM_TOKEN__PROGRAMS, 2, NULL},
+ {{N_("Build for check only:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, AM_TOKEN__PROGRAMS, 4, NULL},
+ {{N_("Do not use prefix:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, AM_TOKEN__PROGRAMS, 1, NULL},
+ {{N_("Keep target path:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, AM_TOKEN__PROGRAMS, 0, NULL},
+ {{NULL, ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL}};
static GList* AmpTargetPropertyList = NULL;
static AmpPropertyInfo AmpManTargetProperties[] = {
- {{N_("Installation directory:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Linker flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("C preprocessor flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("C++ compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Java Compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Fortan compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Objective C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Lex/Flex flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Yacc/Bison flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Ratfor compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Additional dependencies:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{N_("Include in distribution:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, NULL, 2},
- {{N_("Keep target path:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, NULL, 0},
- {{N_("Manual section:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 4},
- {{NULL, ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, NULL, 0}};
+ {{N_("Installation directory:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Linker flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("C preprocessor flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("C++ compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Java Compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Fortan compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Objective C compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Lex/Flex flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Yacc/Bison flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Ratfor compiler flags:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Additional dependencies:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL},
+ {{N_("Do not use prefix:"), ANJUTA_PROJECT_PROPERTY_BOOLEAN, NULL, NULL}, AM_TOKEN__PROGRAMS, 1, NULL},
+ {{N_("Manual section:"), ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, AM_TOKEN__PROGRAMS, 5, NULL},
+ {{NULL, ANJUTA_PROJECT_PROPERTY_STRING, NULL, NULL}, 0, 0, NULL}};
static GList* AmpManTargetPropertyList = NULL;
@@ -132,6 +134,73 @@ amp_create_property_list (GList **list, AmpPropertyInfo *info)
/* Public functions
*---------------------------------------------------------------------------*/
+
+/* Properties objects
+ *---------------------------------------------------------------------------*/
+
+AnjutaProjectPropertyInfo *
+amp_property_new (AnjutaToken *ac_init)
+{
+ AmpPropertyInfo *prop;
+
+ prop = g_slice_new0(AmpPropertyInfo);
+ prop->token = ac_init;
+
+ return (AnjutaProjectPropertyInfo *)prop;
+}
+
+void
+amp_property_free (AnjutaProjectPropertyInfo *prop)
+{
+ if (prop->override != NULL)
+ {
+ if ((prop->value != NULL) && (prop->value != ((AmpPropertyInfo *)(prop->override->data))->base.value))
+ {
+ g_free (prop->value);
+ }
+ g_slice_free (AmpPropertyInfo, (AmpPropertyInfo *)prop);
+ }
+}
+
+/* Set property list
+ *---------------------------------------------------------------------------*/
+
+gboolean
+amp_node_property_set (AnjutaProjectNode *node, gint token_type, gint position, const gchar *value, AnjutaToken *token)
+{
+ AnjutaProjectPropertyList **properties = &(ANJUTA_PROJECT_NODE_DATA(node)->properties);
+ AnjutaProjectPropertyItem *list;
+ gboolean set = FALSE;
+
+ for (list = anjuta_project_property_first (*properties); list != NULL; list = anjuta_project_property_next (list))
+ {
+ AmpPropertyInfo *info = (AmpPropertyInfo *)anjuta_project_property_get_info (list);
+
+ if ((info->token_type == token_type) && (info->position == position))
+ {
+ AnjutaProjectPropertyInfo *prop;
+
+ prop = anjuta_project_property_lookup (*properties, list);
+ if (prop == NULL)
+ {
+ prop = (AnjutaProjectPropertyInfo *)amp_property_new (token);
+
+ *properties = anjuta_project_property_insert (*properties, list, prop);
+ }
+
+ if ((prop->value != NULL) && (prop->value != info->base.value)) g_free (prop->value);
+ prop->value = g_strdup (value);
+ set = TRUE;
+ }
+ }
+
+ return set;
+}
+
+
+/* Get property list
+ *---------------------------------------------------------------------------*/
+
GList*
amp_get_project_property_list (void)
{
diff --git a/plugins/am-project/am-properties.h b/plugins/am-project/am-properties.h
index dc3468f..5032351 100644
--- a/plugins/am-project/am-properties.h
+++ b/plugins/am-project/am-properties.h
@@ -28,6 +28,11 @@
G_BEGIN_DECLS
+AnjutaProjectPropertyInfo *amp_property_new (AnjutaToken *token);
+void amp_property_free (AnjutaProjectPropertyInfo *prop);
+
+gboolean amp_node_property_set (AnjutaProjectNode *target, gint token_type, gint position, const gchar *value, AnjutaToken *token);
+
GList* amp_get_project_property_list (void);
GList* amp_get_group_property_list (void);
GList* amp_get_target_property_list (AnjutaProjectTargetType type);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]