summaryrefslogtreecommitdiff
path: root/src/format/strsym.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/format/strsym.c')
-rw-r--r--src/format/strsym.c92
1 files changed, 69 insertions, 23 deletions
diff --git a/src/format/strsym.c b/src/format/strsym.c
index b078fe1..91232f4 100644
--- a/src/format/strsym.c
+++ b/src/format/strsym.c
@@ -233,9 +233,9 @@ static void g_string_symbol_finalize(GStrSymbol *symbol)
/******************************************************************************
* *
-* Paramètres : format = format binaire reconnu. *
+* Paramètres : encoding = encodage de la chaîne de caractères à représenter.*
+* format = format binaire reconnu. *
* range = espace couvert par le nouveau symbole. *
-* encoding = encodage de la chaîne de caractères à représenter.*
* *
* Description : Crée un nouveau symbole pour chaîne de caractères. *
* *
@@ -245,35 +245,58 @@ static void g_string_symbol_finalize(GStrSymbol *symbol)
* *
******************************************************************************/
-GBinSymbol *g_string_symbol_new_read_only(GBinFormat *format, const mrange_t *range, StringEncodingType encoding)
+GBinSymbol *g_string_symbol_new_read_only(StringEncodingType encoding, GBinFormat *format, const mrange_t *range)
{
GStrSymbol *result; /* Nouveau symbole à renvoyer */
- GBinSymbol *parent; /* Type d'instance parent */
result = g_object_new(G_TYPE_STR_SYMBOL, NULL);
- parent = G_BIN_SYMBOL(result);
+ g_string_symbol_init_read_only(result, encoding, format, range);
+
+ return G_BIN_SYMBOL(result);
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : symbole = symbole dont la définition est à initialiser. *
+* encoding = encodage de la chaîne de caractères à représenter.*
+* format = format binaire reconnu. *
+* range = espace couvert par le nouveau symbole. *
+* *
+* Description : Réalise la complète initialisation d'unsymbole pour chaîne. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_string_symbol_init_read_only(GStrSymbol *symbol, StringEncodingType encoding, GBinFormat *format, const mrange_t *range)
+{
+ GBinSymbol *parent; /* Type d'instance parent */
+
+ parent = G_BIN_SYMBOL(symbol);
g_binary_symbol_set_range(parent, range);
g_binary_symbol_set_stype(parent, STP_RO_STRING);
- result->encoding = encoding;
-
- result->content = g_binary_format_get_content(format);
- result->has_content = true;
+ symbol->encoding = encoding;
- g_string_symbol_check_encoding(result);
+ symbol->content = g_binary_format_get_content(format);
+ symbol->has_content = true;
- return G_BIN_SYMBOL(result);
+ g_string_symbol_check_encoding(symbol);
}
/******************************************************************************
* *
-* Paramètres : string = contenu de la chaîne de caractères. *
+* Paramètres : encoding = encodage de la chaîne de caractères à représenter.*
+* string = contenu de la chaîne de caractères. *
* addr = emplacement de cette chaîne virtuelle. *
-* encoding = encodage de la chaîne de caractères à représenter.*
* *
* Description : Crée un nouveau symbole pour chaîne de caractères. *
* *
@@ -283,29 +306,52 @@ GBinSymbol *g_string_symbol_new_read_only(GBinFormat *format, const mrange_t *ra
* *
******************************************************************************/
-GBinSymbol *g_string_symbol_new_dynamic(const char *string, const vmpa2t *addr, StringEncodingType encoding)
+GBinSymbol *g_string_symbol_new_dynamic(StringEncodingType encoding, const char *string, const vmpa2t *addr)
{
GStrSymbol *result; /* Nouveau symbole à renvoyer */
- GBinSymbol *parent; /* Type d'instance parent */
- mrange_t range; /* Emplacement à constituer */
result = g_object_new(G_TYPE_STR_SYMBOL, NULL);
- parent = G_BIN_SYMBOL(result);
+ g_string_symbol_init_dynamic(result, encoding, string, addr);
+
+ return G_BIN_SYMBOL(result);
+
+}
+
+
+/******************************************************************************
+* *
+* Paramètres : symbole = symbole dont la définition est à initialiser. *
+* encoding = encodage de la chaîne de caractères à représenter.*
+* string = contenu de la chaîne de caractères. *
+* addr = emplacement de cette chaîne virtuelle. *
+* *
+* Description : Réalise la complète initialisation d'unsymbole pour chaîne. *
+* *
+* Retour : - *
+* *
+* Remarques : - *
+* *
+******************************************************************************/
+
+void g_string_symbol_init_dynamic(GStrSymbol *symbol, StringEncodingType encoding, const char *string, const vmpa2t *addr)
+{
+ GBinSymbol *parent; /* Type d'instance parent */
+ mrange_t range; /* Emplacement à constituer */
+
+ parent = G_BIN_SYMBOL(symbol);
init_mrange(&range, addr, strlen(string));
g_binary_symbol_set_range(parent, &range);
g_binary_symbol_set_stype(parent, STP_DYN_STRING);
- result->encoding = encoding;
+ symbol->encoding = encoding;
- result->string = strdup(string);
- result->has_content = false;
-
- g_string_symbol_check_encoding(result);
+ symbol->string = strdup(string);
+ symbol->has_content = false;
- return G_BIN_SYMBOL(result);
+ g_string_symbol_check_encoding(symbol);
}