summaryrefslogtreecommitdiff
path: root/src/analysis/routine.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/analysis/routine.c')
-rw-r--r--src/analysis/routine.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/src/analysis/routine.c b/src/analysis/routine.c
index 7a191c9..d52b74a 100644
--- a/src/analysis/routine.c
+++ b/src/analysis/routine.c
@@ -48,6 +48,7 @@ struct _GBinRoutine
GDataType *namespace; /* Espace de noms / classe */
char *name; /* Désignation humaine */
GDataType *full_name; /* Désignation très complète */
+ char *long_name; /* Désignation très complète ??*/
GBinVariable **args; /* Arguments de la routines */
size_t args_count; /* Nombre d'arguments */
@@ -421,7 +422,7 @@ void g_binary_routine_set_name(GBinRoutine *routine, char *name)
* *
******************************************************************************/
-const char *g_binary_routine_get_name(const GBinRoutine *routine)
+const char *g_binary_routine_get_name(GBinRoutine *routine)
{
if (routine->name == NULL && routine->full_name != NULL)
g_binary_routine_set_name(routine, g_data_type_to_string(routine->full_name));
@@ -434,6 +435,40 @@ const char *g_binary_routine_get_name(const GBinRoutine *routine)
/******************************************************************************
* *
* Paramètres : routine = routine à mettre à jour. *
+* *
+* Description : Fournit le nom long et humain d'une routine. *
+* *
+* Retour : Désignation humainement lisible ou NULL si non définie. *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+const char *g_binary_routine_get_long_name(GBinRoutine *routine)
+{
+ if (routine->long_name == NULL)
+ {
+ if (routine->namespace != NULL)
+ {
+ routine->long_name = strdup("");
+ routine->long_name = g_data_type_to_string(routine->namespace);
+ routine->long_name = stradd(routine->long_name, "." /* FIXME */);
+ }
+ else
+ routine->long_name = strdup("");
+
+ routine->long_name = stradd(routine->long_name, g_binary_routine_get_name(routine));
+
+ }
+
+ return routine->long_name;
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : routine = routine à mettre à jour. *
* type = désignation complète du nom de la routine. *
* *
* Description : Définit de façon indirecte le nom humain d'une routine. *