diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/format/strsym.c | 92 | ||||
-rw-r--r-- | src/format/strsym.h | 10 |
2 files changed, 77 insertions, 25 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); } diff --git a/src/format/strsym.h b/src/format/strsym.h index 2400e59..6900251 100644 --- a/src/format/strsym.h +++ b/src/format/strsym.h @@ -69,10 +69,16 @@ typedef struct _GStrSymbolClass GStrSymbolClass; GType g_string_symbol_get_type(void); /* Crée un nouveau symbole pour chaîne de caractères. */ -GBinSymbol *g_string_symbol_new_read_only(GBinFormat *, const mrange_t *, StringEncodingType); +GBinSymbol *g_string_symbol_new_read_only(StringEncodingType, GBinFormat *, const mrange_t *); + +/* Réalise la complète initialisation d'unsymbole pour chaîne. */ +void g_string_symbol_init_read_only(GStrSymbol *, StringEncodingType, GBinFormat *, const mrange_t *); /* Crée un nouveau symbole pour chaîne de caractères. */ -GBinSymbol *g_string_symbol_new_dynamic(const char *, const vmpa2t *, StringEncodingType); +GBinSymbol *g_string_symbol_new_dynamic(StringEncodingType, const char *, const vmpa2t *); + +/* Réalise la complète initialisation d'unsymbole pour chaîne. */ +void g_string_symbol_init_dynamic(GStrSymbol *, StringEncodingType, const char *, const vmpa2t *); /* Définit si une chaîne de caractères est liée au format. */ void g_string_symbol_set_structural(GStrSymbol *, bool); |