summaryrefslogtreecommitdiff
path: root/src/block-parser.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/block-parser.c')
-rw-r--r--src/block-parser.c47
1 files changed, 23 insertions, 24 deletions
diff --git a/src/block-parser.c b/src/block-parser.c
index 57eae8c..9166e0c 100644
--- a/src/block-parser.c
+++ b/src/block-parser.c
@@ -31,18 +31,18 @@
-#define BUFFER_SIZE 65536 /* lines cannot be longer than this */
+#define BUFFER_SIZE 65536 /* line cannot be longer than this */
struct BlockParser {
GHashTable *table;
GQueue *active_tree;
- char *current_line;
+ gchar *current_line;
};
typedef struct {
- char *replace_key;
- char *data;
+ gchar *replace_key;
+ gchar *data;
gboolean used;
gboolean finished;
} BlockData;
@@ -93,7 +93,7 @@ block_parser_free (BlockParser *parser)
*
*/
void
-block_parser_register_key (BlockParser *parser, const char *key, const char *replace_key)
+block_parser_register_key (BlockParser *parser, const gchar *key, const gchar *replace_key)
{
BlockData *data;
@@ -112,8 +112,8 @@ block_parser_register_key (BlockParser *parser, const char *key, const char *rep
* returns newly allocated string, caller is responsible for freeing
*
*/
-char *
-block_parser_get_data (BlockParser *parser, const char *key)
+gchar *
+block_parser_get_data (BlockParser *parser, const gchar *key)
{
BlockData *data = NULL;
@@ -133,7 +133,7 @@ block_parser_get_data (BlockParser *parser, const char *key)
*
*/
gboolean
-block_parser_has_unused_data (BlockParser *parser, const char *key)
+block_parser_has_unused_data (BlockParser *parser, const gchar *key)
{
BlockData *data = NULL;
@@ -153,10 +153,10 @@ block_parser_has_unused_data (BlockParser *parser, const char *key)
/* -------------------------------------------------------------------------------------------------------- */
static void
-push_string (BlockParser *parser, const char *piece)
+push_string (BlockParser *parser, const gchar *piece)
{
BlockData *data;
- char *s;
+ gchar *s;
data = g_queue_peek_head (parser->active_tree);
if (data) {
@@ -186,14 +186,14 @@ push_string (BlockParser *parser, const char *piece)
* - returns newly allocated string, caller is responsible for freeing
*
*/
-char *
+gchar *
block_parser_read_and_parse (BlockParser *parser, FILE *stream)
{
- char *buffer;
- char *b;
- char *token;
- char *start, *end;
- char *s;
+ gchar *buffer;
+ gchar *b;
+ gchar *token;
+ gchar *start, *end;
+ gchar *s;
GList *keys;
GList *l;
BlockData *data;
@@ -201,8 +201,7 @@ block_parser_read_and_parse (BlockParser *parser, FILE *stream)
g_return_val_if_fail (parser != NULL, NULL);
- buffer = malloc (BUFFER_SIZE);
- memset (buffer, 0, BUFFER_SIZE);
+ buffer = g_malloc0 (BUFFER_SIZE);
parser->current_line = g_strdup ("");
if (! fgets (buffer, BUFFER_SIZE, stream) || strlen (buffer) == 0)
return NULL;
@@ -222,9 +221,9 @@ block_parser_read_and_parse (BlockParser *parser, FILE *stream)
/* match known tags */
for (l = keys; l != NULL; l = l->next) {
/* test BEGIN_ tokens */
- s = g_strdup_printf ("BEGIN_%s", (char *) l->data);
+ s = g_strdup_printf ("BEGIN_%s", (gchar *) l->data);
if (strcmp (s, token) == 0) {
- data = g_hash_table_lookup (parser->table, (char *) l->data);
+ data = g_hash_table_lookup (parser->table, (gchar *) l->data);
if (data) {
g_queue_push_head (parser->active_tree, data);
handled = TRUE;
@@ -233,11 +232,11 @@ block_parser_read_and_parse (BlockParser *parser, FILE *stream)
g_free (s);
/* test END_ tokens */
- s = g_strdup_printf ("END_%s", (char *) l->data);
+ s = g_strdup_printf ("END_%s", (gchar *) l->data);
if (strcmp (s, token) == 0) {
- data = g_hash_table_lookup (parser->table, (char *) l->data);
+ data = g_hash_table_lookup (parser->table, (gchar *) l->data);
if (data == NULL || data != g_queue_peek_head (parser->active_tree)) {
- log_error ("block_parser_read_and_parse: something is wrong with the parser table: expected '%s'\n", (char *) l->data);
+ log_error ("block_parser_read_and_parse: something is wrong with the parser table: expected '%s'\n", (gchar *) l->data);
}
else
{
@@ -267,6 +266,6 @@ block_parser_read_and_parse (BlockParser *parser, FILE *stream)
push_string (parser, b);
g_list_free (keys);
- free (buffer);
+ g_free (buffer);
return parser->current_line;
}