summaryrefslogtreecommitdiff
path: root/src/format
diff options
context:
space:
mode:
authorCyrille Bagard <nocbos@gmail.com>2020-05-18 21:50:26 (GMT)
committerCyrille Bagard <nocbos@gmail.com>2020-05-18 21:50:26 (GMT)
commit041056d04032d41a5c092c62cbfd67b199094991 (patch)
treea294afa55e307fe68617f80af3e9999ad7fa28b6 /src/format
parent4f18f051936f633473c365d4c91ef7e77fa7feee (diff)
Updated the Python API for string symbols.
Diffstat (limited to 'src/format')
-rw-r--r--src/format/strsym.c92
-rw-r--r--src/format/strsym.h10
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);