summaryrefslogtreecommitdiff
path: root/src/cr-declaration.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/cr-declaration.c')
-rw-r--r--src/cr-declaration.c1109
1 files changed, 516 insertions, 593 deletions
diff --git a/src/cr-declaration.c b/src/cr-declaration.c
index 743e450..2e5986e 100644
--- a/src/cr-declaration.c
+++ b/src/cr-declaration.c
@@ -41,18 +41,18 @@
*@param a_indent the number of indentation white char.
*/
static void
-dump (CRDeclaration *a_this, FILE *a_fp, glong a_indent)
+dump (CRDeclaration * a_this, FILE * a_fp, glong a_indent)
{
- guchar *str = NULL ;
- g_return_if_fail (a_this) ;
-
- str = cr_declaration_to_string (a_this, a_indent) ;
- if (str)
- {
- fprintf (a_fp,"%s", str) ;
- g_free (str) ;
- str = NULL ;
- }
+ guchar *str = NULL;
+
+ g_return_if_fail (a_this);
+
+ str = cr_declaration_to_string (a_this, a_indent);
+ if (str) {
+ fprintf (a_fp, "%s", str);
+ g_free (str);
+ str = NULL;
+ }
}
/**
@@ -63,43 +63,37 @@ dump (CRDeclaration *a_this, FILE *a_fp, glong a_indent)
*case of error.
*/
CRDeclaration *
-cr_declaration_new (CRStatement *a_statement,
- GString *a_property,
- CRTerm *a_value)
+cr_declaration_new (CRStatement * a_statement,
+ GString * a_property, CRTerm * a_value)
{
- CRDeclaration *result = NULL ;
-
- g_return_val_if_fail (a_property, NULL) ;
-
- if (a_statement)
- g_return_val_if_fail (a_statement
- && ((a_statement->type
- == RULESET_STMT)
- || (a_statement->type
- == AT_FONT_FACE_RULE_STMT)
- || (a_statement->type
- == AT_PAGE_RULE_STMT)),
- NULL) ;
-
- result = g_try_malloc (sizeof (CRDeclaration)) ;
- if (!result)
- {
- cr_utils_trace_info ("Out of memory") ;
- return NULL ;
- }
- memset (result, 0, sizeof (CRDeclaration)) ;
- result->property = a_property ;
- result->value = a_value ;
-
- if (a_value)
- {
- cr_term_ref (a_value) ;
- }
- result->parent_statement = a_statement ;
- return result ;
+ CRDeclaration *result = NULL;
+
+ g_return_val_if_fail (a_property, NULL);
+
+ if (a_statement)
+ g_return_val_if_fail (a_statement
+ && ((a_statement->type == RULESET_STMT)
+ || (a_statement->type
+ == AT_FONT_FACE_RULE_STMT)
+ || (a_statement->type
+ == AT_PAGE_RULE_STMT)), NULL);
+
+ result = g_try_malloc (sizeof (CRDeclaration));
+ if (!result) {
+ cr_utils_trace_info ("Out of memory");
+ return NULL;
+ }
+ memset (result, 0, sizeof (CRDeclaration));
+ result->property = a_property;
+ result->value = a_value;
+
+ if (a_value) {
+ cr_term_ref (a_value);
+ }
+ result->parent_statement = a_statement;
+ return result;
}
-
/**
*Parses a text buffer that contains
*a css declaration.
@@ -112,65 +106,58 @@ cr_declaration_new (CRStatement *a_statement,
*@return the parsed declaration, or NULL in case of error.
*/
CRDeclaration *
-cr_declaration_parse_from_buf (CRStatement *a_statement,
- const guchar *a_str,
- enum CREncoding a_enc)
+cr_declaration_parse_from_buf (CRStatement * a_statement,
+ const guchar * a_str, enum CREncoding a_enc)
{
- enum CRStatus status = CR_OK ;
- CRTerm *value = NULL ;
- GString *property = NULL;
- CRDeclaration *result = NULL ;
- CRParser * parser = NULL ;
- gboolean important = FALSE ;
-
- g_return_val_if_fail (a_str, NULL) ;
- if (a_statement)
- g_return_val_if_fail (a_statement->type == RULESET_STMT,
- NULL);
-
- parser = cr_parser_new_from_buf (a_str,
- strlen (a_str),
- a_enc, FALSE) ;
- g_return_val_if_fail (parser, NULL) ;
-
- status = cr_parser_try_to_skip_spaces_and_comments (parser) ;
- if (status != CR_OK)
- goto cleanup ;
-
- status = cr_parser_parse_declaration (parser, &property,
- &value, &important) ;
- if (status != CR_OK || !property)
- goto cleanup ;
-
- result = cr_declaration_new (a_statement, property, value) ;
- if (result)
- {
- property = NULL ;
- value = NULL ;
- result->important = important ;
- }
-
- cleanup:
-
- if (parser)
- {
- cr_parser_destroy (parser) ;
- parser = NULL ;
- }
-
- if (property)
- {
- g_string_free (property, TRUE) ;
- property = NULL ;
- }
-
- if (value)
- {
- cr_term_destroy (value) ;
- value = NULL ;
- }
-
- return result ;
+ enum CRStatus status = CR_OK;
+ CRTerm *value = NULL;
+ GString *property = NULL;
+ CRDeclaration *result = NULL;
+ CRParser *parser = NULL;
+ gboolean important = FALSE;
+
+ g_return_val_if_fail (a_str, NULL);
+ if (a_statement)
+ g_return_val_if_fail (a_statement->type == RULESET_STMT,
+ NULL);
+
+ parser = cr_parser_new_from_buf (a_str, strlen (a_str), a_enc, FALSE);
+ g_return_val_if_fail (parser, NULL);
+
+ status = cr_parser_try_to_skip_spaces_and_comments (parser);
+ if (status != CR_OK)
+ goto cleanup;
+
+ status = cr_parser_parse_declaration (parser, &property,
+ &value, &important);
+ if (status != CR_OK || !property)
+ goto cleanup;
+
+ result = cr_declaration_new (a_statement, property, value);
+ if (result) {
+ property = NULL;
+ value = NULL;
+ result->important = important;
+ }
+
+ cleanup:
+
+ if (parser) {
+ cr_parser_destroy (parser);
+ parser = NULL;
+ }
+
+ if (property) {
+ g_string_free (property, TRUE);
+ property = NULL;
+ }
+
+ if (value) {
+ cr_term_destroy (value);
+ value = NULL;
+ }
+
+ return result;
}
/**
@@ -181,125 +168,108 @@ cr_declaration_parse_from_buf (CRStatement *a_statement,
*@return the parsed list of declaration, NULL if parsing failed.
*/
CRDeclaration *
-cr_declaration_parse_list_from_buf (const guchar *a_str, enum CREncoding a_enc)
+cr_declaration_parse_list_from_buf (const guchar * a_str,
+ enum CREncoding a_enc)
{
- enum CRStatus status = CR_OK ;
- CRTerm *value = NULL ;
- GString *property = NULL;
- CRDeclaration *result = NULL, *cur_decl = NULL ;
- CRParser * parser = NULL ;
- CRTknzr *tokenizer = NULL ;
- gboolean important = FALSE ;
-
- g_return_val_if_fail (a_str, NULL) ;
-
- parser = cr_parser_new_from_buf (a_str,
- strlen (a_str),
- a_enc, FALSE) ;
- g_return_val_if_fail (parser, NULL) ;
- status = cr_parser_get_tknzr (parser, &tokenizer) ;
- if (status != CR_OK || !tokenizer)
- {
- if (status == CR_OK)
- status = CR_ERROR ;
- goto cleanup ;
- }
- status = cr_parser_try_to_skip_spaces_and_comments (parser) ;
- if (status != CR_OK)
- goto cleanup ;
-
- status = cr_parser_parse_declaration (parser, &property,
- &value, &important) ;
- if (status != CR_OK || !property)
- {
- if (status != CR_OK)
- status = CR_ERROR ;
- goto cleanup ;
- }
- result = cr_declaration_new (NULL, property, value) ;
- if (result)
- {
- property = NULL ;
- value = NULL ;
- result->important = important ;
- }
- /*now, go parse the other declarations*/
- for (;;)
- {
- guint32 c = 0 ;
- cr_parser_try_to_skip_spaces_and_comments (parser) ;
- status = cr_tknzr_peek_char (tokenizer, &c) ;
- if (status != CR_OK)
- {
- if (status == CR_END_OF_INPUT_ERROR)
- status = CR_OK ;
- goto cleanup ;
- }
- if (c == ';')
- {
- status = cr_tknzr_read_char (tokenizer, &c) ;
- }
- else
- {
- break ;
- }
- important = FALSE ;
- cr_parser_try_to_skip_spaces_and_comments (parser) ;
- status = cr_parser_parse_declaration (parser, &property,
- &value, &important) ;
- if (status != CR_OK || !property)
- {
- if (status == CR_END_OF_INPUT_ERROR)
- {
- status = CR_OK ;
- }
- break ;
- }
- cur_decl = cr_declaration_new (NULL, property, value) ;
- if (cur_decl)
- {
- cur_decl->important = important ;
- result = cr_declaration_append (result, cur_decl) ;
- property = NULL ;
- value = NULL ;
- cur_decl = NULL;
- }
- else
- {
- break ;
- }
- }
-
- cleanup:
-
- if (parser)
- {
- cr_parser_destroy (parser) ;
- parser = NULL ;
- }
-
- if (property)
- {
- g_string_free (property, TRUE) ;
- property = NULL ;
- }
-
- if (value)
- {
- cr_term_destroy (value) ;
- value = NULL ;
- }
-
- if (status != CR_OK && result)
- {
- cr_declaration_destroy (result) ;
- result = NULL ;
- }
- return result ;
+ enum CRStatus status = CR_OK;
+ CRTerm *value = NULL;
+ GString *property = NULL;
+ CRDeclaration *result = NULL,
+ *cur_decl = NULL;
+ CRParser *parser = NULL;
+ CRTknzr *tokenizer = NULL;
+ gboolean important = FALSE;
+
+ g_return_val_if_fail (a_str, NULL);
+
+ parser = cr_parser_new_from_buf (a_str, strlen (a_str), a_enc, FALSE);
+ g_return_val_if_fail (parser, NULL);
+ status = cr_parser_get_tknzr (parser, &tokenizer);
+ if (status != CR_OK || !tokenizer) {
+ if (status == CR_OK)
+ status = CR_ERROR;
+ goto cleanup;
+ }
+ status = cr_parser_try_to_skip_spaces_and_comments (parser);
+ if (status != CR_OK)
+ goto cleanup;
+
+ status = cr_parser_parse_declaration (parser, &property,
+ &value, &important);
+ if (status != CR_OK || !property) {
+ if (status != CR_OK)
+ status = CR_ERROR;
+ goto cleanup;
+ }
+ result = cr_declaration_new (NULL, property, value);
+ if (result) {
+ property = NULL;
+ value = NULL;
+ result->important = important;
+ }
+ /*now, go parse the other declarations */
+ for (;;) {
+ guint32 c = 0;
+
+ cr_parser_try_to_skip_spaces_and_comments (parser);
+ status = cr_tknzr_peek_char (tokenizer, &c);
+ if (status != CR_OK) {
+ if (status == CR_END_OF_INPUT_ERROR)
+ status = CR_OK;
+ goto cleanup;
+ }
+ if (c == ';') {
+ status = cr_tknzr_read_char (tokenizer, &c);
+ } else {
+ break;
+ }
+ important = FALSE;
+ cr_parser_try_to_skip_spaces_and_comments (parser);
+ status = cr_parser_parse_declaration (parser, &property,
+ &value, &important);
+ if (status != CR_OK || !property) {
+ if (status == CR_END_OF_INPUT_ERROR) {
+ status = CR_OK;
+ }
+ break;
+ }
+ cur_decl = cr_declaration_new (NULL, property, value);
+ if (cur_decl) {
+ cur_decl->important = important;
+ result = cr_declaration_append (result, cur_decl);
+ property = NULL;
+ value = NULL;
+ cur_decl = NULL;
+ } else {
+ break;
+ }
+ }
+
+ cleanup:
+
+ if (parser) {
+ cr_parser_destroy (parser);
+ parser = NULL;
+ }
+
+ if (property) {
+ g_string_free (property, TRUE);
+ property = NULL;
+ }
+
+ if (value) {
+ cr_term_destroy (value);
+ value = NULL;
+ }
+
+ if (status != CR_OK && result) {
+ cr_declaration_destroy (result);
+ result = NULL;
+ }
+ return result;
}
-
/**
*Appends a new declaration to the current declarations list.
*@param a_this the current declaration list.
@@ -308,21 +278,21 @@ cr_declaration_parse_list_from_buf (const guchar *a_str, enum CREncoding a_enc)
*in case of error.
*/
CRDeclaration *
-cr_declaration_append (CRDeclaration *a_this, CRDeclaration *a_new)
+cr_declaration_append (CRDeclaration * a_this, CRDeclaration * a_new)
{
- CRDeclaration *cur = NULL ;
+ CRDeclaration *cur = NULL;
+
+ g_return_val_if_fail (a_new, NULL);
- g_return_val_if_fail (a_new, NULL) ;
+ if (!a_this)
+ return a_new;
- if (!a_this)
- return a_new ;
+ for (cur = a_this; cur && cur->next; cur = cur->next) ;
- for (cur = a_this ; cur && cur->next ; cur = cur->next) ;
-
- cur->next = a_new ;
- a_new->prev = cur ;
+ cur->next = a_new;
+ a_new->prev = cur;
- return a_this ;
+ return a_this;
}
/**
@@ -334,80 +304,70 @@ cr_declaration_append (CRDeclaration *a_this, CRDeclaration *a_new)
CRDeclaration *
cr_declaration_unlink (CRDeclaration * a_decl)
{
- CRDeclaration *result = a_decl ;
-
- g_return_val_if_fail (result, NULL) ;
-
- /*
- *some sanity checks first
- */
- if (a_decl->prev)
- {
- g_return_val_if_fail (a_decl->prev->next == a_decl, NULL) ;
-
- }
- if (a_decl->next)
- {
- g_return_val_if_fail (a_decl->next->prev == a_decl, NULL) ;
- }
-
- /*
- *now, the real unlinking job.
- */
- if (a_decl->prev)
- {
- a_decl->prev->next = a_decl->next ;
- }
- if (a_decl->next)
- {
- a_decl->next->prev = a_decl->prev ;
- }
- if (a_decl->parent_statement)
- {
- CRDeclaration **children_decl_ptr = NULL ;
- switch (a_decl->parent_statement->type)
- {
- case RULESET_STMT:
- if (a_decl->parent_statement->kind.ruleset)
- {
- children_decl_ptr =
- &a_decl->parent_statement->
- kind.ruleset->decl_list ;
- }
-
- break ;
-
- case AT_FONT_FACE_RULE_STMT:
- if (a_decl->parent_statement->kind.font_face_rule)
- {
- children_decl_ptr =
- &a_decl->parent_statement->
- kind.font_face_rule->decl_list ;
- }
- break ;
- case AT_PAGE_RULE_STMT:
- if (a_decl->parent_statement->kind.page_rule)
- {
- children_decl_ptr =
- &a_decl->parent_statement->
- kind.page_rule->decl_list ;
- }
-
- default:
- break ;
- }
- if (children_decl_ptr
- && *children_decl_ptr
- && *children_decl_ptr == a_decl)
- *children_decl_ptr =
- (*children_decl_ptr)->next ;
- }
-
- a_decl->next = NULL ;
- a_decl->prev = NULL ;
- a_decl->parent_statement = NULL ;
-
- return result ;
+ CRDeclaration *result = a_decl;
+
+ g_return_val_if_fail (result, NULL);
+
+ /*
+ *some sanity checks first
+ */
+ if (a_decl->prev) {
+ g_return_val_if_fail (a_decl->prev->next == a_decl, NULL);
+
+ }
+ if (a_decl->next) {
+ g_return_val_if_fail (a_decl->next->prev == a_decl, NULL);
+ }
+
+ /*
+ *now, the real unlinking job.
+ */
+ if (a_decl->prev) {
+ a_decl->prev->next = a_decl->next;
+ }
+ if (a_decl->next) {
+ a_decl->next->prev = a_decl->prev;
+ }
+ if (a_decl->parent_statement) {
+ CRDeclaration **children_decl_ptr = NULL;
+
+ switch (a_decl->parent_statement->type) {
+ case RULESET_STMT:
+ if (a_decl->parent_statement->kind.ruleset) {
+ children_decl_ptr =
+ &a_decl->parent_statement->
+ kind.ruleset->decl_list;
+ }
+
+ break;
+
+ case AT_FONT_FACE_RULE_STMT:
+ if (a_decl->parent_statement->kind.font_face_rule) {
+ children_decl_ptr =
+ &a_decl->parent_statement->
+ kind.font_face_rule->decl_list;
+ }
+ break;
+ case AT_PAGE_RULE_STMT:
+ if (a_decl->parent_statement->kind.page_rule) {
+ children_decl_ptr =
+ &a_decl->parent_statement->
+ kind.page_rule->decl_list;
+ }
+
+ default:
+ break;
+ }
+ if (children_decl_ptr
+ && *children_decl_ptr && *children_decl_ptr == a_decl)
+ *children_decl_ptr = (*children_decl_ptr)->next;
+ }
+
+ a_decl->next = NULL;
+ a_decl->prev = NULL;
+ a_decl->parent_statement = NULL;
+
+ return result;
}
/**
@@ -417,21 +377,21 @@ cr_declaration_unlink (CRDeclaration * a_decl)
*@return the list with a_new prepended or NULL in case of error.
*/
CRDeclaration *
-cr_declaration_prepend (CRDeclaration *a_this, CRDeclaration *a_new)
+cr_declaration_prepend (CRDeclaration * a_this, CRDeclaration * a_new)
{
- CRDeclaration *cur = NULL ;
+ CRDeclaration *cur = NULL;
- g_return_val_if_fail (a_new, NULL) ;
+ g_return_val_if_fail (a_new, NULL);
- if (!a_this)
- return a_new ;
+ if (!a_this)
+ return a_new;
- a_this->prev = a_new ;
- a_new->next = a_this ;
+ a_this->prev = a_new;
+ a_new->next = a_this;
- for (cur = a_new ; cur && cur->prev ; cur = cur->prev) ;
+ for (cur = a_new; cur && cur->prev; cur = cur->prev) ;
- return cur ;
+ return cur;
}
/**
@@ -443,25 +403,21 @@ cr_declaration_prepend (CRDeclaration *a_this, CRDeclaration *a_new)
*case of an error.
*/
CRDeclaration *
-cr_declaration_append2 (CRDeclaration *a_this,
- GString *a_prop,
- CRTerm *a_value)
+cr_declaration_append2 (CRDeclaration * a_this,
+ GString * a_prop, CRTerm * a_value)
{
- CRDeclaration *new_elem = NULL ;
-
- if (a_this)
- {
- new_elem = cr_declaration_new (a_this->parent_statement,
- a_prop, a_value) ;
- }
- else
- {
- new_elem = cr_declaration_new (NULL, a_prop, a_value) ;
- }
-
- g_return_val_if_fail (new_elem, NULL) ;
-
- return cr_declaration_append (a_this, new_elem) ;
+ CRDeclaration *new_elem = NULL;
+
+ if (a_this) {
+ new_elem = cr_declaration_new (a_this->parent_statement,
+ a_prop, a_value);
+ } else {
+ new_elem = cr_declaration_new (NULL, a_prop, a_value);
+ }
+
+ g_return_val_if_fail (new_elem, NULL);
+
+ return cr_declaration_append (a_this, new_elem);
}
/**
@@ -471,24 +427,22 @@ cr_declaration_append2 (CRDeclaration *a_this,
*@param a_indent the number of indentation white char.
*/
void
-cr_declaration_dump (CRDeclaration *a_this, FILE *a_fp, glong a_indent,
- gboolean a_one_per_line)
+cr_declaration_dump (CRDeclaration * a_this, FILE * a_fp, glong a_indent,
+ gboolean a_one_per_line)
{
- CRDeclaration *cur = NULL ;
-
- g_return_if_fail (a_this) ;
-
- for (cur = a_this ; cur ; cur = cur->next)
- {
- if (cur->prev)
- {
- if (a_one_per_line == TRUE)
- fprintf (a_fp,";\n") ;
- else
- fprintf (a_fp,"; ") ;
- }
- dump (cur, a_fp, a_indent) ;
- }
+ CRDeclaration *cur = NULL;
+
+ g_return_if_fail (a_this);
+
+ for (cur = a_this; cur; cur = cur->next) {
+ if (cur->prev) {
+ if (a_one_per_line == TRUE)
+ fprintf (a_fp, ";\n");
+ else
+ fprintf (a_fp, "; ");
+ }
+ dump (cur, a_fp, a_indent);
+ }
}
/**
@@ -498,12 +452,11 @@ cr_declaration_dump (CRDeclaration *a_this, FILE *a_fp, glong a_indent,
*@param a_indent the number of indentation white char.
*/
void
-cr_declaration_dump_one (CRDeclaration *a_this,
- FILE *a_fp, glong a_indent)
+cr_declaration_dump_one (CRDeclaration * a_this, FILE * a_fp, glong a_indent)
{
- g_return_if_fail (a_this) ;
+ g_return_if_fail (a_this);
- dump (a_this, a_fp, a_indent) ;
+ dump (a_this, a_fp, a_indent);
}
/**
@@ -513,71 +466,61 @@ cr_declaration_dump_one (CRDeclaration *a_this,
*to put before the actual serialisation.
*/
gchar *
-cr_declaration_to_string (CRDeclaration *a_this,
- gulong a_indent)
+cr_declaration_to_string (CRDeclaration * a_this, gulong a_indent)
{
- GString *stringue = NULL ;
-
- guchar *str = NULL, *result = NULL ;
- g_return_val_if_fail (a_this, NULL) ;
-
- stringue = g_string_new (NULL) ;
-
- if (a_this->property && a_this->property->str)
- {
- str = g_strndup (a_this->property->str,
- a_this->property->len) ;
- if (str)
- {
- cr_utils_dump_n_chars2 (' ', stringue,
- a_indent) ;
- g_string_append_printf (stringue, "%s",
- str) ;
- g_free (str) ;
- str = NULL ;
- }
- else
- goto error ;
-
- if (a_this->value)
- {
- guchar *value_str = NULL ;
-
- value_str = cr_term_to_string (a_this->value) ;
- if (value_str)
- {
- g_string_append_printf (stringue, " : %s",
- value_str) ;
- g_free (value_str) ;
- }
- else
- goto error ;
- }
- if (a_this->important == TRUE)
- {
- g_string_append_printf (stringue, " %s", "!important") ;
- }
- }
- if (stringue && stringue->str)
- {
- result = stringue->str ;
- g_string_free (stringue, FALSE) ;
- }
- return result ;
-
- error:
- if (stringue)
- {
- g_string_free (stringue, TRUE) ;
- stringue = NULL ;
- }
- if (str)
- {
- g_free (str) ;
- str = NULL ;
- }
-
- return result ;
+ GString *stringue = NULL;
+
+ guchar *str = NULL,
+ *result = NULL;
+
+ g_return_val_if_fail (a_this, NULL);
+
+ stringue = g_string_new (NULL);
+
+ if (a_this->property && a_this->property->str) {
+ str = g_strndup (a_this->property->str,
+ a_this->property->len);
+ if (str) {
+ cr_utils_dump_n_chars2 (' ', stringue, a_indent);
+ g_string_append_printf (stringue, "%s", str);
+ g_free (str);
+ str = NULL;
+ } else
+ goto error;
+
+ if (a_this->value) {
+ guchar *value_str = NULL;
+
+ value_str = cr_term_to_string (a_this->value);
+ if (value_str) {
+ g_string_append_printf (stringue, " : %s",
+ value_str);
+ g_free (value_str);
+ } else
+ goto error;
+ }
+ if (a_this->important == TRUE) {
+ g_string_append_printf (stringue, " %s",
+ "!important");
+ }
+ }
+ if (stringue && stringue->str) {
+ result = stringue->str;
+ g_string_free (stringue, FALSE);
+ }
+ return result;
+
+ error:
+ if (stringue) {
+ g_string_free (stringue, TRUE);
+ stringue = NULL;
+ }
+ if (str) {
+ g_free (str);
+ str = NULL;
+ }
+
+ return result;
}
/**
@@ -587,35 +530,31 @@ cr_declaration_to_string (CRDeclaration *a_this,
*to put before the actual serialisation.
*/
guchar *
-cr_declaration_list_to_string (CRDeclaration *a_this,
- gulong a_indent)
+cr_declaration_list_to_string (CRDeclaration * a_this, gulong a_indent)
{
- CRDeclaration *cur = NULL ;
- GString *stringue = NULL ;
- guchar *str = NULL, *result = NULL ;
-
- g_return_val_if_fail (a_this, NULL) ;
-
- stringue = g_string_new (NULL) ;
-
- for (cur = a_this ; cur ; cur = cur->next)
- {
- str = cr_declaration_to_string (cur, a_indent) ;
- if (str)
- {
- g_string_append_printf (stringue, "%s;", str) ;
- g_free (str) ;
- }
- else
- break;
- }
- if (stringue && stringue->str)
- {
- result = stringue->str ;
- g_string_free (stringue, FALSE) ;
- }
-
- return result ;
+ CRDeclaration *cur = NULL;
+ GString *stringue = NULL;
+ guchar *str = NULL,
+ *result = NULL;
+
+ g_return_val_if_fail (a_this, NULL);
+
+ stringue = g_string_new (NULL);
+
+ for (cur = a_this; cur; cur = cur->next) {
+ str = cr_declaration_to_string (cur, a_indent);
+ if (str) {
+ g_string_append_printf (stringue, "%s;", str);
+ g_free (str);
+ } else
+ break;
+ }
+ if (stringue && stringue->str) {
+ result = stringue->str;
+ g_string_free (stringue, FALSE);
+ }
+
+ return result;
}
/**
@@ -625,51 +564,46 @@ cr_declaration_list_to_string (CRDeclaration *a_this,
*to put before the actual serialisation.
*/
guchar *
-cr_declaration_list_to_string2 (CRDeclaration *a_this,
- gulong a_indent,
- gboolean a_one_decl_per_line)
+cr_declaration_list_to_string2 (CRDeclaration * a_this,
+ gulong a_indent, gboolean a_one_decl_per_line)
{
- CRDeclaration *cur = NULL ;
- GString *stringue = NULL ;
- guchar *str = NULL, *result = NULL ;
-
- g_return_val_if_fail (a_this, NULL) ;
-
- stringue = g_string_new (NULL) ;
-
- for (cur = a_this ; cur ; cur = cur->next)
- {
- str = cr_declaration_to_string (cur, a_indent) ;
- if (str)
- {
- if (a_one_decl_per_line == TRUE)
- {
- if (cur->next)
- g_string_append_printf (stringue,
- "%s;\n", str) ;
- else
- g_string_append_printf (stringue,
- "%s", str) ;
- }
- else
- {
- if (cur->next)
- g_string_append_printf (stringue, "%s;", str) ;
- else
- g_string_append_printf (stringue, "%s", str) ;
- }
- g_free (str) ;
- }
- else
- break;
- }
- if (stringue && stringue->str)
- {
- result = stringue->str ;
- g_string_free (stringue, FALSE) ;
- }
-
- return result ;
+ CRDeclaration *cur = NULL;
+ GString *stringue = NULL;
+ guchar *str = NULL,
+ *result = NULL;
+
+ g_return_val_if_fail (a_this, NULL);
+
+ stringue = g_string_new (NULL);
+
+ for (cur = a_this; cur; cur = cur->next) {
+ str = cr_declaration_to_string (cur, a_indent);
+ if (str) {
+ if (a_one_decl_per_line == TRUE) {
+ if (cur->next)
+ g_string_append_printf (stringue,
+ "%s;\n", str);
+ else
+ g_string_append_printf (stringue,
+ "%s", str);
+ } else {
+ if (cur->next)
+ g_string_append_printf (stringue,
+ "%s;", str);
+ else
+ g_string_append_printf (stringue,
+ "%s", str);
+ }
+ g_free (str);
+ } else
+ break;
+ }
+ if (stringue && stringue->str) {
+ result = stringue->str;
+ g_string_free (stringue, FALSE);
+ }
+
+ return result;
}
/**
@@ -678,16 +612,16 @@ cr_declaration_list_to_string2 (CRDeclaration *a_this,
*@return number of properties in the declaration list.
*/
gint
-cr_declaration_nr_props (CRDeclaration *a_this)
+cr_declaration_nr_props (CRDeclaration * a_this)
{
- CRDeclaration *cur = NULL ;
- int nr = 0;
+ CRDeclaration *cur = NULL;
+ int nr = 0;
- g_return_val_if_fail (a_this, -1) ;
+ g_return_val_if_fail (a_this, -1);
- for (cur = a_this ; cur ; cur = cur->next)
- nr ++;
- return nr;
+ for (cur = a_this; cur; cur = cur->next)
+ nr++;
+ return nr;
}
/**
@@ -698,17 +632,17 @@ cr_declaration_nr_props (CRDeclaration *a_this)
*it will return NULL.
*/
CRDeclaration *
-cr_declaration_get_from_list (CRDeclaration *a_this, int itemnr)
+cr_declaration_get_from_list (CRDeclaration * a_this, int itemnr)
{
- CRDeclaration *cur = NULL ;
- int nr = 0;
+ CRDeclaration *cur = NULL;
+ int nr = 0;
- g_return_val_if_fail (a_this, NULL) ;
+ g_return_val_if_fail (a_this, NULL);
- for (cur = a_this ; cur ; cur = cur->next)
- if (nr++ == itemnr)
- return cur;
- return NULL;
+ for (cur = a_this; cur; cur = cur->next)
+ if (nr++ == itemnr)
+ return cur;
+ return NULL;
}
/**
@@ -718,29 +652,30 @@ cr_declaration_get_from_list (CRDeclaration *a_this, int itemnr)
*@return CRDeclaration with property name a_prop, or NULL if not found.
*/
CRDeclaration *
-cr_declaration_get_by_prop_name (CRDeclaration *a_this, const guchar *a_prop)
+cr_declaration_get_by_prop_name (CRDeclaration * a_this,
+ const guchar * a_prop)
{
- CRDeclaration *cur = NULL ;
+ CRDeclaration *cur = NULL;
- g_return_val_if_fail (a_this, NULL) ;
- g_return_val_if_fail (a_prop, NULL) ;
+ g_return_val_if_fail (a_this, NULL);
+ g_return_val_if_fail (a_prop, NULL);
- for (cur = a_this ; cur ; cur = cur->next)
- if (!strcmp (cur->property->str, a_prop))
- return cur;
- return NULL;
+ for (cur = a_this; cur; cur = cur->next)
+ if (!strcmp (cur->property->str, a_prop))
+ return cur;
+ return NULL;
}
/**
*Increases the ref count of the current instance of #CRDeclaration.
*@param a_this the current instance of #CRDeclaration.
*/
-void
-cr_declaration_ref (CRDeclaration *a_this)
+void
+cr_declaration_ref (CRDeclaration * a_this)
{
- g_return_if_fail (a_this) ;
+ g_return_if_fail (a_this);
- a_this->ref_count ++ ;
+ a_this->ref_count++;
}
/**
@@ -752,93 +687,81 @@ cr_declaration_ref (CRDeclaration *a_this)
*(ref count reached zero), FALSE otherwise.
*/
gboolean
-cr_declaration_unref (CRDeclaration *a_this)
+cr_declaration_unref (CRDeclaration * a_this)
{
- g_return_val_if_fail (a_this, FALSE) ;
-
- if (a_this->ref_count)
- {
- a_this->ref_count -- ;
- }
-
- if (a_this->ref_count == 0)
- {
- cr_declaration_destroy (a_this) ;
- return TRUE ;
- }
- return FALSE ;
-}
+ g_return_val_if_fail (a_this, FALSE);
+
+ if (a_this->ref_count) {
+ a_this->ref_count--;
+ }
+ if (a_this->ref_count == 0) {
+ cr_declaration_destroy (a_this);
+ return TRUE;
+ }
+ return FALSE;
+}
/**
*Destructor of the declaration list.
*@param a_this the current instance of #CRDeclaration.
*/
void
-cr_declaration_destroy (CRDeclaration *a_this)
+cr_declaration_destroy (CRDeclaration * a_this)
{
- CRDeclaration *cur = NULL ;
- g_return_if_fail (a_this) ;
-
- /*
- *Go get the tail of the list.
- *Meanwhile, free each property/value pair contained in the list.
- */
- for (cur = a_this ; cur && cur->next; cur = cur->next)
- {
- if (cur->property)
- {
- g_string_free (cur->property, TRUE) ;
- cur->property = NULL ;
- }
-
- if (cur->value)
- {
- cr_term_destroy (cur->value) ;
- cur->value = NULL ;
- }
- }
-
- if (cur)
- {
- if (cur->property)
- {
- g_string_free (cur->property, TRUE) ;
- cur->property = NULL ;
- }
-
- if (cur->value)
- {
- cr_term_destroy (cur->value) ;
- cur->value = NULL ;
- }
- }
-
- /*in case the list contains only one element*/
- if (cur && !cur->prev)
- {
- g_free (cur) ;
- return ;
- }
-
- /*walk backward the list and free each "next" element*/
- for (cur = cur->prev ; cur && cur->prev ; cur = cur->prev)
- {
- if (cur->next)
- {
- g_free (cur->next) ;
- cur->next = NULL ;
- }
- }
-
- if (!cur)
- return ;
-
- if (cur->next)
- {
- g_free (cur->next) ;
- cur->next = NULL ;
- }
-
- g_free (cur) ;
+ CRDeclaration *cur = NULL;
+
+ g_return_if_fail (a_this);
+
+ /*
+ *Go get the tail of the list.
+ *Meanwhile, free each property/value pair contained in the list.
+ */
+ for (cur = a_this; cur && cur->next; cur = cur->next) {
+ if (cur->property) {
+ g_string_free (cur->property, TRUE);
+ cur->property = NULL;
+ }
+
+ if (cur->value) {
+ cr_term_destroy (cur->value);
+ cur->value = NULL;
+ }
+ }
+
+ if (cur) {
+ if (cur->property) {
+ g_string_free (cur->property, TRUE);
+ cur->property = NULL;
+ }
+
+ if (cur->value) {
+ cr_term_destroy (cur->value);
+ cur->value = NULL;
+ }
+ }
+
+ /*in case the list contains only one element */
+ if (cur && !cur->prev) {
+ g_free (cur);
+ return;
+ }
+
+ /*walk backward the list and free each "next" element */
+ for (cur = cur->prev; cur && cur->prev; cur = cur->prev) {
+ if (cur->next) {
+ g_free (cur->next);
+ cur->next = NULL;
+ }
+ }
+
+ if (!cur)
+ return;
+
+ if (cur->next) {
+ g_free (cur->next);
+ cur->next = NULL;
+ }
+
+ g_free (cur);
}