[libcroco] Revert "Sending recent tested changes from inkscape developers to libcroco upstream"



commit 511a09dfcc59cbec7f5f2e50d17eb833d2fd6628
Author: Abhishek Sharma <sharma abhishek it gmail com>
Date:   Sun Nov 6 00:28:22 2011 +0530

    Revert "Sending recent tested changes from inkscape developers to libcroco upstream"
    
    This reverts commit ac3e66fa2bb416507b5b5cf114c1edaa3455f105.

 src/cr-additional-sel.c   |  144 +++++----
 src/cr-additional-sel.h   |   34 +--
 src/cr-attr-sel.c         |   84 +++--
 src/cr-attr-sel.h         |    6 +-
 src/cr-cascade.c          |   66 +++--
 src/cr-cascade.h          |    2 +-
 src/cr-declaration.c      |  284 +++++++++--------
 src/cr-declaration.h      |   14 +-
 src/cr-doc-handler.c      |   92 ++++--
 src/cr-doc-handler.h      |   14 +-
 src/cr-enc-handler.c      |   46 ++-
 src/cr-enc-handler.h      |    6 +-
 src/cr-fonts.c            |  293 ++++++++++++++---
 src/cr-fonts.h            |   13 +-
 src/cr-input.c            |  412 ++++++++++++++----------
 src/cr-input.h            |   26 +-
 src/cr-num.c              |   99 ++++---
 src/cr-num.h              |    8 +-
 src/cr-om-parser.c        |  130 +++++----
 src/cr-om-parser.h        |    2 +-
 src/cr-parser.c           |  443 ++++++++++++++++----------
 src/cr-parser.h           |    4 +-
 src/cr-parsing-location.c |   64 +++--
 src/cr-parsing-location.h |    8 +-
 src/cr-prop-list.c        |  126 +++++---
 src/cr-prop-list.h        |    4 +-
 src/cr-pseudo.c           |   48 ++-
 src/cr-pseudo.h           |    4 +-
 src/cr-rgb.c              |  473 +++++++++++++++------------
 src/cr-rgb.h              |   16 +-
 src/cr-sel-eng.h          |    4 +-
 src/cr-selector.c         |   87 ++++--
 src/cr-selector.h         |    6 +-
 src/cr-simple-sel.c       |   75 +++--
 src/cr-simple-sel.h       |   14 +-
 src/cr-statement.c        |  788 ++++++++++++++++++++++++++++-----------------
 src/cr-statement.h        |   44 ++--
 src/cr-string.c           |   25 +-
 src/cr-string.h           |   10 +-
 src/cr-style.c            |  101 +++---
 src/cr-style.h            |    2 +-
 src/cr-stylesheet.c       |   14 +-
 src/cr-stylesheet.h       |    6 +-
 src/cr-term.c             |   50 ++--
 src/cr-term.h             |   10 +-
 src/cr-tknzr.c            |  172 ++++------
 src/cr-token.c            |    5 +-
 src/cr-utils.c            |   19 +-
 src/cr-utils.h            |    9 +-
 49 files changed, 2656 insertions(+), 1750 deletions(-)
---
diff --git a/src/cr-additional-sel.c b/src/cr-additional-sel.c
index 80a4767..5a37eba 100644
--- a/src/cr-additional-sel.c
+++ b/src/cr-additional-sel.c
@@ -26,15 +26,28 @@
 #include "string.h"
 
 /**
- *Default constructor of #CRAdditionalSel.
- * return the newly build instance of #CRAdditionalSel.
+ * CRAdditionalSel:
+ *
+ * #CRAdditionalSel abstracts an additionnal selector.
+ * An additional selector is the selector part
+ * that comes after the combination of type selectors.
+ * It can be either "a class selector (the .class part),
+ * a pseudo class selector, an attribute selector 
+ * or an id selector.
+ */
+
+/**
+ * cr_additional_sel_new:
+ *
+ * Default constructor of #CRAdditionalSel.
+ * Returns the newly build instance of #CRAdditionalSel.
  */
 CRAdditionalSel *
 cr_additional_sel_new (void)
 {
         CRAdditionalSel *result = NULL;
 
-        result = (CRAdditionalSel *)g_try_malloc (sizeof (CRAdditionalSel));
+        result = g_try_malloc (sizeof (CRAdditionalSel));
 
         if (result == NULL) {
                 cr_utils_trace_debug ("Out of memory");
@@ -47,10 +60,12 @@ cr_additional_sel_new (void)
 }
 
 /**
- *Constructor of #CRAdditionalSel.
- * param a_sel_type the type of the newly built instance 
- *of #CRAdditionalSel.
- * return the newly built instance of #CRAdditionalSel.
+ * cr_additional_sel_new_with_type:
+ * @a_sel_type: the type of the newly built instance 
+ * of #CRAdditionalSel.
+ *
+ * Constructor of #CRAdditionalSel.
+ * Returns the newly built instance of #CRAdditionalSel.
  */
 CRAdditionalSel *
 cr_additional_sel_new_with_type (enum AddSelectorType a_sel_type)
@@ -67,12 +82,13 @@ cr_additional_sel_new_with_type (enum AddSelectorType a_sel_type)
 }
 
 /**
- *Sets a new class name to a
- *CLASS additional selector.
- * param a_this the "this pointer" of the current instance
- *of #CRAdditionalSel .
- * param a_class_name the new class name to set.
+ * cr_additional_sel_set_class_name:
+ * @a_this: the "this pointer" of the current instance
+ * of #CRAdditionalSel .
+ * @a_class_name: the new class name to set.
  *
+ * Sets a new class name to a
+ * CLASS additional selector.
  */
 void
 cr_additional_sel_set_class_name (CRAdditionalSel * a_this,
@@ -88,11 +104,13 @@ cr_additional_sel_set_class_name (CRAdditionalSel * a_this,
 }
 
 /**
- *Sets a new id name to an
- *ID additional selector.
- * param a_this the "this pointer" of the current instance
- *of #CRAdditionalSel .
- * param a_id the new id to set.
+ * cr_additional_sel_set_id_name:
+ * @a_this: the "this pointer" of the current instance
+ * of #CRAdditionalSel .
+ * @a_id: the new id to set.
+ *
+ * Sets a new id name to an
+ * ID additional selector.
  */
 void
 cr_additional_sel_set_id_name (CRAdditionalSel * a_this, CRString * a_id)
@@ -107,11 +125,13 @@ cr_additional_sel_set_id_name (CRAdditionalSel * a_this, CRString * a_id)
 }
 
 /**
- *Sets a new pseudo to a
- *PSEUDO additional selector.
- * param a_this the "this pointer" of the current instance
- *of #CRAdditionalSel .
- * param a_pseudo the new pseudo to set.
+ * cr_additional_sel_set_pseudo:
+ * @a_this: the "this pointer" of the current instance
+ * of #CRAdditionalSel .
+ * @a_pseudo: the new pseudo to set.
+ *
+ * Sets a new pseudo to a
+ * PSEUDO additional selector.
  */
 void
 cr_additional_sel_set_pseudo (CRAdditionalSel * a_this, CRPseudo * a_pseudo)
@@ -127,11 +147,13 @@ cr_additional_sel_set_pseudo (CRAdditionalSel * a_this, CRPseudo * a_pseudo)
 }
 
 /**
- *Sets a new instance of #CRAttrSel to 
- *a ATTRIBUTE additional selector.
- * param a_this the "this pointer" of the current instance
- *of #CRAdditionalSel .
- * param a_sel the new instance of #CRAttrSel to set.
+ * cr_additional_sel_set_attr_sel:
+ * @a_this: the "this pointer" of the current instance
+ * of #CRAdditionalSel .
+ * @a_sel: the new instance of #CRAttrSel to set.
+ *
+ * Sets a new instance of #CRAttrSel to 
+ * a ATTRIBUTE additional selector.
  */
 void
 cr_additional_sel_set_attr_sel (CRAdditionalSel * a_this, CRAttrSel * a_sel)
@@ -146,12 +168,15 @@ cr_additional_sel_set_attr_sel (CRAdditionalSel * a_this, CRAttrSel * a_sel)
 }
 
 /**
- *Appends a new instance of #CRAdditional to the
- *current list of #CRAdditional.
- * param a_this the "this pointer" of the current instance
- *of #CRAdditionalSel .
- * param a_sel the new instance to #CRAdditional to append.
- * return the new list of CRAdditionalSel or NULL if an error arises.
+ * cr_additional_sel_append:
+ * @a_this: the "this pointer" of the current instance
+ * of #CRAdditionalSel .
+ * @a_sel: the new instance to #CRAdditional to append.
+ *
+ * Appends a new instance of #CRAdditional to the
+ * current list of #CRAdditional.
+ *
+ * Returns the new list of CRAdditionalSel or NULL if an error arises.
  */
 CRAdditionalSel *
 cr_additional_sel_append (CRAdditionalSel * a_this, CRAdditionalSel * a_sel)
@@ -179,12 +204,15 @@ cr_additional_sel_append (CRAdditionalSel * a_this, CRAdditionalSel * a_sel)
 }
 
 /**
- *Preppends a new instance of #CRAdditional to the
- *current list of #CRAdditional.
- * param a_this the "this pointer" of the current instance
- *of #CRAdditionalSel .
- * param a_sel the new instance to #CRAdditional to preappend.
- * return the new list of CRAdditionalSel or NULL if an error arises.
+ * cr_additional_sel_prepend:
+ * @a_this: the "this pointer" of the current instance
+ * of #CRAdditionalSel .
+ * @a_sel: the new instance to #CRAdditional to preappend.
+ *
+ * Preppends a new instance of #CRAdditional to the
+ * current list of #CRAdditional.
+ *
+ * Returns the new list of CRAdditionalSel or NULL if an error arises.
  */
 CRAdditionalSel *
 cr_additional_sel_prepend (CRAdditionalSel * a_this, CRAdditionalSel * a_sel)
@@ -202,11 +230,11 @@ cr_additional_sel_prepend (CRAdditionalSel * a_this, CRAdditionalSel * a_sel)
 }
 
 guchar *
-cr_additional_sel_to_string (CRAdditionalSel * a_this)
+cr_additional_sel_to_string (CRAdditionalSel const * a_this)
 {
         guchar *result = NULL;
         GString *str_buf = NULL;
-        CRAdditionalSel *cur = NULL;
+        CRAdditionalSel const *cur = NULL;
 
         g_return_val_if_fail (a_this, NULL);
 
@@ -219,7 +247,7 @@ cr_additional_sel_to_string (CRAdditionalSel * a_this)
                                 guchar *name = NULL;
 
                                 if (cur->content.class_name) {
-                                        name = (guchar *)g_strndup
+                                        name = g_strndup
                                                 (cur->content.class_name->stryng->str,
                                                  cur->content.class_name->stryng->len);
 
@@ -239,7 +267,7 @@ cr_additional_sel_to_string (CRAdditionalSel * a_this)
                                 guchar *name = NULL;
 
                                 if (cur->content.class_name) {
-                                        name = (guchar *)g_strndup
+                                        name = g_strndup
                                                 (cur->content.id_name->stryng->str,
                                                  cur->content.id_name->stryng->len);
 
@@ -295,7 +323,7 @@ cr_additional_sel_to_string (CRAdditionalSel * a_this)
         }
 
         if (str_buf) {
-                result = (guchar *)str_buf->str;
+                result = str_buf->str;
                 g_string_free (str_buf, FALSE);
                 str_buf = NULL;
         }
@@ -304,7 +332,7 @@ cr_additional_sel_to_string (CRAdditionalSel * a_this)
 }
 
 guchar * 
-cr_additional_sel_one_to_string (CRAdditionalSel *a_this)
+cr_additional_sel_one_to_string (CRAdditionalSel const *a_this)
 {
         guchar *result = NULL;
         GString *str_buf = NULL;
@@ -319,7 +347,7 @@ cr_additional_sel_one_to_string (CRAdditionalSel *a_this)
                 guchar *name = NULL;
 
                 if (a_this->content.class_name) {
-                        name = (guchar *)g_strndup
+                        name = g_strndup
                                 (a_this->content.class_name->stryng->str,
                                  a_this->content.class_name->stryng->len);
 
@@ -339,7 +367,7 @@ cr_additional_sel_one_to_string (CRAdditionalSel *a_this)
                 guchar *name = NULL;
 
                 if (a_this->content.class_name) {
-                        name = (guchar *)g_strndup
+                        name = g_strndup
                                 (a_this->content.id_name->stryng->str,
                                  a_this->content.id_name->stryng->len);
 
@@ -394,7 +422,7 @@ cr_additional_sel_one_to_string (CRAdditionalSel *a_this)
         }
 
         if (str_buf) {
-                result = (guchar *)str_buf->str;
+                result = str_buf->str;
                 g_string_free (str_buf, FALSE);
                 str_buf = NULL;
         }
@@ -403,13 +431,15 @@ cr_additional_sel_one_to_string (CRAdditionalSel *a_this)
 }
 
 /**
- *Dumps the current instance of #CRAdditionalSel to a file
- * param a_this the "this pointer" of the current instance of
- *#CRAdditionalSel.
- * param a_fp the destination file.
+ * cr_additional_sel_dump:
+ * @a_this: the "this pointer" of the current instance of
+ * #CRAdditionalSel.
+ * @a_fp: the destination file.
+ *
+ * Dumps the current instance of #CRAdditionalSel to a file
  */
 void
-cr_additional_sel_dump (CRAdditionalSel * a_this, FILE * a_fp)
+cr_additional_sel_dump (CRAdditionalSel const * a_this, FILE * a_fp)
 {
         guchar *tmp_str = NULL;
 
@@ -426,9 +456,11 @@ cr_additional_sel_dump (CRAdditionalSel * a_this, FILE * a_fp)
 }
 
 /**
- *Destroys an instance of #CRAdditional.
- * param a_this the "this pointer" of the current instance
- *of #CRAdditionalSel .
+ * cr_additional_sel_destroy:
+ * @a_this: the "this pointer" of the current instance
+ * of #CRAdditionalSel .
+ *
+ * Destroys an instance of #CRAdditional.
  */
 void
 cr_additional_sel_destroy (CRAdditionalSel * a_this)
diff --git a/src/cr-additional-sel.h b/src/cr-additional-sel.h
index 6f6ee49..7ca3e07 100644
--- a/src/cr-additional-sel.h
+++ b/src/cr-additional-sel.h
@@ -22,16 +22,6 @@
  */
 
 
-/**
- * file
- *This file holds the declaration of the
- *#CRAddSel class. 
- */
-/**
- * file
- *This file holds the declaration of the
- *#CRAddSel class. 
- */
 #ifndef __CR_ADD_SEL_H__
 #define __CR_ADD_SEL_H__
 
@@ -58,29 +48,11 @@ union CRAdditionalSelectorContent
         CRString *class_name ;
         CRString *id_name ;
         CRPseudo *pseudo ;
-/**
- *#CRAdditionalSel abstracts
- *an additionnal selector.
- *An additional selector is the selector part
- *that comes after the combination of type selectors.
- *It can be either "a class selector (the .class part),
- *a pseudo class selector, an attribute selector 
- *or an id selector.
- */
         CRAttrSel *attr_sel ;
 } ;
 
 typedef struct _CRAdditionalSel CRAdditionalSel ;
 
-/**
- *#CRAdditionalSel abstracts
- *an additionnal selector.
- *An additional selector is the selector part
- *that comes after the combination of type selectors.
- *It can be either "a class selector (the .class part),
- *a pseudo class selector, an attribute selector 
- *or an id selector.
- */
 struct _CRAdditionalSel
 {
         enum AddSelectorType type ;
@@ -113,11 +85,11 @@ void cr_additional_sel_set_attr_sel (CRAdditionalSel *a_this,
 CRAdditionalSel * cr_additional_sel_prepend (CRAdditionalSel *a_this, 
                                              CRAdditionalSel *a_sel) ;
 
-guchar * cr_additional_sel_to_string (CRAdditionalSel *a_this) ;
+guchar * cr_additional_sel_to_string (CRAdditionalSel const *a_this) ;
 
-guchar * cr_additional_sel_one_to_string (CRAdditionalSel *a_this) ;
+guchar * cr_additional_sel_one_to_string (CRAdditionalSel const *a_this) ;
 
-void cr_additional_sel_dump (CRAdditionalSel *a_this, FILE *a_fp) ;
+void cr_additional_sel_dump (CRAdditionalSel const *a_this, FILE *a_fp) ;
 
 void cr_additional_sel_destroy (CRAdditionalSel *a_this) ;
 
diff --git a/src/cr-attr-sel.c b/src/cr-attr-sel.c
index 3c4800e..787f0c0 100644
--- a/src/cr-attr-sel.c
+++ b/src/cr-attr-sel.c
@@ -24,34 +24,38 @@
 #include "cr-attr-sel.h"
 
 /**
- * file
- *The class that abstracts an attribute selector.
- *Attributes selectors are described in the css2 spec [5.8].
- *There are more generally used in the css2 selectors described in
- *css2 spec [5] .
+ * CRAttrSel:
+ *
+ * #CRAdditionalSel abstracts an attribute selector.
+ * Attributes selectors are described in the css2 spec [5.8].
+ * There are more generally used in the css2 selectors described in
+ * css2 spec [5] .
  */
 
 /**
- *The constructor of #CRAttrSel.
- * return the newly allocated instance
- *of #CRAttrSel.
+ * cr_attr_sel_new:
+ * The constructor of #CRAttrSel.
+ * Returns the newly allocated instance
+ * of #CRAttrSel.
  */
 CRAttrSel *
 cr_attr_sel_new (void)
 {
-        CRAttrSel *result = (CRAttrSel *)g_malloc0 (sizeof (CRAttrSel));
+        CRAttrSel *result = NULL;
+
+        result = g_malloc0 (sizeof (CRAttrSel));
 
         return result;
 }
 
 /**
- *Appends an attribute selector to the current list of
- *attribute selectors represented by a_this.
+ * cr_attr_sel_append_attr_sel:
+ * @a_this: the this pointer of the current instance of  #CRAttrSel.
+ * @a_attr_sel: selector to append.
  *
- * param a_this the this pointer of the current instance of
- *#CRAttrSel.
- * param a_attr_sel selector to append.
- * return CR_OK upon successfull completion, an error code otherwise.
+ * Appends an attribute selector to the current list of
+ * attribute selectors represented by a_this.
+ * Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_attr_sel_append_attr_sel (CRAttrSel * a_this, CRAttrSel * a_attr_sel)
@@ -72,13 +76,13 @@ cr_attr_sel_append_attr_sel (CRAttrSel * a_this, CRAttrSel * a_attr_sel)
 }
 
 /**
+ * cr_attr_sel_prepend_attr_sel:
+ * a_this: the "this pointer" of the current instance *of #CRAttrSel.
+ * a_attr_sel: the attribute selector to append.
+ *
  *Prepends an attribute selector to the list of
  *attributes selector represented by a_this.
- *
- * param a_this the "this pointer" of the current instance
- *of #CRAttrSel.
- * param a_attr_sel the attribute selector to append.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_attr_sel_prepend_attr_sel (CRAttrSel * a_this, 
@@ -93,10 +97,17 @@ cr_attr_sel_prepend_attr_sel (CRAttrSel * a_this,
         return CR_OK;
 }
 
+/**
+ * cr_attr_sel_to_string:
+ * @a_this: the current instance of #CRAttrSel.
+ *
+ * Serializes an attribute selector into a string
+ * Returns the serialized attribute selector.
+ */
 guchar *
-cr_attr_sel_to_string (CRAttrSel * a_this)
+cr_attr_sel_to_string (CRAttrSel const * a_this)
 {
-        CRAttrSel *cur = NULL;
+        CRAttrSel const *cur = NULL;
         guchar *result = NULL;
         GString *str_buf = NULL;
 
@@ -110,7 +121,9 @@ cr_attr_sel_to_string (CRAttrSel * a_this)
                 }
 
                 if (cur->name) {
-                        gchar *name = g_strndup (cur->name->stryng->str, 
+                        guchar *name = NULL;
+
+                        name = g_strndup (cur->name->stryng->str, 
                                           cur->name->stryng->len);
                         if (name) {
                                 g_string_append (str_buf, name);
@@ -120,7 +133,9 @@ cr_attr_sel_to_string (CRAttrSel * a_this)
                 }
 
                 if (cur->value) {
-                        gchar *value = g_strndup (cur->value->stryng->str, 
+                        guchar *value = NULL;
+
+                        value = g_strndup (cur->value->stryng->str, 
                                            cur->value->stryng->len);
                         if (value) {
                                 switch (cur->match_way) {
@@ -153,7 +168,7 @@ cr_attr_sel_to_string (CRAttrSel * a_this)
         }
 
         if (str_buf) {
-                result = (guchar *)str_buf->str;
+                result = str_buf->str;
                 g_string_free (str_buf, FALSE);
         }
 
@@ -161,13 +176,15 @@ cr_attr_sel_to_string (CRAttrSel * a_this)
 }
 
 /**
- *Dumps the current instance of #CRAttrSel to a file.
- * param a_this the "this pointer" of the current instance of
- *#CRAttrSel.
- * param a_fp the destination file.
+ * cr_attr_sel_dump:
+ * @a_this: the "this pointer" of the current instance of
+ * #CRAttrSel.
+ * @a_fp: the destination file.
+ *
+ * Dumps the current instance of #CRAttrSel to a file.
  */
 void
-cr_attr_sel_dump (CRAttrSel * a_this, FILE * a_fp)
+cr_attr_sel_dump (CRAttrSel const * a_this, FILE * a_fp)
 {
         guchar *tmp_str = NULL;
 
@@ -183,10 +200,12 @@ cr_attr_sel_dump (CRAttrSel * a_this, FILE * a_fp)
 }
 
 /**
+ *cr_attr_sel_destroy:
+ * a_this: the "this pointer" of the current
+ *instance of #CRAttrSel.
+ *
  *Destroys the current instance of #CRAttrSel.
  *Frees all the fields if they are non null.
- * param a_this the "this pointer" of the current
- *instance of #CRAttrSel.
  */
 void
 cr_attr_sel_destroy (CRAttrSel * a_this)
@@ -213,3 +232,4 @@ cr_attr_sel_destroy (CRAttrSel * a_this)
                 a_this = NULL;
         }
 }
+
diff --git a/src/cr-attr-sel.h b/src/cr-attr-sel.h
index 9cc03d3..82d5a87 100644
--- a/src/cr-attr-sel.h
+++ b/src/cr-attr-sel.h
@@ -58,14 +58,14 @@ struct _CRAttrSel
 CRAttrSel * cr_attr_sel_new (void) ;
 
 enum CRStatus cr_attr_sel_append_attr_sel (CRAttrSel * a_this, 
-                                           CRAttrSel *a_new) ;
+                                           CRAttrSel *a_attr_sel) ;
 
 enum CRStatus cr_attr_sel_prepend_attr_sel (CRAttrSel *a_this, 
                                             CRAttrSel *a_attr_sel) ;
         
-guchar * cr_attr_sel_to_string (CRAttrSel *a_this) ;
+guchar * cr_attr_sel_to_string (CRAttrSel const *a_this) ;
 
-void cr_attr_sel_dump (CRAttrSel *a_this, FILE *a_fp) ;
+void cr_attr_sel_dump (CRAttrSel const *a_this, FILE *a_fp) ;
 
 void cr_attr_sel_destroy (CRAttrSel *a_this) ;
 
diff --git a/src/cr-cascade.c b/src/cr-cascade.c
index 7fef86c..4fa69bb 100644
--- a/src/cr-cascade.c
+++ b/src/cr-cascade.c
@@ -23,7 +23,7 @@
  */
 
 /*
- *$Id: cr-cascade.c,v 1.6 2004/03/07 13:22:47 dodji Exp $
+ *$Id$
  */
 
 #include <string.h>
@@ -44,6 +44,11 @@ struct _CRCascadePriv {
 };
 
 /**
+ * cr_cascade_new:
+ * a_author_sheet: the author origin style sheet.  May be NULL.
+ * a_user_sheet: the user origin style sheet.  May be NULL.
+ * a_ua_sheet: the user agent origin style sheet.  May be NULL.
+ *
  *Constructor of the #CRCascade class.
  *Note that all three parameters of this
  *method are ref counted and their refcount is increased.
@@ -51,26 +56,25 @@ struct _CRCascadePriv {
  *the instance of #CRCascade.
  *So the caller should not call their destructor. The caller
  *should call their ref/unref method instead if it wants
- * param a_author_sheet the autor origin style sheet
- * param a_user_sheet the user origin style sheet.
- * param a_ua_sheet the user agent origin style sheet.
- * return the newly built instance of CRCascade or NULL if
+ *
+ *Returns the newly built instance of CRCascade or NULL if
  *an error arose during constrution.
  */
 CRCascade *
 cr_cascade_new (CRStyleSheet * a_author_sheet,
                 CRStyleSheet * a_user_sheet, CRStyleSheet * a_ua_sheet)
 {
-        CRCascade *result = (CRCascade *)g_try_malloc (sizeof (CRCascade));
+        CRCascade *result = NULL;
+
+        result = g_try_malloc (sizeof (CRCascade));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
         }
         memset (result, 0, sizeof (CRCascade));
 
-        PRIVATE (result) = (CRCascadePriv *)g_try_malloc (sizeof (CRCascadePriv));
+        PRIVATE (result) = g_try_malloc (sizeof (CRCascadePriv));
         if (!PRIVATE (result)) {
-                g_free(result);
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
         }
@@ -90,33 +94,40 @@ cr_cascade_new (CRStyleSheet * a_author_sheet,
 }
 
 /**
+ * cr_cascade_get_sheet:
+ * a_this: the current instance of #CRCascade.
+ * a_origin: the origin of the style sheet as
+ *defined in the css2 spec in chapter 6.4.
  *Gets a given origin sheet.
+ *
+ *Gets a sheet, part of the cascade.
  *Note that the returned stylesheet
  *is refcounted so if the caller wants
- *to manage its lifecycle, it must use
+ *to manage it's lifecycle, it must use
  *cr_stylesheet_ref()/cr_stylesheet_unref() instead
  *of the cr_stylesheet_destroy() method.
- * param a_this the current instance of #CRCascade.
- * param a_origin the origin of the style sheet as
- *defined in the css2 spec in chapter 6.4.
- * return the style sheet, or NULL if it does not
+ *Returns the style sheet, or NULL if it does not
  *exist.
  */
 CRStyleSheet *
 cr_cascade_get_sheet (CRCascade * a_this, enum CRStyleOrigin a_origin)
 {
         g_return_val_if_fail (a_this
-                              && (unsigned)a_origin < NB_ORIGINS, NULL);
+                              && a_origin >= ORIGIN_UA
+                              && a_origin < NB_ORIGINS, NULL);
 
         return PRIVATE (a_this)->sheets[a_origin];
 }
 
 /**
+ * cr_cascade_set_sheet:
+ * a_this: the current instance of #CRCascade.
+ * a_sheet: the stylesheet to set.
+ * a_origin: the origin of the stylesheet.
+ *
  *Sets a stylesheet in the cascade
- * param a_this the current instance of #CRCascade.
- * param a_sheet the stylesheet to set.
- * param a_origin the origin of the stylesheet.
- * return CR_OK upon successfull completion, an error
+ *
+ *Returns CR_OK upon successfull completion, an error
  *code otherwise.
  */
 enum CRStatus
@@ -125,7 +136,8 @@ cr_cascade_set_sheet (CRCascade * a_this,
 {
         g_return_val_if_fail (a_this
                               && a_sheet
-                              && (unsigned)a_origin < NB_ORIGINS, CR_BAD_PARAM_ERROR);
+                              && a_origin >= ORIGIN_UA
+                              && a_origin < NB_ORIGINS, CR_BAD_PARAM_ERROR);
 
         if (PRIVATE (a_this)->sheets[a_origin])
                 cr_stylesheet_unref (PRIVATE (a_this)->sheets[a_origin]);
@@ -136,10 +148,11 @@ cr_cascade_set_sheet (CRCascade * a_this,
 }
 
 /**
+ *cr_cascade_ref:
+ * a_this: the current instance of #CRCascade
+ *
  *Increases the reference counter of the current instance
  *of #CRCascade.
- * param a_this the current instance of #CRCascade
- *
  */
 void
 cr_cascade_ref (CRCascade * a_this)
@@ -150,12 +163,14 @@ cr_cascade_ref (CRCascade * a_this)
 }
 
 /**
+ * cr_cascade_unref:
+ * a_this: the current instance of 
+ *#CRCascade.
+ *
  *Decrements the reference counter associated
  *to this instance of #CRCascade. If the reference
  *counter reaches zero, the instance is destroyed 
  *using cr_cascade_destroy()
- * param a_this the current instance of 
- *#CRCascade.
  */
 void
 cr_cascade_unref (CRCascade * a_this)
@@ -170,7 +185,10 @@ cr_cascade_unref (CRCascade * a_this)
 }
 
 /**
- *Destructor of #CRCascade.
+ * cr_cascade_destroy:
+ * @a_this: the current instance of #CRCascade
+ *
+ * Destructor of #CRCascade.
  */
 void
 cr_cascade_destroy (CRCascade * a_this)
diff --git a/src/cr-cascade.h b/src/cr-cascade.h
index 5e71842..3119ae8 100644
--- a/src/cr-cascade.h
+++ b/src/cr-cascade.h
@@ -22,7 +22,7 @@
  */
 
 /*
- *$Id: cr-cascade.h,v 1.6 2004/01/29 22:05:14 dodji Exp $
+ *$Id$
  */
 
 #ifndef __CR_CASCADE_H__
diff --git a/src/cr-declaration.c b/src/cr-declaration.c
index 530085b..8079aa0 100644
--- a/src/cr-declaration.c
+++ b/src/cr-declaration.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
 
 /*
  * This file is part of The Croco Library
@@ -28,22 +28,27 @@
 #include "cr-parser.h"
 
 /**
- * file
+ * CRDeclaration:
+ *
  *The definition of the #CRDeclaration class.
  */
 
 /**
+ * dump:
+ * a_this: the current instance of #CRDeclaration.
+ * a_fp: the destination file pointer.
+ * a_indent: the number of indentation white char. 
+ *
  *Dumps (serializes) one css declaration to a file.
- * param a_this the current instance of #CRDeclaration.
- * param a_fp the destination file pointer.
- * param a_indent the number of indentation white char. 
  */
 static void
-dump (CRDeclaration * a_this, FILE * a_fp, glong a_indent)
+dump (CRDeclaration const * a_this, FILE * a_fp, glong a_indent)
 {
+        guchar *str = NULL;
+
         g_return_if_fail (a_this);
 
-        gchar *str = cr_declaration_to_string (a_this, a_indent);
+        str = cr_declaration_to_string (a_this, a_indent);
         if (str) {
                 fprintf (a_fp, "%s", str);
                 g_free (str);
@@ -52,16 +57,25 @@ dump (CRDeclaration * a_this, FILE * a_fp, glong a_indent)
 }
 
 /**
+ * cr_declaration_new:
+ * @a_statement: the statement this declaration belongs to. can be NULL.
+ * a_property: the property string of the declaration
+ * a_value: the value expression of the declaration.
  *Constructor of #CRDeclaration.
- * param a_property the property string of the declaration
- * param a_value the value expression of the declaration.
- * return the newly built instance of #CRDeclaration, or NULL in
+ *
+ *Returns the newly built instance of #CRDeclaration, or NULL in
  *case of error.
+ *
+ *The returned CRDeclaration takes ownership of @a_property and @a_value.
+ *(E.g. cr_declaration_destroy on this CRDeclaration will also free
+ * a_property and @a_value.)
  */
 CRDeclaration *
 cr_declaration_new (CRStatement * a_statement,
                     CRString * a_property, CRTerm * a_value)
 {
+        CRDeclaration *result = NULL;
+
         g_return_val_if_fail (a_property, NULL);
 
         if (a_statement)
@@ -72,7 +86,7 @@ cr_declaration_new (CRStatement * a_statement,
                                           || (a_statement->type
                                               == AT_PAGE_RULE_STMT)), NULL);
 
-        CRDeclaration * result = (CRDeclaration *)g_try_malloc (sizeof (CRDeclaration));
+        result = g_try_malloc (sizeof (CRDeclaration));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
@@ -89,15 +103,16 @@ cr_declaration_new (CRStatement * a_statement,
 }
 
 /**
- *Parses a text buffer that contains
- *a css declaration.
- *
- * param a_statement the parent css2 statement of this
+ * cr_declaration_parse_from_buf:
+ * a_statement: the parent css2 statement of this
  *this declaration. Must be non NULL and of type
  *RULESET_STMT (must be a ruleset).
- * param a_str the string that contains the statement.
- * param a_enc the encoding of a_str.
- * return the parsed declaration, or NULL in case of error.
+ * a_str: the string that contains the statement.
+ * a_enc: the encoding of a_str.
+ *
+ *Parses a text buffer that contains
+ *a css declaration.
+ *Returns the parsed declaration, or NULL in case of error.
  */
 CRDeclaration *
 cr_declaration_parse_from_buf (CRStatement * a_statement,
@@ -107,6 +122,7 @@ cr_declaration_parse_from_buf (CRStatement * a_statement,
         CRTerm *value = NULL;
         CRString *property = NULL;
         CRDeclaration *result = NULL;
+        CRParser *parser = NULL;
         gboolean important = FALSE;
 
         g_return_val_if_fail (a_str, NULL);
@@ -114,9 +130,7 @@ cr_declaration_parse_from_buf (CRStatement * a_statement,
                 g_return_val_if_fail (a_statement->type == RULESET_STMT,
                                       NULL);
 
-        CRParser *parser = (CRParser *)
-		        cr_parser_new_from_buf ((guchar*)a_str,
-				  strlen ((char *)a_str), a_enc, FALSE);
+        parser = cr_parser_new_from_buf ((guchar*)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);
@@ -156,11 +170,13 @@ cr_declaration_parse_from_buf (CRStatement * a_statement,
 }
 
 /**
- *Parses a ';' separated list of properties declaration.
- * param a_str the input buffer that contains the list of declaration to
+ * cr_declaration_parse_list_from_buf:
+ * a_str: the input buffer that contains the list of declaration to
  *parse.
- * param a_enc the encoding of a_str
- * return the parsed list of declaration, NULL if parsing failed.
+ * a_enc: the encoding of a_str
+ *
+ *Parses a ';' separated list of properties declaration.
+ *Returns the parsed list of declaration, NULL if parsing failed.
  */
 CRDeclaration *
 cr_declaration_parse_list_from_buf (const guchar * a_str,
@@ -172,13 +188,13 @@ cr_declaration_parse_list_from_buf (const guchar * a_str,
         CRString *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);
 
-        CRParser *parser = (CRParser *)cr_parser_new_from_buf
-		      ((guchar*)a_str, strlen ((char *)a_str), a_enc, FALSE);
+        parser = cr_parser_new_from_buf ((guchar*)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) {
@@ -210,15 +226,14 @@ cr_declaration_parse_list_from_buf (const guchar * a_str,
                 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) 
+                        if (status == CR_END_OF_INPUT_ERROR)
                                 status = CR_OK;
                         goto cleanup;
                 }
                 if (c == ';') {
                         status = cr_tknzr_read_char (tokenizer, &c);
                 } else {
-                        cr_tknzr_read_char (tokenizer, &c);
-                        continue; // try to keep reading until we reach the end or a ;
+                        break;
                 }
                 important = FALSE;
                 cr_parser_try_to_skip_spaces_and_comments (parser);
@@ -226,11 +241,9 @@ cr_declaration_parse_list_from_buf (const guchar * a_str,
                                                       &value, &important);
                 if (status != CR_OK || !property) {
                         if (status == CR_END_OF_INPUT_ERROR) {
-                                status = CR_OK; // simply the end of input, do not delete what we got so far, just finish
-                                break; 
-                        } else {
-                                continue; // even if one declaration is broken, it's no reason to discard others (see http://www.w3.org/TR/CSS21/syndata.html#declaration)
-								}
+                                status = CR_OK;
+                        }
+                        break;
                 }
                 cur_decl = cr_declaration_new (NULL, property, value);
                 if (cur_decl) {
@@ -269,10 +282,12 @@ cr_declaration_parse_list_from_buf (const guchar * a_str,
 }
 
 /**
+ * cr_declaration_append:
+ * a_this: the current declaration list.
+ * a_new: the declaration to append.
+ *
  *Appends a new declaration to the current declarations list.
- * param a_this the current declaration list.
- * param a_new the declaration to append.
- * return the declaration list with a_new appended to it, or NULL
+ *Returns the declaration list with a_new appended to it, or NULL
  *in case of error.
  */
 CRDeclaration *
@@ -294,10 +309,13 @@ cr_declaration_append (CRDeclaration * a_this, CRDeclaration * a_new)
 }
 
 /**
+ * cr_declaration_unlink:
+ * a_decls: the declaration to unlink.
+ *
  *Unlinks the declaration from the declaration list.
- * param a_decl the declaration to unlink.
- * return a pointer to the unlinked declaration in
  *case of a successfull completion, NULL otherwise.
+ *
+ *Returns a pointer to the unlinked declaration in
  */
 CRDeclaration *
 cr_declaration_unlink (CRDeclaration * a_decl)
@@ -369,10 +387,13 @@ cr_declaration_unlink (CRDeclaration * a_decl)
 }
 
 /**
- *prepends a declaration to the current declaration list.
- * param a_this the current declaration list.
- * param a_new the declaration to prepend.
- * return the list with a_new prepended or NULL in case of error.
+ * cr_declaration_prepend:
+ * @a_this: the current declaration list.
+ * @a_new: the declaration to prepend.
+ *
+ * prepends a declaration to the current declaration list.
+ *
+ * Returns the list with a_new prepended or NULL in case of error.
  */
 CRDeclaration *
 cr_declaration_prepend (CRDeclaration * a_this, CRDeclaration * a_new)
@@ -393,11 +414,13 @@ cr_declaration_prepend (CRDeclaration * a_this, CRDeclaration * a_new)
 }
 
 /**
+ * cr_declaration_append2:
+ * a_this: the current declaration list.
+ * a_prop: the property string of the declaration to append.
+ * a_value: the value of the declaration to append.
+ *
  *Appends a declaration to the current declaration list.
- * param a_this the current declaration list.
- * param a_prop the property string of the declaration to append.
- * param a_value the value of the declaration to append.
- * return the list with the new property appended to it, or NULL in
+ *Returns the list with the new property appended to it, or NULL in
  *case of an error.
  */
 CRDeclaration *
@@ -419,16 +442,20 @@ cr_declaration_append2 (CRDeclaration * a_this,
 }
 
 /**
+ * cr_declaration_dump:
+ * a_this: the current instance of #CRDeclaration.
+ * a_fp: the destination file.
+ * a_indent: the number of indentation white char.
+ * a_one_per_line: whether to put one declaration per line of not .
+ *
+ *
  *Dumps a declaration list to a file.
- * param a_this the current instance of #CRDeclaration.
- * param a_fp the destination file.
- * param a_indent the number of indentation white char.
  */
 void
-cr_declaration_dump (CRDeclaration * a_this, FILE * a_fp, glong a_indent,
+cr_declaration_dump (CRDeclaration const * a_this, FILE * a_fp, glong a_indent,
                      gboolean a_one_per_line)
 {
-        CRDeclaration *cur = NULL;
+        CRDeclaration const *cur = NULL;
 
         g_return_if_fail (a_this);
 
@@ -444,13 +471,15 @@ cr_declaration_dump (CRDeclaration * a_this, FILE * a_fp, glong a_indent,
 }
 
 /**
+ * cr_declaration_dump_one:
+ * a_this: the current instance of #CRDeclaration.
+ * a_fp: the destination file.
+ * a_indent: the number of indentation white char.
+ *
  *Dumps the first declaration of the declaration list to a file.
- * param a_this the current instance of #CRDeclaration.
- * param a_fp the destination file.
- * 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 const * a_this, FILE * a_fp, glong a_indent)
 {
         g_return_if_fail (a_this);
 
@@ -458,17 +487,21 @@ cr_declaration_dump_one (CRDeclaration * a_this, FILE * a_fp, glong a_indent)
 }
 
 /**
- *Serializes the declaration into a string
- * param a_this the current instance of #CRDeclaration.
- * param a_indent the number of indentation white char
+ * cr_declaration_to_string:
+ * a_this: the current instance of #CRDeclaration.
+ * a_indent: the number of indentation white char
  *to put before the actual serialisation.
+ *
+ *Serializes the declaration into a string
+ *Returns the serialized form the declaration. The caller must
+ *free the string using g_free().
  */
 gchar *
-cr_declaration_to_string (CRDeclaration * a_this, gulong a_indent)
+cr_declaration_to_string (CRDeclaration const * a_this, gulong a_indent)
 {
         GString *stringue = NULL;
 
-        gchar *str = NULL,
+        guchar *str = NULL,
                 *result = NULL;
 
         g_return_val_if_fail (a_this, NULL);
@@ -525,17 +558,19 @@ cr_declaration_to_string (CRDeclaration * a_this, gulong a_indent)
 }
 
 /**
- *Serializes the declaration list into a string
- * param a_this the current instance of #CRDeclaration.
- * param a_indent the number of indentation white char
+ * cr_declaration_list_to_string:
+ * a_this: the current instance of #CRDeclaration.
+ * a_indent: the number of indentation white char
  *to put before the actual serialisation.
+ *
+ *Serializes the declaration list into a string
  */
 guchar *
-cr_declaration_list_to_string (CRDeclaration * a_this, gulong a_indent)
+cr_declaration_list_to_string (CRDeclaration const * a_this, gulong a_indent)
 {
-        CRDeclaration *cur = NULL;
+        CRDeclaration const *cur = NULL;
         GString *stringue = NULL;
-        gchar *str = NULL,
+        guchar *str = NULL,
                 *result = NULL;
 
         g_return_val_if_fail (a_this, NULL);
@@ -555,22 +590,26 @@ cr_declaration_list_to_string (CRDeclaration * a_this, gulong a_indent)
                 g_string_free (stringue, FALSE);
         }
 
-        return (guchar *)result;
+        return result;
 }
 
 /**
- *Serializes the declaration list into a string
- * param a_this the current instance of #CRDeclaration.
- * param a_indent the number of indentation white char
+ * cr_declaration_list_to_string2:
+ * a_this: the current instance of #CRDeclaration.
+ * a_indent: the number of indentation white char
+ * a_one_decl_per_line: whether to output one doc per line or not.
  *to put before the actual serialisation.
+ *
+ *Serializes the declaration list into a string
+ *Returns the serialized form the declararation.
  */
 guchar *
-cr_declaration_list_to_string2 (CRDeclaration * a_this,
+cr_declaration_list_to_string2 (CRDeclaration const * a_this,
                                 gulong a_indent, gboolean a_one_decl_per_line)
 {
-        CRDeclaration *cur = NULL;
+        CRDeclaration const *cur = NULL;
         GString *stringue = NULL;
-        gchar *str = NULL,
+        guchar *str = NULL,
                 *result = NULL;
 
         g_return_val_if_fail (a_this, NULL);
@@ -604,18 +643,18 @@ cr_declaration_list_to_string2 (CRDeclaration * a_this,
                 g_string_free (stringue, FALSE);
         }
 
-        return (guchar *)result;
+        return result;
 }
 
 /**
- *Return the number of properties in the declaration;
- * param a_this the current instance of #CRDeclaration.
- * return number of properties in the declaration list.
+ * cr_declaration_nr_props:
+ * a_this: the current instance of #CRDeclaration.
+ *Return the number of properties in the declaration
  */
 gint
-cr_declaration_nr_props (CRDeclaration * a_this)
+cr_declaration_nr_props (CRDeclaration const * a_this)
 {
-        CRDeclaration *cur = NULL;
+        CRDeclaration const *cur = NULL;
         int nr = 0;
 
         g_return_val_if_fail (a_this, -1);
@@ -626,10 +665,14 @@ cr_declaration_nr_props (CRDeclaration * a_this)
 }
 
 /**
+ * cr_declaration_get_from_list:
+ * a_this: the current instance of #CRDeclaration.
+ * itemnr: the index into the declaration list.
+ *
  *Use an index to get a CRDeclaration from the declaration list.
- * param a_this the current instance of #CRDeclaration.
- * param itemnr the index into the declaration list.
- * return CRDeclaration at position itemnr, if itemnr > number of declarations - 1,
+ *
+ *Returns #CRDeclaration at position itemnr, 
+ *if itemnr > number of declarations - 1,
  *it will return NULL.
  */
 CRDeclaration *
@@ -647,10 +690,12 @@ cr_declaration_get_from_list (CRDeclaration * a_this, int itemnr)
 }
 
 /**
+ * cr_declaration_get_by_prop_name:
+ * a_this: the current instance of #CRDeclaration.
+ * a_prop: the property name to search for.
+ *
  *Use property name to get a CRDeclaration from the declaration list.
- * param a_this the current instance of #CRDeclaration.
- * param a_prop the property name to search for.
- * return CRDeclaration with property name a_prop, or NULL if not found.
+ *Returns #CRDeclaration with property name a_prop, or NULL if not found.
  */
 CRDeclaration *
 cr_declaration_get_by_prop_name (CRDeclaration * a_this,
@@ -666,7 +711,7 @@ cr_declaration_get_by_prop_name (CRDeclaration * a_this,
 		    && cur->property->stryng
 		    && cur->property->stryng->str) {
 			if (!strcmp (cur->property->stryng->str, 
-				     (char *)a_prop)) {
+				     a_prop)) {
 				return cur;
 			}
 		}
@@ -675,8 +720,10 @@ cr_declaration_get_by_prop_name (CRDeclaration * a_this,
 }
 
 /**
+ * cr_declaration_ref:
+ * a_this: the current instance of #CRDeclaration.
+ *
  *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)
@@ -687,12 +734,14 @@ cr_declaration_ref (CRDeclaration * a_this)
 }
 
 /**
+ * cr_declaration_unref:
+ * a_this: the current instance of #CRDeclaration.
+ *
  *Decrements the ref count of the current instance of #CRDeclaration.
  *If the ref count reaches zero, the current instance of #CRDeclaration
  *if destroyed.
- * param a_this the current instance of #CRDeclaration.
- * return TRUE if the current instance of #CRDeclaration has been destroyed
- *(ref count reached zero), FALSE otherwise.
+ *Returns TRUE if @a_this was destroyed (ref count reached zero),
+ *FALSE otherwise.
  */
 gboolean
 cr_declaration_unref (CRDeclaration * a_this)
@@ -711,8 +760,10 @@ cr_declaration_unref (CRDeclaration * a_this)
 }
 
 /**
+ * cr_declaration_destroy:
+ * a_this: the current instance of #CRDeclaration.
+ *
  *Destructor of the declaration list.
- * param a_this the current instance of #CRDeclaration.
  */
 void
 cr_declaration_destroy (CRDeclaration * a_this)
@@ -722,22 +773,19 @@ cr_declaration_destroy (CRDeclaration * a_this)
         g_return_if_fail (a_this);
 
         /*
-         *Go get the tail of the list.
-         *Meanwhile, free each property/value pair contained in the list.
+         * Go to the last element of the list.
          */
-        for (cur = a_this; cur && cur->next; cur = cur->next) {
-                if (cur->property) {
-                        cr_string_destroy (cur->property);
-                        cur->property = NULL;
-                }
+        for (cur = a_this; cur->next; cur = cur->next)
+                g_assert (cur->next->prev == cur);
 
-                if (cur->value) {
-                        cr_term_destroy (cur->value);
-                        cur->value = NULL;
-                }
-        }
+        /*
+         * Walk backward the list and free each "next" element.
+         * Meanwhile, free each property/value pair contained in the list.
+         */
+        for (; cur; cur = cur->prev) {
+                g_free (cur->next);
+                cur->next = NULL;
 
-        if (cur) {
                 if (cur->property) {
                         cr_string_destroy (cur->property);
                         cur->property = NULL;
@@ -749,27 +797,5 @@ cr_declaration_destroy (CRDeclaration * a_this)
                 }
         }
 
-        /*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);
+        g_free (a_this);
 }
diff --git a/src/cr-declaration.h b/src/cr-declaration.h
index 0052395..eee8be3 100644
--- a/src/cr-declaration.h
+++ b/src/cr-declaration.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
 
 /*
  * This file is part of The Croco Library
@@ -100,14 +100,14 @@ CRDeclaration * cr_declaration_prepend (CRDeclaration *a_this,
 CRDeclaration * cr_declaration_unlink (CRDeclaration * a_decl) ;
 
 void
-cr_declaration_dump (CRDeclaration *a_this, 
+cr_declaration_dump (CRDeclaration const *a_this,
 		     FILE *a_fp, glong a_indent,
 		     gboolean a_one_per_line) ;
 
-void cr_declaration_dump_one (CRDeclaration *a_this, 
+void cr_declaration_dump_one (CRDeclaration const *a_this,
 			      FILE *a_fp, glong a_indent) ;
 
-gint cr_declaration_nr_props (CRDeclaration *a_this) ;
+gint cr_declaration_nr_props (CRDeclaration const *a_this) ;
 
 CRDeclaration * cr_declaration_get_from_list (CRDeclaration *a_this, 
 					      int itemnr) ;
@@ -115,13 +115,13 @@ CRDeclaration * cr_declaration_get_from_list (CRDeclaration *a_this,
 CRDeclaration * cr_declaration_get_by_prop_name (CRDeclaration *a_this, 
 						 const guchar *a_str) ;
 
-gchar * cr_declaration_to_string (CRDeclaration *a_this,
+gchar * cr_declaration_to_string (CRDeclaration const *a_this,
 				  gulong a_indent) ;
 
-guchar * cr_declaration_list_to_string (CRDeclaration *a_this,
+guchar * cr_declaration_list_to_string (CRDeclaration const *a_this,
 					gulong a_indent) ;
 
-guchar * cr_declaration_list_to_string2 (CRDeclaration *a_this,
+guchar * cr_declaration_list_to_string2 (CRDeclaration const *a_this,
 					 gulong a_indent,
 					 gboolean a_one_decl_per_line) ;
 
diff --git a/src/cr-doc-handler.c b/src/cr-doc-handler.c
index 00357c0..bbb1582 100644
--- a/src/cr-doc-handler.c
+++ b/src/cr-doc-handler.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
 
 /*
  * This file is part of The Croco Library
@@ -25,7 +25,8 @@
 #include "cr-parser.h"
 
 /**
- * file
+ * CRDocHandler:
+ *
  *The definition of the CRDocHandler class.
  *Contains methods to instantiate, destroy,
  *and initialyze instances of #CRDocHandler
@@ -58,20 +59,26 @@ struct _CRDocHandlerPriv {
 };
 
 /**
+ * cr_doc_handler_new:
  *Constructor of #CRDocHandler.
- * return the newly built instance of
+ *
+ *Returns the newly built instance of
  *#CRDocHandler
+ *
  */
 CRDocHandler *
 cr_doc_handler_new (void)
 {
-        CRDocHandler *result = ( CRDocHandler *)g_try_malloc (sizeof (CRDocHandler));
+        CRDocHandler *result = NULL;
+
+        result = g_try_malloc (sizeof (CRDocHandler));
 
         g_return_val_if_fail (result, NULL);
 
         memset (result, 0, sizeof (CRDocHandler));
+        result->ref_count++;
 
-        result->priv =  (CRDocHandlerPriv *)g_try_malloc (sizeof (CRDocHandlerPriv));
+        result->priv = g_try_malloc (sizeof (CRDocHandlerPriv));
         if (!result->priv) {
                 cr_utils_trace_info ("Out of memory exception");
                 g_free (result);
@@ -84,15 +91,17 @@ cr_doc_handler_new (void)
 }
 
 /**
- *Returns the private parsing context.
+ * cr_doc_handler_get_ctxt:
+ * a_this: the current instance of #CRDocHandler.
+ * a_ctxt: out parameter. The new parsing context.
+ *
+ *Gets the private parsing context associated to the document handler
  *The private parsing context is used by libcroco only.
- * param a_this the current instance of #CRDocHandler.
- * param a_ctxt out parameter. The new parsing context.
- * return CR_OK upon successfull completion, an error code otherwise.
- * return the parsing context, or NULL if an error occured.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
-cr_doc_handler_get_ctxt (CRDocHandler * a_this, gpointer * a_ctxt)
+cr_doc_handler_get_ctxt (CRDocHandler const * a_this, gpointer * a_ctxt)
 {
         g_return_val_if_fail (a_this && a_this->priv, CR_BAD_PARAM_ERROR);
 
@@ -102,11 +111,13 @@ cr_doc_handler_get_ctxt (CRDocHandler * a_this, gpointer * a_ctxt)
 }
 
 /**
+ * cr_doc_handler_set_ctxt:
+ * a_this: the current instance of #CRDocHandler
+ * a_ctxt: a pointer to the parsing context.
+ *
  *Sets the private parsing context.
  *This is used by libcroco only.
- * param a_this the current instance of #CRDocHandler
- * param a_ctxt a pointer to the parsing context.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_doc_handler_set_ctxt (CRDocHandler * a_this, gpointer a_ctxt)
@@ -117,14 +128,17 @@ cr_doc_handler_set_ctxt (CRDocHandler * a_this, gpointer a_ctxt)
 }
 
 /**
- *Returns the private parsing result.
+ * cr_doc_handler_get_result:
+ * a_this: the current instance of #CRDocHandler
+ * a_result: out parameter. The returned result.
+ *
+ *Gets the private parsing result.
  *The private parsing result is used by libcroco only.
- * param a_this the current instance of #CRDocHandler
- * param a_result out parameter. The returned result.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
-cr_doc_handler_get_result (CRDocHandler * a_this, gpointer * a_result)
+cr_doc_handler_get_result (CRDocHandler const * a_this, gpointer * a_result)
 {
         g_return_val_if_fail (a_this && a_this->priv, CR_BAD_PARAM_ERROR);
 
@@ -134,11 +148,14 @@ cr_doc_handler_get_result (CRDocHandler * a_this, gpointer * a_result)
 }
 
 /**
+ * cr_doc_handler_set_result:
+ * a_this: the current instance of #CRDocHandler
+ * a_result: the new result.
+ *
  *Sets the private parsing context.
  *This is used by libcroco only.
- * param a_this the current instance of #CRDocHandler
- * param a_result the new result.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_doc_handler_set_result (CRDocHandler * a_this, gpointer a_result)
@@ -149,14 +166,16 @@ cr_doc_handler_set_result (CRDocHandler * a_this, gpointer a_result)
 }
 
 /**
+ *cr_doc_handler_set_default_sac_handler:
+ * a_this: a pointer to the current instance of #CRDocHandler.
+ *
  *Sets the sac handlers contained in the current
  *instance of DocHandler to the default handlers.
  *For the time being the default handlers are
  *test handlers. This is expected to change in a
  *near future, when the libcroco gets a bit debugged.
  *
- * param a_this a pointer to the current instance of #CRDocHandler.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_doc_handler_set_default_sac_handler (CRDocHandler * a_this)
@@ -184,8 +203,8 @@ cr_doc_handler_set_default_sac_handler (CRDocHandler * a_this)
 }
 
 /**
- *Increases the reference count of the doc handler
- * param a_this the current instance of #CRDocHandler.
+ * cr_doc_handler_ref:
+ * a_this: the current instance of #CRDocHandler.
  */
 void
 cr_doc_handler_ref (CRDocHandler * a_this)
@@ -196,10 +215,13 @@ cr_doc_handler_ref (CRDocHandler * a_this)
 }
 
 /**
+ * cr_doc_handler_unref:
+ * a_this: the currrent instance of #CRDocHandler.
+ *
  *Decreases the ref count of the current instance of #CRDocHandler.
  *If the ref count reaches '0' then, destroys the instance.
- * param a_this the currrent instance of #CRDocHandler.
- * return TRUE if the instance as been destroyed, FALSE otherwise.
+ *
+ *Returns TRUE if the instance as been destroyed, FALSE otherwise.
  */
 gboolean
 cr_doc_handler_unref (CRDocHandler * a_this)
@@ -218,9 +240,11 @@ cr_doc_handler_unref (CRDocHandler * a_this)
 }
 
 /**
- *The destructor of the #CRDocHandler class.
- * param a_this the instance of #CRDocHandler to
+ * cr_doc_handler_destroy:
+ * a_this: the instance of #CRDocHandler to
  *destroy.
+ *
+ *The destructor of the #CRDocHandler class.
  */
 void
 cr_doc_handler_destroy (CRDocHandler * a_this)
@@ -235,9 +259,11 @@ cr_doc_handler_destroy (CRDocHandler * a_this)
 }
 
 /**
+ * cr_doc_handler_associate_a_parser:
  *Associates a parser to the current document handler
- * param a_this the current instance of document handler.
- * param a_parser the parser to associate.
+ *
+ * a_this: the current instance of document handler.
+ * a_parser: the parser to associate.
  */
 void
 cr_doc_handler_associate_a_parser (CRDocHandler *a_this,
@@ -246,5 +272,5 @@ cr_doc_handler_associate_a_parser (CRDocHandler *a_this,
 	g_return_if_fail (a_this && PRIVATE (a_this) 
 			  && a_parser) ;
 
-	PRIVATE (a_this)->parser = (CRParser *)a_parser ;
+	PRIVATE (a_this)->parser = a_parser ;
 }
diff --git a/src/cr-doc-handler.h b/src/cr-doc-handler.h
index 704f186..d12673f 100644
--- a/src/cr-doc-handler.h
+++ b/src/cr-doc-handler.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
 
 /*
  * This file is part of The Croco Library
@@ -92,7 +92,7 @@ struct _CRDocHandler
 	 *destination media for style information.
 	 * param a_uri the uri of the imported style sheet.
 	 * param a_uri_default_ns the default namespace of URI
-	 * param a_location the parsing location of the '@import' 
+	 * param a_location the parsing location of the '\ import' 
 	 *keyword.
 	 *of the imported style sheet.
 	 */
@@ -175,7 +175,7 @@ struct _CRDocHandler
 	 *
 	 * param a_this a pointer to the current instance of
 	 *#CRDocHandler.
-	 * param a_location the parsing location of the "@font-face"
+	 * param a_location the parsing location of the "\ font-face"
 	 *keyword.
 	 */
 	void (*start_font_face) (CRDocHandler *a_this,
@@ -227,7 +227,7 @@ struct _CRDocHandler
 	 *#CRDocHandler.
 	 * param a_name the name of the page (if any, null otherwise).
 	 * param a_pseudo_page the pseudo page (if any, null otherwise).
-	 * param a_location the parsing location of the "@page" keyword.
+	 * param a_location the parsing location of the "\ page" keyword.
 	 */
 	void (*start_page) (CRDocHandler *a_this,
 			    CRString *a_name, 
@@ -239,7 +239,7 @@ struct _CRDocHandler
 	 * param a_this a pointer to the current instance of
 	 *#CRDocHandler.
 	 * param a_name the name of the page (if any, null otherwise).
-	 * parap a_pseudo_page the pseudo page (if any, null otherwise).
+	 * param a_pseudo_page the pseudo page (if any, null otherwise).
 	 */
 	void (*end_page) (CRDocHandler *a_this,
 			  CRString *a_name,
@@ -276,11 +276,11 @@ CRDocHandler * cr_doc_handler_new (void) ;
 
 enum CRStatus cr_doc_handler_set_result (CRDocHandler *a_this, gpointer a_result) ;
 
-enum CRStatus cr_doc_handler_get_result (CRDocHandler *a_this, gpointer * a_result) ;
+enum CRStatus cr_doc_handler_get_result (CRDocHandler const *a_this, gpointer * a_result) ;
 
 enum CRStatus cr_doc_handler_set_ctxt (CRDocHandler *a_this, gpointer a_ctxt) ;
 
-enum CRStatus cr_doc_handler_get_ctxt (CRDocHandler *a_this, gpointer * a_ctxt) ;
+enum CRStatus cr_doc_handler_get_ctxt (CRDocHandler const *a_this, gpointer * a_ctxt) ;
 
 enum CRStatus cr_doc_handler_set_default_sac_handler (CRDocHandler *a_this) ;
 
diff --git a/src/cr-enc-handler.c b/src/cr-enc-handler.c
index 973a5f3..b3e5b7e 100644
--- a/src/cr-enc-handler.c
+++ b/src/cr-enc-handler.c
@@ -21,7 +21,7 @@
  */
 
 /*
- *$Id: cr-enc-handler.c,v 1.7 2004/03/07 13:22:47 dodji Exp $
+ *$Id$
  */
 
 /**
@@ -57,7 +57,7 @@ static struct CREncAlias gv_default_aliases[] = {
         {"UCS-4", CR_UCS_4},
         {"UCS_4", CR_UCS_4},
         {"ASCII", CR_ASCII},
-        {(char *)0, (enum CREncoding)0}
+        {0, 0}
 };
 
 static CREncHandler gv_default_enc_handlers[] = {
@@ -70,14 +70,17 @@ static CREncHandler gv_default_enc_handlers[] = {
         {CR_ASCII, cr_utils_ucs1_to_utf8, cr_utils_utf8_to_ucs1,
          cr_utils_ucs1_str_len_as_utf8, cr_utils_utf8_str_len_as_ucs1},
 
-        {(enum CREncoding)0, NULL, NULL, NULL, NULL}
+        {0, NULL, NULL, NULL, NULL}
 };
 
 /**
+ * cr_enc_handler_get_instance:
+ * a_enc: the encoding of the Handler.
+ *
  *Gets the instance of encoding handler.
  *This function implements a singleton pattern.
- * param a_enc the encoding of the Handler.
- * return the instance of #CREncHandler.
+ *
+ *Returns the instance of #CREncHandler.
  */
 CREncHandler *
 cr_enc_handler_get_instance (enum CREncoding a_enc)
@@ -95,23 +98,27 @@ cr_enc_handler_get_instance (enum CREncoding a_enc)
 }
 
 /**
+ * cr_enc_handler_resolve_enc_alias:
+ * a_alias_name: the encoding name.
+ * a_enc: output param. The returned encoding type
+ *or 0 if the alias is not supported.
+ *
  *Given an encoding name (called an alias name)
  *the function returns the matching encoding type.
- * param a_alias_name the encoding name
- * param a_enc output param. The returned encoding type
- *or 0 if the alias is not supported.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_enc_handler_resolve_enc_alias (const guchar * a_alias_name,
                                   enum CREncoding *a_enc)
 {
         gulong i = 0;
+        guchar *alias_name_up = NULL;
         enum CRStatus status = CR_ENCODING_NOT_FOUND_ERROR;
 
         g_return_val_if_fail (a_alias_name != NULL, CR_BAD_PARAM_ERROR);
 
-        gchar *alias_name_up = g_strdup ((gchar *)a_alias_name);
+        alias_name_up = g_strdup (a_alias_name);
         g_ascii_strup (alias_name_up, -1);
 
         for (i = 0; gv_default_aliases[i].name; i++) {
@@ -126,16 +133,19 @@ cr_enc_handler_resolve_enc_alias (const guchar * a_alias_name,
 }
 
 /**
- *Converts a raw input buffer into an utf8 buffer.
- * param a_this the current instance of #CREncHandler.
- * param a_in the input buffer to convert.
- * param a_in_len in/out parameter. The len of the input
+ * cr_enc_handler_convert_input:
+ * a_this: the current instance of #CREncHandler.
+ * a_in: the input buffer to convert.
+ * a_in_len: in/out parameter. The len of the input
  *buffer to convert. After return, contains the number of
  *bytes actually consumed.
- * param @a_out output parameter. The converted output buffer.
+ * a_out: output parameter. The converted output buffer.
  *Must be freed by the buffer.
- * param a_out_len output parameter. The length of the output buffer.
- * return CR_OK upon successfull completion, an error code otherwise.
+ * a_out_len: output parameter. The length of the output buffer.
+ *
+ *Converts a raw input buffer into an utf8 buffer.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_enc_handler_convert_input (CREncHandler * a_this,
@@ -161,7 +171,7 @@ cr_enc_handler_convert_input (CREncHandler * a_this,
                 *a_out_len = *a_in_len;
         }
 
-        *a_out = (guchar *)g_malloc0 (*a_out_len);
+        *a_out = g_malloc0 (*a_out_len);
 
         status = a_this->decode_input (a_in, a_in_len, *a_out, a_out_len);
 
diff --git a/src/cr-enc-handler.h b/src/cr-enc-handler.h
index 2f5da69..0727764 100644
--- a/src/cr-enc-handler.h
+++ b/src/cr-enc-handler.h
@@ -21,7 +21,7 @@
  */
 
 /*
- *$Id: cr-enc-handler.h,v 1.5 2004/01/24 19:24:01 dodji Exp $
+ *$Id$
  */
 
 /**
@@ -79,10 +79,8 @@ CREncHandler *
 cr_enc_handler_get_instance (enum CREncoding a_enc) ;
 
 enum CRStatus
-cr_enc_handler_resolve_enc_alias (const guchar *a_en_alias, 
+cr_enc_handler_resolve_enc_alias (const guchar *a_alias_name, 
                                   enum CREncoding *a_enc) ;
-void
-cr_enc_handler_destroy (CREncHandler * a_enc_hdlr) ;
 
 enum CRStatus
 cr_enc_handler_convert_input (CREncHandler *a_this,
diff --git a/src/cr-fonts.c b/src/cr-fonts.c
index 14438c3..6ef347e 100644
--- a/src/cr-fonts.c
+++ b/src/cr-fonts.c
@@ -27,10 +27,10 @@
 #include <string.h>
 
 static enum CRStatus
-cr_font_family_to_string_real (CRFontFamily * a_this,
+cr_font_family_to_string_real (CRFontFamily const * a_this,
                                gboolean a_walk_list, GString ** a_string)
 {
-        gchar *name = NULL;
+        guchar const *name = NULL;
         enum CRStatus result = CR_OK;
 
         if (!*a_string) {
@@ -46,31 +46,31 @@ cr_font_family_to_string_real (CRFontFamily * a_this,
 
         switch (a_this->type) {
         case FONT_FAMILY_SANS_SERIF:
-                name = (gchar *) "sans-serif";
+                name = (guchar const *) "sans-serif";
                 break;
 
         case FONT_FAMILY_SERIF:
-                name = (gchar *) "sans-serif";
+                name = (guchar const *) "sans-serif";
                 break;
 
         case FONT_FAMILY_CURSIVE:
-                name = (gchar *) "cursive";
+                name = (guchar const *) "cursive";
                 break;
 
         case FONT_FAMILY_FANTASY:
-                name = (gchar *) "fantasy";
+                name = (guchar const *) "fantasy";
                 break;
 
         case FONT_FAMILY_MONOSPACE:
-                name = (gchar *) "monospace";
+                name = (guchar const *) "monospace";
                 break;
 
         case FONT_FAMILY_NON_GENERIC:
-                name = (gchar *) a_this->name;
+                name = (guchar const *) a_this->name;
                 break;
 
         default:
-                name = (gchar *) NULL;
+                name = NULL;
                 break;
         }
 
@@ -92,32 +92,32 @@ static const gchar *
 cr_predefined_absolute_font_size_to_string (enum CRPredefinedAbsoluteFontSize
                                             a_code)
 {
-        gchar *str = NULL;
+        gchar const *str = NULL;
 
         switch (a_code) {
         case FONT_SIZE_XX_SMALL:
-                str = (gchar *) "xx-small";
+                str = "xx-small";
                 break;
         case FONT_SIZE_X_SMALL:
-                str = (gchar *) "x-small";
+                str = "x-small";
                 break;
         case FONT_SIZE_SMALL:
-                str = (gchar *) "small";
+                str = "small";
                 break;
         case FONT_SIZE_MEDIUM:
-                str = (gchar *) "medium";
+                str = "medium";
                 break;
         case FONT_SIZE_LARGE:
-                str = (gchar *) "large";
+                str = "large";
                 break;
         case FONT_SIZE_X_LARGE:
-                str = (gchar *) "x-large";
+                str = "x-large";
                 break;
         case FONT_SIZE_XX_LARGE:
-                str = (gchar *) "xx-large";
+                str = "xx-large";
                 break;
         default:
-                str = (gchar *) "unknown absolute font size value";
+                str = "unknown absolute font size value";
         }
         return str;
 }
@@ -125,26 +125,37 @@ cr_predefined_absolute_font_size_to_string (enum CRPredefinedAbsoluteFontSize
 static const gchar *
 cr_relative_font_size_to_string (enum CRRelativeFontSize a_code)
 {
-        gchar *str = NULL;
+        gchar const *str = NULL;
 
         switch (a_code) {
         case FONT_SIZE_LARGER:
-                str = (gchar *) "larger";
+                str = "larger";
                 break;
         case FONT_SIZE_SMALLER:
-                str = (gchar *) "smaller";
+                str = "smaller";
                 break;
         default:
-                str = (gchar *) "unknown relative font size value";
+                str = "unknown relative font size value";
                 break;
         }
         return str;
 }
 
+/**
+ * cr_font_family_new:
+ * @a_type: the type of font family to create.
+ * @a_name: the name of the font family.
+ *
+ * create a font family.
+ *
+ * Returns the newly built font family.
+ */
 CRFontFamily *
 cr_font_family_new (enum CRFontFamilyType a_type, guchar * a_name)
 {
-        CRFontFamily *result = (CRFontFamily *)g_try_malloc (sizeof (CRFontFamily));
+        CRFontFamily *result = NULL;
+
+        result = g_try_malloc (sizeof (CRFontFamily));
 
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
@@ -159,18 +170,26 @@ cr_font_family_new (enum CRFontFamilyType a_type, guchar * a_name)
         return result;
 }
 
+/**
+ * cr_font_family_to_string:
+ * @a_this: the current instance of #CRFontFamily.
+ * @a_walk_font_family_list: wether the serialize the entire list.
+ *
+ * Returns the seriliazed font family. The caller has to free it using
+ * g_free().
+ */
 guchar *
-cr_font_family_to_string (CRFontFamily * a_this,
+cr_font_family_to_string (CRFontFamily const * a_this,
                           gboolean a_walk_font_family_list)
 {
         enum CRStatus status = CR_OK;
-        gchar *result = NULL;
+        guchar *result = NULL;
         GString *stringue = NULL;
 
         if (!a_this) {
                 result = g_strdup ("NULL");
                 g_return_val_if_fail (result, NULL);
-                return (guchar *)result;
+                return result;
         }
         status = cr_font_family_to_string_real (a_this,
                                                 a_walk_font_family_list,
@@ -188,8 +207,16 @@ cr_font_family_to_string (CRFontFamily * a_this,
                 }
         }
 
-        return (guchar *)result;
+        return result;
 }
+
+/**
+ * cr_font_family_set_name:
+ * @a_this: the current instance of #CRFontFamily.
+ * @a_name: the new name
+ *
+ * Returns CR_OK upon sucessful completion, an error code otherwise.
+ */
 enum CRStatus
 cr_font_family_set_name (CRFontFamily * a_this, guchar * a_name)
 {
@@ -212,6 +239,13 @@ cr_font_family_set_name (CRFontFamily * a_this, guchar * a_name)
         return CR_OK;
 }
 
+/**
+ * cr_font_family_append:
+ * @a_this: the current instance of #CRFontFamily.
+ * @a_family_to_append: the font family to append to the list
+ *
+ * Returns the new font family list.
+ */
 CRFontFamily *
 cr_font_family_append (CRFontFamily * a_this,
                        CRFontFamily * a_family_to_append)
@@ -232,6 +266,13 @@ cr_font_family_append (CRFontFamily * a_this,
 
 }
 
+/**
+ * cr_font_family_prepend:
+ * @a_this: the current instance #CRFontFamily.
+ * @a_family_to_prepend: the font family to prepend to the list.
+ *
+ * Returns the font family list.
+ */
 CRFontFamily *
 cr_font_family_prepend (CRFontFamily * a_this,
                         CRFontFamily * a_family_to_prepend)
@@ -247,6 +288,12 @@ cr_font_family_prepend (CRFontFamily * a_this,
         return a_family_to_prepend;
 }
 
+/**
+ * cr_font_family_destroy:
+ * @a_this: the current instance of #CRFontFamily.
+ *
+ * Returns CR_OK upon sucessful completion, an error code otherwise.
+ */
 enum CRStatus
 cr_font_family_destroy (CRFontFamily * a_this)
 {
@@ -279,10 +326,17 @@ cr_font_family_destroy (CRFontFamily * a_this)
  *'font-size' manipulation functions definitions
  ***************************************************/
 
+/**
+ * cr_font_size_new:
+ *
+ * Returns the newly created font size.
+ */
 CRFontSize *
 cr_font_size_new (void)
 {
-        CRFontSize *result = (CRFontSize *)g_try_malloc (sizeof (CRFontSize));
+        CRFontSize *result = NULL;
+
+        result = g_try_malloc (sizeof (CRFontSize));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
@@ -292,6 +346,12 @@ cr_font_size_new (void)
         return result;
 }
 
+/**
+ * cr_font_size_clear:
+ * @a_this: the current instance of #CRFontSize
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
+ */
 enum CRStatus
 cr_font_size_clear (CRFontSize * a_this)
 {
@@ -315,8 +375,15 @@ cr_font_size_clear (CRFontSize * a_this)
         return CR_OK;
 }
 
+/**
+ * cr_font_size_copy:
+ * @a_dst: the destination #CRFontSize (where to copy to).
+ * @a_src: the source #CRFontSize (where to copy from).
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
+ */
 enum CRStatus
-cr_font_size_copy (CRFontSize * a_dst, CRFontSize * a_src)
+cr_font_size_copy (CRFontSize * a_dst, CRFontSize const * a_src)
 {
         g_return_val_if_fail (a_dst && a_src, CR_BAD_PARAM_ERROR);
 
@@ -341,12 +408,20 @@ cr_font_size_copy (CRFontSize * a_dst, CRFontSize * a_src)
         return CR_OK;
 }
 
+/**
+ * cr_font_size_set_predefined_absolute_font_size:
+ * @a_this: the current instance of #CRFontSize.
+ * @a_predefined: what to set.
+ *
+ * Returns CR_OK upon sucessful completion, an error code otherwise.
+ */
 enum CRStatus 
 cr_font_size_set_predefined_absolute_font_size (CRFontSize *a_this, 
                                                 enum CRPredefinedAbsoluteFontSize a_predefined)
 {
         g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR) ;
-        g_return_val_if_fail ((unsigned)a_predefined < NB_FONT_SIZE_TYPE,
+        g_return_val_if_fail (a_predefined >= PREDEFINED_ABSOLUTE_FONT_SIZE
+                              && a_predefined < NB_FONT_SIZE_TYPE,
                               CR_BAD_PARAM_ERROR) ;
 
         a_this->type = PREDEFINED_ABSOLUTE_FONT_SIZE ;
@@ -355,12 +430,20 @@ cr_font_size_set_predefined_absolute_font_size (CRFontSize *a_this,
         return CR_OK ;
 }
 
+/**
+ * cr_font_size_set_relative_font_size:
+ * @a_this: the current instance of #CRFontSize
+ * @a_relative: the new relative font size
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
+ */
 enum CRStatus 
 cr_font_size_set_relative_font_size (CRFontSize *a_this,
                                      enum CRRelativeFontSize a_relative)
 {
         g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR) ;
-        g_return_val_if_fail ((unsigned)a_relative < NB_RELATIVE_FONT_SIZE,
+        g_return_val_if_fail (a_relative >= FONT_SIZE_LARGER
+                              && a_relative < NB_RELATIVE_FONT_SIZE,
                               CR_BAD_PARAM_ERROR) ;
         
         a_this->type = RELATIVE_FONT_SIZE ;
@@ -368,13 +451,22 @@ cr_font_size_set_relative_font_size (CRFontSize *a_this,
         return CR_OK ;
 }
 
+/**
+ * cr_font_size_set_absolute_font_size:
+ * @a_this: the current instance of #CRFontSize
+ * @a_num_type: the type of number to set.
+ * @a_value: the actual value to set.
+ *
+ * Returns CR_OK upon succesful completion, an error code otherwise.
+ */
 enum CRStatus 
 cr_font_size_set_absolute_font_size (CRFontSize *a_this,
                                      enum CRNumType a_num_type,
                                      gdouble a_value)
 {
         g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR) ;
-        g_return_val_if_fail ((unsigned)a_num_type < NB_NUM_TYPE,
+        g_return_val_if_fail (a_num_type >= NUM_AUTO
+                              && a_num_type < NB_NUM_TYPE,
                               CR_BAD_PARAM_ERROR) ;
 
         a_this->type = ABSOLUTE_FONT_SIZE ;
@@ -383,6 +475,12 @@ cr_font_size_set_absolute_font_size (CRFontSize *a_this,
         return CR_OK ;
 }
 
+/**
+ * cr_font_size_set_to_inherit:
+ * @a_this: the current instance of #CRFontSize 
+ *
+ * Returns CR_OK upon succesful completion, an error code otherwise.
+ */
 enum CRStatus
 cr_font_size_set_to_inherit (CRFontSize *a_this)
 {
@@ -394,16 +492,29 @@ cr_font_size_set_to_inherit (CRFontSize *a_this)
         return CR_OK ;
 }
 
+/**
+ * cr_font_size_is_set_to_inherit:
+ * @a_this: the current instance of #CRFontSize.
+ *
+ * Returns TRUE if the current instance is set to 'inherit'. 
+ */
 gboolean
-cr_font_size_is_set_to_inherit (CRFontSize *a_this)
+cr_font_size_is_set_to_inherit (CRFontSize const *a_this)
 {
         g_return_val_if_fail (a_this, FALSE) ;
 
         return a_this->type == INHERITED_FONT_SIZE ;
 }
 
+/**
+ * cr_font_size_to_string:
+ * @a_this: the current instance of #CRFontSize
+ *
+ * Returns the serialized form of #CRFontSize. The returned string
+ * has to bee freed using g_free().
+ */
 gchar *
-cr_font_size_to_string (CRFontSize * a_this)
+cr_font_size_to_string (CRFontSize const * a_this)
 {
         gchar *str = NULL;
 
@@ -418,7 +529,7 @@ cr_font_size_to_string (CRFontSize * a_this)
                                 (a_this->value.predefined));
                 break;
         case ABSOLUTE_FONT_SIZE:
-                str = (gchar *)cr_num_to_string (&a_this->value.absolute);
+                str = cr_num_to_string (&a_this->value.absolute);
                 break;
         case RELATIVE_FONT_SIZE:
                 str = g_strdup (cr_relative_font_size_to_string
@@ -433,14 +544,21 @@ cr_font_size_to_string (CRFontSize * a_this)
         return str;
 }
 
+/**
+ * cr_font_size_get_smaller_predefined:
+ * @a_font_size: the font size to consider.
+ * @a_smaller_size: out parameter. The a smaller value than @a_font_size. 
+ */
 void 
-cr_font_size_get_smaller_predefined_font_size (enum CRPredefinedAbsoluteFontSize a_font_size,
-                                               enum CRPredefinedAbsoluteFontSize *a_smaller_size)
+cr_font_size_get_smaller_predefined_font_size 
+				(enum CRPredefinedAbsoluteFontSize a_font_size,
+			         enum CRPredefinedAbsoluteFontSize *a_smaller_size)
 {
         enum CRPredefinedAbsoluteFontSize result = FONT_SIZE_MEDIUM ;
 
         g_return_if_fail (a_smaller_size) ;
-        g_return_if_fail ((unsigned)a_font_size < NB_PREDEFINED_ABSOLUTE_FONT_SIZES) ;
+        g_return_if_fail (a_font_size < NB_PREDEFINED_ABSOLUTE_FONT_SIZES
+                          && a_font_size >= FONT_SIZE_XX_SMALL) ;
 
         switch (a_font_size) {
         case FONT_SIZE_XX_SMALL:
@@ -477,14 +595,23 @@ cr_font_size_get_smaller_predefined_font_size (enum CRPredefinedAbsoluteFontSize
 }
 
 
+/**
+ * cr_font_size_get_larger_predefined_font_size:
+ * @a_font_size: the font size to consider.
+ * @a_larger_size: out parameter. the font size considered larger than
+ * @a_font_size.
+ *
+ */
 void 
-cr_font_size_get_larger_predefined_font_size (enum CRPredefinedAbsoluteFontSize a_font_size,
-                                              enum CRPredefinedAbsoluteFontSize *a_larger_size)
+cr_font_size_get_larger_predefined_font_size 
+			(enum CRPredefinedAbsoluteFontSize a_font_size,
+		         enum CRPredefinedAbsoluteFontSize *a_larger_size)
 {
         enum CRPredefinedAbsoluteFontSize result = FONT_SIZE_MEDIUM ;
         
         g_return_if_fail (a_larger_size) ;
-        g_return_if_fail ((unsigned)a_font_size < NB_PREDEFINED_ABSOLUTE_FONT_SIZES) ;
+        g_return_if_fail (a_font_size >= FONT_SIZE_XX_SMALL 
+                          && a_font_size < NB_PREDEFINED_ABSOLUTE_FONT_SIZES) ;
 
         switch (a_font_size) {
         case FONT_SIZE_XX_SMALL:
@@ -520,18 +647,33 @@ cr_font_size_get_larger_predefined_font_size (enum CRPredefinedAbsoluteFontSize
         *a_larger_size = result ;
 }
 
+/**
+ * cr_font_size_is_predefined_absolute_font_size:
+ * @a_font_size: the font size to consider.
+ *
+ * Returns TRUE if the instance is an predefined absolute font size, FALSE
+ * otherwise.
+ */
 gboolean
-cr_font_size_is_predefined_absolute_font_size (enum CRPredefinedAbsoluteFontSize a_font_size)
+cr_font_size_is_predefined_absolute_font_size 
+				(enum CRPredefinedAbsoluteFontSize a_font_size)
 {
-        if ((unsigned)a_font_size < NB_PREDEFINED_ABSOLUTE_FONT_SIZES) {
+        if (a_font_size >= FONT_SIZE_XX_SMALL
+            && a_font_size < NB_PREDEFINED_ABSOLUTE_FONT_SIZES) {
                 return TRUE ;
         } else {
                 return FALSE ;
         }
 }
 
+/**
+ * cr_font_size_adjust_to_string:
+ * @a_this: the instance of #CRFontSizeAdjust.
+ *
+ * Returns the serialized form of #CRFontSizeAdjust
+ */
 gchar *
-cr_font_size_adjust_to_string (CRFontSizeAdjust * a_this)
+cr_font_size_adjust_to_string (CRFontSizeAdjust const * a_this)
 {
         gchar *str = NULL;
 
@@ -547,9 +689,9 @@ cr_font_size_adjust_to_string (CRFontSizeAdjust * a_this)
                 break;
         case FONT_SIZE_ADJUST_NUMBER:
                 if (a_this->num)
-                        str = (gchar *)cr_num_to_string (a_this->num);
+                        str = cr_num_to_string (a_this->num);
                 else
-                        str = g_strdup ("unknow font-size-adjust property value"); // Should raise an error no?
+                        str = g_strdup ("unknow font-size-adjust property value"); /* Should raise an error no?*/
                 break;
         case FONT_SIZE_ADJUST_INHERIT:
                 str = g_strdup ("inherit");
@@ -557,6 +699,13 @@ cr_font_size_adjust_to_string (CRFontSizeAdjust * a_this)
         return str;
 }
 
+/**
+ * cr_font_style_to_string:
+ * @a_code: the current instance of #CRFontStyle .
+ *
+ * Returns the serialized #CRFontStyle. The caller must free the returned
+ * string using g_free().
+ */
 const gchar *
 cr_font_style_to_string (enum CRFontStyle a_code)
 {
@@ -582,6 +731,13 @@ cr_font_style_to_string (enum CRFontStyle a_code)
         return str;
 }
 
+/**
+ * cr_font_variant_to_string:
+ * @a_code: the current instance of #CRFontVariant.
+ *
+ * Returns the serialized form of #CRFontVariant. The caller has
+ * to free the returned string using g_free().
+ */
 const gchar *
 cr_font_variant_to_string (enum CRFontVariant a_code)
 {
@@ -601,10 +757,19 @@ cr_font_variant_to_string (enum CRFontVariant a_code)
         return str;
 }
 
+/**
+ * cr_font_weight_get_bolder:
+ * @a_weight: the #CRFontWeight to consider.
+ *
+ * Returns a font weight bolder than @a_weight
+ */
 enum CRFontWeight
 cr_font_weight_get_bolder (enum CRFontWeight a_weight)
 {
-        if (a_weight >= NB_FONT_WEIGHTS) {
+        if (a_weight == FONT_WEIGHT_INHERIT) {
+                cr_utils_trace_info ("can't return a bolder weight for FONT_WEIGHT_INHERIT") ;
+                return a_weight;
+        } else if (a_weight >= FONT_WEIGHT_900) {
                 return FONT_WEIGHT_900 ;
         } else if (a_weight < FONT_WEIGHT_NORMAL) {
                 return FONT_WEIGHT_NORMAL ;
@@ -613,10 +778,16 @@ cr_font_weight_get_bolder (enum CRFontWeight a_weight)
                 cr_utils_trace_info ("FONT_WEIGHT_BOLDER or FONT_WEIGHT_LIGHTER should not appear here") ;
                 return FONT_WEIGHT_NORMAL ;
         } else {
-                return (enum CRFontWeight)(a_weight << 1) ;
+                return a_weight << 1 ;
         }
 }
 
+/**
+ * cr_font_weight_to_string:
+ * @a_code: the font weight to consider.
+ *
+ * Returns the serialized form of #CRFontWeight.
+ */
 const gchar *
 cr_font_weight_to_string (enum CRFontWeight a_code)
 {
@@ -672,6 +843,12 @@ cr_font_weight_to_string (enum CRFontWeight a_code)
         return str;
 }
 
+/**
+ * cr_font_stretch_to_string:
+ * @a_code: the instance of #CRFontStretch to consider.
+ *
+ * Returns the serialized form of #CRFontStretch.
+ */
 const gchar *
 cr_font_stretch_to_string (enum CRFontStretch a_code)
 {
@@ -718,6 +895,11 @@ cr_font_stretch_to_string (enum CRFontStretch a_code)
         return str;
 }
 
+/**
+ * cr_font_size_destroy:
+ * @a_font_size: the font size to destroy
+ *
+ */
 void
 cr_font_size_destroy (CRFontSize * a_font_size)
 {
@@ -730,11 +912,17 @@ cr_font_size_destroy (CRFontSize * a_font_size)
  *'font-size-adjust' manipulation function definition
  *******************************************************/
 
+/**
+ * cr_font_size_adjust_new:
+ *
+ * Returns a newly built instance of #CRFontSizeAdjust
+ */
 CRFontSizeAdjust *
 cr_font_size_adjust_new (void)
 {
-        CRFontSizeAdjust *result =
-		     (CRFontSizeAdjust *)g_try_malloc (sizeof (CRFontSizeAdjust));
+        CRFontSizeAdjust *result = NULL;
+
+        result = g_try_malloc (sizeof (CRFontSizeAdjust));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
@@ -744,6 +932,11 @@ cr_font_size_adjust_new (void)
         return result;
 }
 
+/**
+ * cr_font_size_adjust_destroy:
+ * @a_this: the current instance of #CRFontSizeAdjust.
+ *
+ */
 void
 cr_font_size_adjust_destroy (CRFontSizeAdjust * a_this)
 {
diff --git a/src/cr-fonts.h b/src/cr-fonts.h
index 4544618..9eaeeeb 100644
--- a/src/cr-fonts.h
+++ b/src/cr-fonts.h
@@ -25,7 +25,6 @@
 
 #ifndef __CR_FONTS_H__
 #define __CR_FONTS_H__
-#endif
 
 #include "cr-utils.h"
 #include "cr-num.h"
@@ -236,7 +235,7 @@ cr_font_family_append (CRFontFamily *a_this,
 		       CRFontFamily *a_family_to_append) ;
 
 guchar *
-cr_font_family_to_string (CRFontFamily *a_this,
+cr_font_family_to_string (CRFontFamily const *a_this,
                           gboolean a_walk_font_family_list) ;
 
 CRFontFamily *
@@ -259,7 +258,7 @@ CRFontSize * cr_font_size_new (void) ;
 enum CRStatus cr_font_size_clear (CRFontSize *a_this) ;
 
 enum CRStatus cr_font_size_copy (CRFontSize *a_dst, 
-                                 CRFontSize *a_src) ;
+                                 CRFontSize const *a_src) ;
 enum CRStatus cr_font_size_set_predefined_absolute_font_size (CRFontSize *a_this, 
                                                               enum CRPredefinedAbsoluteFontSize a_predefined) ;
 enum CRStatus cr_font_size_set_relative_font_size (CRFontSize *a_this,
@@ -271,9 +270,9 @@ enum CRStatus cr_font_size_set_absolute_font_size (CRFontSize *a_this,
 
 enum CRStatus cr_font_size_set_to_inherit (CRFontSize *a_this) ;
 
-gboolean cr_font_size_is_set_to_inherit (CRFontSize *a_this) ;
+gboolean cr_font_size_is_set_to_inherit (CRFontSize const *a_this) ;
 
-gchar* cr_font_size_to_string (CRFontSize *a_this) ;
+gchar* cr_font_size_to_string (CRFontSize const *a_this) ;
 
 void cr_font_size_destroy (CRFontSize *a_font_size) ;
 
@@ -283,7 +282,7 @@ void cr_font_size_destroy (CRFontSize *a_font_size) ;
 
 CRFontSizeAdjust * cr_font_size_adjust_new (void) ;
 
-gchar * cr_font_size_adjust_to_string (CRFontSizeAdjust *a_this) ;
+gchar * cr_font_size_adjust_to_string (CRFontSizeAdjust const *a_this) ;
 
 void cr_font_size_adjust_destroy (CRFontSizeAdjust *a_this) ;
 
@@ -312,3 +311,5 @@ const gchar * cr_font_variant_to_string (enum CRFontVariant a_code) ;
 const gchar * cr_font_stretch_to_string (enum CRFontStretch a_code) ;
 
 G_END_DECLS
+
+#endif
diff --git a/src/cr-input.c b/src/cr-input.c
index 8613292..3cc283e 100644
--- a/src/cr-input.c
+++ b/src/cr-input.c
@@ -27,7 +27,8 @@
 #include "cr-enc-handler.h"
 
 /**
- * file
+ * CRInput:
+ *
  *The definition of the #CRInput class.
  */
 
@@ -87,14 +88,16 @@ static CRInput *cr_input_new_real (void);
 static CRInput *
 cr_input_new_real (void)
 {
-        CRInput *result = (CRInput *)g_try_malloc (sizeof (CRInput));
+        CRInput *result = NULL;
+
+        result = g_try_malloc (sizeof (CRInput));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
         }
         memset (result, 0, sizeof (CRInput));
 
-        PRIVATE (result) = (CRInputPriv *)g_try_malloc (sizeof (CRInputPriv));
+        PRIVATE (result) = g_try_malloc (sizeof (CRInputPriv));
         if (!PRIVATE (result)) {
                 cr_utils_trace_info ("Out of memory");
                 g_free (result);
@@ -110,15 +113,17 @@ cr_input_new_real (void)
  ***************/
 
 /**
- *Creates a new input stream from a memory buffer.
- * param a_buf the memory buffer to create the input stream from.
+ * cr_input_new_from_buf:
+ * a_buf: the memory buffer to create the input stream from.
  *The #CRInput keeps this pointer so user should not free it !.
- * param a_len the size of the input buffer.
- * param a_enc the buffer's encoding.
- * param a_free_buf if set to TRUE, this a_buf will be freed
+ * a_len: the size of the input buffer.
+ * a_enc: the buffer's encoding.
+ * a_free_buf: if set to TRUE, this a_buf will be freed
  *at the destruction of this instance. If set to false, it is up
  *to the caller to free it.
- * return the newly built instance of #CRInput.
+ *
+ *Creates a new input stream from a memory buffer.
+ *Returns the newly built instance of #CRInput.
  */
 CRInput *
 cr_input_new_from_buf (guchar * a_buf,
@@ -175,13 +180,14 @@ cr_input_new_from_buf (guchar * a_buf,
 }
 
 /**
+ * cr_input_new_from_uri:
+ * a_file_uri: the file to create *the input stream from.
+ * a_enc: the encoding of the file *to create the input from.
+ *
  *Creates a new input stream from
  *a file.
- * param a_file_uri the file to create
- *the input stream from.
- * param a_enc the encoding of the file
- *to create the input from
- * return the newly created input stream if
+ *
+ *Returns the newly created input stream if
  *this method could read the file and create it,
  *NULL otherwise.
  */
@@ -234,7 +240,7 @@ cr_input_new_from_uri (const gchar * a_file_uri, enum CREncoding a_enc)
 
                 if (status == CR_OK) {
                         /*read went well */
-                        buf = (guchar *)g_realloc (buf, len + CR_INPUT_MEM_CHUNK_SIZE);
+                        buf = g_realloc (buf, len + CR_INPUT_MEM_CHUNK_SIZE);
                         memcpy (buf + len, tmp_buf, nb_read);
                         len += nb_read;
                         buf_size += CR_INPUT_MEM_CHUNK_SIZE;
@@ -268,8 +274,10 @@ cr_input_new_from_uri (const gchar * a_file_uri, enum CREncoding a_enc)
 }
 
 /**
+ * cr_input_destroy:
+ * a_this: the current instance of #CRInput.
+ *
  *The destructor of the #CRInput class.
- * param a_this the current instance of #CRInput.
  */
 void
 cr_input_destroy (CRInput * a_this)
@@ -291,9 +299,11 @@ cr_input_destroy (CRInput * a_this)
 }
 
 /**
+ * cr_input_ref:
+ * a_this: the current instance of #CRInput.
+ *
  *Increments the reference count of the current
  *instance of #CRInput.
- * param a_this the current instance of #CRInput.
  */
 void
 cr_input_ref (CRInput * a_this)
@@ -304,11 +314,14 @@ cr_input_ref (CRInput * a_this)
 }
 
 /**
+ * cr_input_unref:
+ * a_this: the current instance of #CRInput.
+ *
  *Decrements the reference count of this instance
  *of #CRInput. If the reference count goes down to
  *zero, this instance is destroyed.
- * param a_this the current instance of #CRInput.
  *
+ * Returns TRUE if the instance of #CRInput got destroyed, false otherwise.
  */
 gboolean
 cr_input_unref (CRInput * a_this)
@@ -327,18 +340,21 @@ cr_input_unref (CRInput * a_this)
 }
 
 /**
- *Tests wether the current instance of
- *#CRInput has reached its input buffer.
- * param a_this the current instance of #CRInput.
- * param a_end_of_input out parameter. Is set to TRUE if
+ * cr_input_end_of_input:
+ * a_this: the current instance of #CRInput.
+ * a_end_of_input: out parameter. Is set to TRUE if
  *the current instance has reached the end of its input buffer,
  *FALSE otherwise.
- * param CR_OK upon successful completion, an error code otherwise.
- *Note that all the out parameters of this method are valid if
- *and only if this method returns CR_OK.
+ *
+ *Tests wether the current instance of
+ *#CRInput has reached its input buffer.
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
+ * Note that all the out parameters of this method are valid if
+ * and only if this method returns CR_OK.
  */
 enum CRStatus
-cr_input_end_of_input (CRInput * a_this, gboolean * a_end_of_input)
+cr_input_end_of_input (CRInput const * a_this, gboolean * a_end_of_input)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && a_end_of_input, CR_BAD_PARAM_ERROR);
@@ -350,13 +366,14 @@ cr_input_end_of_input (CRInput * a_this, gboolean * a_end_of_input)
 }
 
 /**
+ * cr_input_get_nb_bytes_left:
+ * a_this: the current instance of #CRInput.
+ *
  *Returns the number of bytes left in the input stream
- *before the end.
- * param a_this the current instance of #CRInput.
- * return the number of characters left or -1 in case of error.
+ *before the end, -1 in case of error.
  */
 glong
-cr_input_get_nb_bytes_left (CRInput * a_this)
+cr_input_get_nb_bytes_left (CRInput const * a_this)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this), -1);
         g_return_val_if_fail (PRIVATE (a_this)->nb_bytes
@@ -371,14 +388,16 @@ cr_input_get_nb_bytes_left (CRInput * a_this)
 }
 
 /**
- *Returns the next byte of the input.
- *Update the state of the input so that
+ * cr_input_read_byte:
+ * a_this: the current instance of #CRInput.
+ * a_byte: out parameter the returned byte.
+ *
+ *Gets the next byte of the input.
+ *Updates the state of the input so that
  *the next invocation of this method  returns
  *the next coming byte.
  *
- * param a_this the current instance of #CRInput.
- * param a_byte out parameter the returned byte.
- * return CR_OK upon successful completion, an error code
+ *Returns CR_OK upon successful completion, an error code
  *otherwise. All the out parameters of this method are valid if
  *and only if this method returns CR_OK.
  */
@@ -407,11 +426,14 @@ cr_input_read_byte (CRInput * a_this, guchar * a_byte)
 }
 
 /**
+ * cr_input_read_char:
+ * a_this: the current instance of CRInput.
+ * a_char: out parameter. The read character.
+ *
  *Reads an unicode character from the current instance of
  *#CRInput.
- * param a_this the current instance of CRInput.
- * param a_char out parameter. The read character.
- * return CR_OK upon successful completion, an error code
+ *
+ *Returns CR_OK upon successful completion, an error code
  *otherwise.
  */
 enum CRStatus
@@ -462,11 +484,13 @@ cr_input_read_char (CRInput * a_this, guint32 * a_char)
 }
 
 /**
+ * cr_input_set_line_num:
+ * a_this: the "this pointer" of the current instance of #CRInput.
+ * a_line_num: the new line number.
+ *
  *Setter of the current line number.
- * param a_this the "this pointer" of the current instance of
- *#CRInput.
- * param a_line_num the new line number.
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Return CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_input_set_line_num (CRInput * a_this, glong a_line_num)
@@ -479,14 +503,16 @@ cr_input_set_line_num (CRInput * a_this, glong a_line_num)
 }
 
 /**
+ * cr_input_get_line_num:
+ * a_this: the "this pointer" of the current instance of #CRInput.
+ * a_line_num: the returned line number.
+ *
  *Getter of the current line number.
- * param a_this the "this pointer" of the current instance of
- *#CRInput.
- * param a_line_num the returned line number.
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
-cr_input_get_line_num (CRInput * a_this, glong * a_line_num)
+cr_input_get_line_num (CRInput const * a_this, glong * a_line_num)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && a_line_num, CR_BAD_PARAM_ERROR);
@@ -497,11 +523,13 @@ cr_input_get_line_num (CRInput * a_this, glong * a_line_num)
 }
 
 /**
+ * cr_input_set_column_num:
+ * a_this: the "this pointer" of the current instance of #CRInput.
+ * a_col: the new column number.
+ *
  *Setter of the current column number.
- * param a_this the "this pointer" of the current instance of
- *#CRInput.
- * param a_col the new column number.
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_input_set_column_num (CRInput * a_this, glong a_col)
@@ -514,14 +542,16 @@ cr_input_set_column_num (CRInput * a_this, glong a_col)
 }
 
 /**
+ * cr_input_get_column_num:
+ * a_this: the "this pointer" of the current instance of #CRInput.
+ * a_col: out parameter
+ *
  *Getter of the current column number.
- * param a_this the "this pointer" of the current instance of
- *#CRInput.
- * param a_col out parameter
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
-cr_input_get_column_num (CRInput * a_this, glong * a_col)
+cr_input_get_column_num (CRInput const * a_this, glong * a_col)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this) && a_col,
                               CR_BAD_PARAM_ERROR);
@@ -532,10 +562,13 @@ cr_input_get_column_num (CRInput * a_this, glong * a_col)
 }
 
 /**
+ * cr_input_increment_line_num:
+ * a_this: the "this pointer" of the current instance of #CRInput.
+ * a_increment: the increment to add to the line number.
+ *
  *Increments the current line number.
- * param a_this the "this pointer" of the current instance of
- *#CRInput.
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_input_increment_line_num (CRInput * a_this, glong a_increment)
@@ -548,10 +581,13 @@ cr_input_increment_line_num (CRInput * a_this, glong a_increment)
 }
 
 /**
+ * cr_input_increment_col_num:
+ * a_this: the "this pointer" of the current instance of #CRInput.
+ * a_increment: the increment to add to the column number.
+ *
  *Increments the current column number.
- * param a_this the "this pointer" of the current instance of
- *#CRInput.
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_input_increment_col_num (CRInput * a_this, glong a_increment)
@@ -564,13 +600,15 @@ cr_input_increment_col_num (CRInput * a_this, glong a_increment)
 }
 
 /**
+ * cr_input_consume_char:
+ * a_this: the this pointer.
+ * a_char: the character to consume. If set to zero,
+ *consumes any character.
+ *
  *Consumes the next character of the input stream if
  *and only if that character equals a_char.
  *
- * param a_this the this pointer.
- * param a_char the character to consume. If set to zero,
- *consumes any character.
- * return CR_OK upon successful completion, CR_PARSING_ERROR if
+ *Returns CR_OK upon successful completion, CR_PARSING_ERROR if
  *next char is different from a_char, an other error code otherwise
  */
 enum CRStatus
@@ -595,21 +633,23 @@ cr_input_consume_char (CRInput * a_this, guint32 a_char)
 }
 
 /**
+ * cr_input_consume_chars:
+ * a_this: the this pointer of the current instance of #CRInput.
+ * a_char: the character to consume.
+ * a_nb_char: in/out parameter. The number of characters to consume.
+ *If set to a negative value, the function will consume all the occurences
+ *of a_char found.
+ *After return, if the return value equals CR_OK, this variable contains 
+ *the number of characters actually consumed.
+ *
  *Consumes up to a_nb_char occurences of the next contiguous characters 
  *which equal a_char. Note that the next character of the input stream
  **MUST* equal a_char to trigger the consumption, or else, the error
  *code CR_PARSING_ERROR is returned.
  *If the number of contiguous characters that equals a_char is less than
  *a_nb_char, then this function consumes all the characters it can consume.
- *
- * param a_this the this pointer of the current instance of #CRInput.
- * param a_char the character to consume.
- * param a_nb_char in/out parameter. The number of characters to consume.
- *If set to a negative value, the function will consume all the occurences
- *of a_char found.
- *After return, if the return value equals CR_OK, this variable contains 
- *the number of characters actually consumed.
- * return CR_OK if at least one character has been consumed, an error code
+ * 
+ *Returns CR_OK if at least one character has been consumed, an error code
  *otherwise.
  */
 enum CRStatus
@@ -643,13 +683,15 @@ cr_input_consume_chars (CRInput * a_this, guint32 a_char, gulong * a_nb_char)
 }
 
 /**
+ * cr_input_consume_white_spaces:
+ * a_this: the "this pointer" of the current instance of #CRInput.
+ * a_nb_chars: in/out parameter. The number of white spaces to
+ *consume. After return, holds the number of white spaces actually consumed.
+ *
  *Same as cr_input_consume_chars() but this one consumes white
  *spaces.
  *
- * param a_this the "this pointer" of the current instance of #CRInput.
- * param a_nb_chars in/out parameter. The number of white spaces to
- *consume. After return, holds the number of white spaces actually consumed.
- * return CR_OK upon successful completion, an error code otherwise.
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_input_consume_white_spaces (CRInput * a_this, gulong * a_nb_chars)
@@ -688,17 +730,20 @@ cr_input_consume_white_spaces (CRInput * a_this, gulong * a_nb_chars)
 }
 
 /**
+ * cr_input_peek_char:
+ * a_this: the current instance of #CRInput.
+ * a_char: out parameter. The returned character.
+ *
  *Same as cr_input_read_char() but does not update the
  *internal state of the input stream. The next call
  *to cr_input_peek_char() or cr_input_read_char() will thus
  *return the same character as the current one.
- * param a_this the current instance of #CRInput.
- * param a_char out parameter. The returned character.
- * return CR_OK upon successful completion, an error code
+ *
+ *Returns CR_OK upon successful completion, an error code
  *otherwise.
  */
 enum CRStatus
-cr_input_peek_char (CRInput * a_this, guint32 * a_char)
+cr_input_peek_char (CRInput const * a_this, guint32 * a_char)
 {
         enum CRStatus status = CR_OK;
         glong consumed = 0,
@@ -721,12 +766,20 @@ cr_input_peek_char (CRInput * a_this, guint32 * a_char)
         status = cr_utils_read_char_from_utf8_buf
                 (PRIVATE (a_this)->in_buf +
                  PRIVATE (a_this)->next_byte_index,
-                 nb_bytes_left, a_char, (gulong *)&consumed);
+                 nb_bytes_left, a_char, &consumed);
 
         return status;
 }
 
 /**
+ * cr_input_peek_byte:
+ * a_this: the current instance of #CRInput.
+ * a_origin: the origin to consider in the calculation
+ *of the position of the byte to peek.
+ * a_offset: the offset of the byte to peek, starting from
+ *the origin specified by a_origin.
+ * a_byte: out parameter the peeked byte.
+ *
  *Gets a byte from the input stream,
  *starting from the current position in the input stream.
  *Unlike cr_input_peek_next_byte() this method
@@ -734,21 +787,12 @@ cr_input_peek_char (CRInput * a_this, guint32 * a_char)
  *Subsequent calls to cr_input_peek_byte with the same arguments
  *will return the same byte.
  *
- * param a_this the current instance of #CRInput.
- * param a_origin the origin to consider in the calculation
- *of the position of the byte to peek.
- * param a_offset the offset of the byte to peek, starting from
- *the origin specified by a_origin.
- * param a_byte out parameter the peeked byte.
- * return CR_OK upon successful completion or,
- *
- *<ul>
- *<li>CR_BAD_PARAM_ERROR if at least one of the parameters is invalid</li>
- *<li>CR_OUT_OF_BOUNDS_ERROR if the indexed byte is out of bounds</li>
- *</ul>
+ *Returns CR_OK upon successful completion or,
+ *CR_BAD_PARAM_ERROR if at least one of the parameters is invalid;
+ *CR_OUT_OF_BOUNDS_ERROR if the indexed byte is out of bounds.
  */
 enum CRStatus
-cr_input_peek_byte (CRInput * a_this, enum CRSeekPos a_origin,
+cr_input_peek_byte (CRInput const * a_this, enum CRSeekPos a_origin,
                     gulong a_offset, guchar * a_byte)
 {
         gulong abs_offset = 0;
@@ -786,18 +830,21 @@ cr_input_peek_byte (CRInput * a_this, enum CRSeekPos a_origin,
 }
 
 /**
- *Same as cr_input_peek_byte() but with a simplified
- *interface.
- * param a_this the current byte input stream.
- * param a_offset the offset of the byte to peek, starting
+ * cr_input_peek_byte2:
+ * a_this: the current byte input stream.
+ * a_offset: the offset of the byte to peek, starting
  *from the current input position pointer.
- * param a_eof out parameter. Is set to true is we reach end of
+ * a_eof: out parameter. Is set to true is we reach end of
  *stream. If set to NULL by the caller, this parameter is not taken
  *in account.
- * return the read byte or 0 if something bad happened.
+ *
+ *Same as cr_input_peek_byte() but with a simplified
+ *interface.
+ *
+ *Returns the read byte or 0 if something bad happened.
  */
 guchar
-cr_input_peek_byte2 (CRInput * a_this, gulong a_offset, gboolean * a_eof)
+cr_input_peek_byte2 (CRInput const * a_this, gulong a_offset, gboolean * a_eof)
 {
         guchar result = 0;
         enum CRStatus status = CR_ERROR;
@@ -817,12 +864,15 @@ cr_input_peek_byte2 (CRInput * a_this, gulong a_offset, gboolean * a_eof)
 }
 
 /**
- *Returns the memory address of the byte located at a given offset
- *in the input stream.
- * param a_this the current instance of #CRInput.
- * param a_offset the offset of the byte in the input stream starting
+ * cr_input_get_byte_addr:
+ * a_this: the current instance of #CRInput.
+ * a_offset: the offset of the byte in the input stream starting
  *from the beginning of the stream.
- * return the address, otherwise NULL if an error occured.
+ *
+ *Gets the memory address of the byte located at a given offset
+ *in the input stream.
+ *
+ *Returns the address, otherwise NULL if an error occured.
  */
 guchar *
 cr_input_get_byte_addr (CRInput * a_this, gulong a_offset)
@@ -837,10 +887,13 @@ cr_input_get_byte_addr (CRInput * a_this, gulong a_offset)
 }
 
 /**
- *Returns the address of the current character pointer.
- * param a_this the current input stream
- * param a_offset out parameter. The returned address.
- * return CR_OK upon successful completion, an error code otherwise.
+ * cr_input_get_cur_byte_addr:
+ * a_this: the current input stream
+ * a_offset: out parameter. The returned address.
+ *
+ *Gets the address of the current character pointer.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_input_get_cur_byte_addr (CRInput * a_this, guchar ** a_offset)
@@ -859,23 +912,20 @@ cr_input_get_cur_byte_addr (CRInput * a_this, guchar ** a_offset)
 }
 
 /**
+ * cr_input_seek_index:
+ * a_this: the current instance of #CRInput.
+ * a_origin: the origin to consider during the calculation
+ *of the absolute position of the new "current byte index".
+ * a_pos: the relative offset of the new "current byte index."
+ *This offset is relative to the origin a_origin.
+ *
  *Sets the "current byte index" of the current instance
  *of #CRInput. Next call to cr_input_get_byte() will return
  *the byte next after the new "current byte index".
  *
- * param a_this the current instance of #CRInput.
- *
- * param a_origin the origin to consider during the calculation
- *of the absolute position of the new "current byte index".
- *
- * param a_pos the relative offset of the new "current byte index."
- *This offset is relative to the origin a_origin.
- *
- * return CR_OK upon successful completion otherwise returns
- *<ul>
- *<li>CR_BAD_PARAM_ERROR if at least one of the parameters is not valid</li>
- *<li>CR_OUT_BOUNDS_ERROR</li>
- *</ul>
+ *Returns CR_OK upon successful completion otherwise returns
+ *CR_BAD_PARAM_ERROR if at least one of the parameters is not valid
+ *or CR_OUT_BOUNDS_ERROR in case of error.
  */
 enum CRStatus
 cr_input_seek_index (CRInput * a_this, enum CRSeekPos a_origin, gint a_pos)
@@ -916,26 +966,24 @@ cr_input_seek_index (CRInput * a_this, enum CRSeekPos a_origin, gint a_pos)
 }
 
 /**
+ * cr_input_get_cur_pos:
+ * a_this: the current instance of #CRInput.
+ * a_pos: out parameter. The returned position.
+ *
  *Gets the position of the "current byte index" which
  *is basically the position of the last returned byte in the
  *input stream.
  *
- * param a_this the current instance of #CRInput.
- *
- * param a_pos out parameter. The returned position.
- *
- * return CR_OK upon successful completion. Otherwise,
- *<ul>
- *<li>CR_BAD_PARAMETER_ERROR if at least one of the arguments is invalid.</li>
- *<li>CR_START_OF_INPUT if no call to either cr_input_read_byte()
+ *Returns CR_OK upon successful completion. Otherwise,
+ *CR_BAD_PARAMETER_ERROR if at least one of the arguments is invalid.
+ *CR_START_OF_INPUT if no call to either cr_input_read_byte()
  *or cr_input_seek_index() have been issued before calling 
- *cr_input_get_cur_pos()</li>
- *</ul>
+ *cr_input_get_cur_pos()
  *Note that the out parameters of this function are valid if and only if this
  *function returns CR_OK.
  */
 enum CRStatus
-cr_input_get_cur_pos (CRInput * a_this, CRInputPos * a_pos)
+cr_input_get_cur_pos (CRInput const * a_this, CRInputPos * a_pos)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this) && a_pos,
                               CR_BAD_PARAM_ERROR);
@@ -950,17 +998,20 @@ cr_input_get_cur_pos (CRInput * a_this, CRInputPos * a_pos)
 }
 
 /**
+ * cr_input_get_parsing_location:
+ * a_this: the current instance of #CRInput
+ * a_loc: the set parsing location.
+ *
  *Gets the current parsing location.
  *The Parsing location is a public datastructure that
  *represents the current line/column/byte offset/ in the input
  *stream.
- * param a_this the current instance of #CRInput
- * param a_loc the set parsing location.
- * return CR_OK upon successful completion, an error
+ *
+ *Returns CR_OK upon successful completion, an error
  *code otherwise.
  */
 enum CRStatus
-cr_input_get_parsing_location (CRInput *a_this,
+cr_input_get_parsing_location (CRInput const *a_this,
                                CRParsingLocation *a_loc)
 {
         g_return_val_if_fail (a_this 
@@ -979,17 +1030,20 @@ cr_input_get_parsing_location (CRInput *a_this,
 }
 
 /**
+ * cr_input_get_cur_index:
+ * a_this: the "this pointer" of the current instance of
+ *#CRInput
+ * a_index: out parameter. The returned index.
+ *
  *Getter of the next byte index. 
  *It actually returns the index of the
  *next byte to be read.
- * param a_this the "this pointer" of the current instance of
- *#CRInput
- * param a_index out parameter. The returned index.
- * return CR_OK upon successful completion, an error code
+ *
+ *Returns CR_OK upon successful completion, an error code
  *otherwise.
  */
 enum CRStatus
-cr_input_get_cur_index (CRInput * a_this, glong * a_index)
+cr_input_get_cur_index (CRInput const * a_this, glong * a_index)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && a_index, CR_BAD_PARAM_ERROR);
@@ -1000,12 +1054,15 @@ cr_input_get_cur_index (CRInput * a_this, glong * a_index)
 }
 
 /**
+ * cr_input_set_cur_index:
+ * a_this: the "this pointer" of the current instance
+ *of #CRInput .
+ * a_index: the new index to set.
+ *
  *Setter of the next byte index.
  *It sets the index of the next byte to be read.
- * param a_this the "this pointer" of the current instance
- *of #CRInput .
- * param a_index the new index to set.
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_input_set_cur_index (CRInput * a_this, glong a_index)
@@ -1018,10 +1075,13 @@ cr_input_set_cur_index (CRInput * a_this, glong a_index)
 }
 
 /**
+ * cr_input_set_end_of_file:
+ * a_this: the current instance of #CRInput.
+ * a_eof: the new end of file flag.
+ *
  *Sets the end of file flag.
- * param a_this the current instance of #CRInput.
- * param a_eof the new end of file flag.
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_input_set_end_of_file (CRInput * a_this, gboolean a_eof)
@@ -1034,14 +1094,17 @@ cr_input_set_end_of_file (CRInput * a_this, gboolean a_eof)
 }
 
 /**
- *Gets the end of file flag.
- * param a_this the current instance of #CRInput.
- * param a_eof out parameter the place to put the end of
+ * cr_input_get_end_of_file:
+ * a_this: the current instance of #CRInput.
+ * a_eof: out parameter the place to put the end of
  *file flag.
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Gets the end of file flag.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
-cr_input_get_end_of_file (CRInput * a_this, gboolean * a_eof)
+cr_input_get_end_of_file (CRInput const * a_this, gboolean * a_eof)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && a_eof, CR_BAD_PARAM_ERROR);
@@ -1052,10 +1115,13 @@ cr_input_get_end_of_file (CRInput * a_this, gboolean * a_eof)
 }
 
 /**
+ * cr_input_set_end_of_line:
+ * a_this: the current instance of #CRInput.
+ * a_eol: the new end of line flag.
+ *
  *Sets the end of line flag.
- * param a_this the current instance of #CRInput.
- * param a_eol the new end of line flag.
- * return CR_OK upon successful completion, an error code
+ *
+ *Returns CR_OK upon successful completion, an error code
  *otherwise.
  */
 enum CRStatus
@@ -1069,15 +1135,18 @@ cr_input_set_end_of_line (CRInput * a_this, gboolean a_eol)
 }
 
 /**
- *Gets the end of line flag of the current input.
- * param a_this the current instance of #CRInput
- * param a_eol out parameter. The place to put
+ * cr_input_get_end_of_line:
+ * a_this: the current instance of #CRInput
+ * a_eol: out parameter. The place to put
  *the returned flag
- * return CR_OK upon successful completion, an error code
+ *
+ *Gets the end of line flag of the current input.
+ *
+ *Returns CR_OK upon successful completion, an error code
  *otherwise.
  */
 enum CRStatus
-cr_input_get_end_of_line (CRInput * a_this, gboolean * a_eol)
+cr_input_get_end_of_line (CRInput const * a_this, gboolean * a_eol)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && a_eol, CR_BAD_PARAM_ERROR);
@@ -1088,14 +1157,17 @@ cr_input_get_end_of_line (CRInput * a_this, gboolean * a_eol)
 }
 
 /**
+ * cr_input_set_cur_pos:
+ * a_this: the "this pointer" of the current instance of
+ *#CRInput.
+ * a_pos: the new position.
+ *
  *Sets the current position in the input stream.
  *
- * param a_this the "this pointer" of the current instance of
- *#CRInput.
- * param a_pos the new position.
+ * Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
-cr_input_set_cur_pos (CRInput * a_this, CRInputPos * a_pos)
+cr_input_set_cur_pos (CRInput * a_this, CRInputPos const * a_pos)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this) && a_pos,
                               CR_BAD_PARAM_ERROR);
diff --git a/src/cr-input.h b/src/cr-input.h
index 976b73f..9eb402a 100644
--- a/src/cr-input.h
+++ b/src/cr-input.h
@@ -93,15 +93,15 @@ enum CRStatus
 cr_input_consume_white_spaces (CRInput *a_this, gulong *a_nb_chars) ;
 
 enum CRStatus
-cr_input_peek_byte (CRInput *a_this, enum CRSeekPos a_origin,
+cr_input_peek_byte (CRInput const *a_this, enum CRSeekPos a_origin,
                     gulong a_offset, guchar *a_byte) ;
 
 guchar 
-cr_input_peek_byte2 (CRInput *a_this, gulong a_offset, 
+cr_input_peek_byte2 (CRInput const *a_this, gulong a_offset,
                      gboolean *a_eof) ;
 
 enum CRStatus
-cr_input_peek_char (CRInput *a_this, guint32 *a_char) ;
+cr_input_peek_char (CRInput const *a_this, guint32 *a_char) ;
 
 guchar *
 cr_input_get_byte_addr (CRInput *a_this, 
@@ -115,29 +115,29 @@ cr_input_seek_index (CRInput *a_this,
                      enum CRSeekPos a_origin, gint a_pos) ;
 
 enum CRStatus
-cr_input_get_cur_index (CRInput *a_this, glong *a_index) ;
+cr_input_get_cur_index (CRInput const *a_this, glong *a_index) ;
 
 enum CRStatus
 cr_input_set_cur_index (CRInput *a_this, glong a_index) ;
 
 enum CRStatus
-cr_input_get_cur_pos (CRInput *a_this, CRInputPos * a_pos) ;
+cr_input_get_cur_pos (CRInput const *a_this, CRInputPos * a_pos) ;
 
 enum CRStatus
-cr_input_set_cur_pos (CRInput *a_this, CRInputPos *a_pos) ;
+cr_input_set_cur_pos (CRInput *a_this, CRInputPos const *a_pos) ;
 
 enum CRStatus
-cr_input_get_parsing_location (CRInput *a_this, 
+cr_input_get_parsing_location (CRInput const *a_this,
                                CRParsingLocation *a_loc) ;
 
 enum CRStatus
-cr_input_get_end_of_line (CRInput *a_this, gboolean *a_eol) ;
+cr_input_get_end_of_line (CRInput const *a_this, gboolean *a_eol) ;
 
 enum CRStatus
 cr_input_set_end_of_line (CRInput *a_this, gboolean a_eol) ;
 
 enum CRStatus
-cr_input_get_end_of_file (CRInput *a_this, gboolean *a_eof) ;
+cr_input_get_end_of_file (CRInput const *a_this, gboolean *a_eof) ;
 
 enum CRStatus
 cr_input_set_end_of_file (CRInput *a_this, gboolean a_eof) ;
@@ -146,13 +146,13 @@ enum CRStatus
 cr_input_set_line_num (CRInput *a_this, glong a_line_num) ;
 
 enum CRStatus
-cr_input_get_line_num (CRInput *a_this, glong *a_line_num) ;
+cr_input_get_line_num (CRInput const *a_this, glong *a_line_num) ;
 
 enum CRStatus
 cr_input_set_column_num (CRInput *a_this, glong a_col) ;
 
 enum CRStatus
-cr_input_get_column_num (CRInput *a_this, glong *a_col) ;
+cr_input_get_column_num (CRInput const *a_this, glong *a_col) ;
 
 enum CRStatus
 cr_input_increment_line_num (CRInput *a_this, 
@@ -163,10 +163,10 @@ cr_input_increment_col_num (CRInput *a_this,
                             glong a_increment) ;
         
 glong
-cr_input_get_nb_bytes_left (CRInput *a_this) ;
+cr_input_get_nb_bytes_left (CRInput const *a_this) ;
 
 enum CRStatus
-cr_input_end_of_input (CRInput *a_this, gboolean *a_end_of_input) ;
+cr_input_end_of_input (CRInput const *a_this, gboolean *a_end_of_input) ;
 
 G_END_DECLS
 
diff --git a/src/cr-num.c b/src/cr-num.c
index fb412a9..28c5df0 100644
--- a/src/cr-num.c
+++ b/src/cr-num.c
@@ -23,7 +23,8 @@
  */
 
 /**
- * file
+ * CRNum:
+ *
  *The definition
  *of the #CRNum class.
  */
@@ -32,15 +33,19 @@
 #include "string.h"
 
 /**
- *The default constructor of
+ * cr_num_new:
+ *
  *#CRNum.
- * return the newly built instance of
+ *
+ *Returns the newly built instance of
  *#CRNum.
  */
 CRNum *
 cr_num_new (void)
 {
-        CRNum *result = (CRNum *)g_try_malloc (sizeof (CRNum));
+        CRNum *result = NULL;
+
+        result = g_try_malloc (sizeof (CRNum));
 
         if (result == NULL) {
                 cr_utils_trace_info ("Out of memory");
@@ -53,16 +58,14 @@ cr_num_new (void)
 }
 
 /**
- *A constructor of #CRNum.
- * param a_is_natural indicates whether the intance of #CRNum is 
- *a natural number or not.
- * param a_integer_part the integer part of the instance 
- *of #CRNum
- * param a_decimal_part in case the instance of #CRNum
- *natural number (but a decimal one) this parameter
- *is the decimal part of the instance of #CRNum.
- * return the newly built instance of #CRNum or
- *NULL if an error arises.
+ * cr_num_new_with_val:
+ * @a_val: the numerical value of the number.
+ * @a_type: the type of number.
+ * 
+ * A constructor of #CRNum.
+ *
+ * Returns the newly built instance of #CRNum or
+ * NULL if an error arises.
  */
 CRNum *
 cr_num_new_with_val (gdouble a_val, enum CRNumType a_type)
@@ -80,16 +83,16 @@ cr_num_new_with_val (gdouble a_val, enum CRNumType a_type)
 }
 
 /**
- *Returns the string representation of the
- *current instance of #CRNum.
- * param a_this the current instance of #CRNum.
- * return the newly built string representation
+ * cr_num_to_string:
+ * a_this: the current instance of #CRNum.
+ *
+ *Returns the newly built string representation
  *of the current instance of #CRNum. The returned
  *string is NULL terminated. The caller *must*
  *free the returned string.
  */
 guchar *
-cr_num_to_string (CRNum * a_this)
+cr_num_to_string (CRNum const * a_this)
 {
         gdouble test_val = 0.0;
 
@@ -102,13 +105,11 @@ cr_num_to_string (CRNum * a_this)
         test_val = a_this->val - (glong) a_this->val;
 
         if (!test_val) {
-                tmp_char1 = (guchar *)g_strdup_printf ("%ld", (glong) a_this->val);
+                tmp_char1 = g_strdup_printf ("%ld", (glong) a_this->val);
         } else {
-                /* We can't use g_ascii_dtostr, because that sometimes uses
-                   e notation (which wouldn't be a valid number in CSS). */
-                size_t const buflen = 35;  /* fairly arbitrary. */
-                tmp_char1 = (guchar *)g_malloc (buflen);
-                g_ascii_formatd ((gchar *)tmp_char1, buflen, "%.15g", a_this->val);
+                tmp_char1 = g_new0 (char, G_ASCII_DTOSTR_BUF_SIZE + 1);
+                if (tmp_char1 != NULL)
+                        g_ascii_dtostr (tmp_char1, G_ASCII_DTOSTR_BUF_SIZE, a_this->val);
         }
 
         g_return_val_if_fail (tmp_char1, NULL);
@@ -192,8 +193,7 @@ cr_num_to_string (CRNum * a_this)
         }
 
         if (tmp_char2) {
-                result = (guchar *)g_strconcat (
-				    (gchar *)tmp_char1, (gchar *)tmp_char2, NULL);
+                result = g_strconcat (tmp_char1, tmp_char2, NULL);
                 g_free (tmp_char1);
         } else {
                 result = tmp_char1;
@@ -203,16 +203,19 @@ cr_num_to_string (CRNum * a_this)
 }
 
 /**
- *Copies an instance of #CRNum.
- * param a_src the instance of #CRNum to copy.
+ * cr_num_copy:
+ * a_src: the instance of #CRNum to copy.
  *Must be non NULL.
- * param a_dst the destination of the copy.
+ * a_dest: the destination of the copy.
  *Must be non NULL
- * return CR_OK upon successful completion, an
+ *
+ *Copies an instance of #CRNum.
+ *
+ *Returns CR_OK upon successful completion, an
  *error code otherwise.
  */
 enum CRStatus
-cr_num_copy (CRNum * a_dest, CRNum * a_src)
+cr_num_copy (CRNum * a_dest, CRNum const * a_src)
 {
         g_return_val_if_fail (a_dest && a_src, CR_BAD_PARAM_ERROR);
 
@@ -222,13 +225,16 @@ cr_num_copy (CRNum * a_dest, CRNum * a_src)
 }
 
 /**
+ * cr_num_dup:
+ * a_this: the instance of #CRNum to duplicate.
+ *
  *Duplicates an instance of #CRNum
- * param a_this the instance of #CRNum to duplicate.
- * return the newly created (duplicated) instance of #CRNum.
+ *
+ *Returns the newly created (duplicated) instance of #CRNum.
  *Must be freed by cr_num_destroy().
  */
 CRNum *
-cr_num_dup (CRNum * a_this)
+cr_num_dup (CRNum const * a_this)
 {
         CRNum *result = NULL;
         enum CRStatus status = CR_OK;
@@ -245,11 +251,14 @@ cr_num_dup (CRNum * a_this)
 }
 
 /**
+ * cr_num_set:
  *Sets an instance of #CRNum.
- * param a_this the current instance of #CRNum to be set.
- * param a_val the new numerical value to be hold by the current
+ * a_this: the current instance of #CRNum to be set.
+ * a_val: the new numerical value to be hold by the current
  *instance of #CRNum
- * param a_type the new type of #CRNum.
+ * a_type: the new type of #CRNum.
+ *
+ * Returns CR_OK upon succesful completion, an error code otherwise.
  */
 enum CRStatus
 cr_num_set (CRNum * a_this, gdouble a_val, enum CRNumType a_type)
@@ -263,15 +272,19 @@ cr_num_set (CRNum * a_this, gdouble a_val, enum CRNumType a_type)
 }
 
 /**
+ * cr_num_is_fixed_length:
+ * @a_this: the current instance of #CRNum .
+ *
  *Tests if the current instance of #CRNum is a fixed
  *length value or not. Typically a fixed length value
  *is anything from NUM_LENGTH_EM to NUM_LENGTH_PC.
  *See the definition of #CRNumType to see what we mean.
- * return TRUE if the instance of #CRNum is a fixed length number,
+ *
+ *Returns TRUE if the instance of #CRNum is a fixed length number,
  *FALSE otherwise.
  */
 gboolean
-cr_num_is_fixed_length (CRNum * a_this)
+cr_num_is_fixed_length (CRNum const * a_this)
 {
         gboolean result = FALSE;
 
@@ -285,9 +298,11 @@ cr_num_is_fixed_length (CRNum * a_this)
 }
 
 /**
- *The destructor of #CRNum.
- * param a_this the this pointer of
+ * cr_num_destroy:
+ * a_this: the this pointer of
  *the current instance of #CRNum.
+ *
+ *The destructor of #CRNum.
  */
 void
 cr_num_destroy (CRNum * a_this)
diff --git a/src/cr-num.h b/src/cr-num.h
index 83e9dc7..2b73aaf 100644
--- a/src/cr-num.h
+++ b/src/cr-num.h
@@ -102,20 +102,20 @@ cr_num_new_with_val (gdouble a_val,
                      enum CRNumType a_type) ;
 
 CRNum *
-cr_num_dup (CRNum *a_this) ;
+cr_num_dup (CRNum const *a_this) ;
 
 guchar *
-cr_num_to_string (CRNum *a_this) ;
+cr_num_to_string (CRNum const *a_this) ;
 
 enum CRStatus
-cr_num_copy (CRNum *a_dest, CRNum *a_src) ;
+cr_num_copy (CRNum *a_dest, CRNum const *a_src) ;
 
 enum CRStatus
 cr_num_set (CRNum *a_this, gdouble a_val, 
             enum CRNumType a_type) ;
 
 gboolean
-cr_num_is_fixed_length (CRNum *a_this) ;
+cr_num_is_fixed_length (CRNum const *a_this) ;
 
 void
 cr_num_destroy (CRNum *a_this) ;
diff --git a/src/cr-om-parser.c b/src/cr-om-parser.c
index b8d70e3..a62e98d 100644
--- a/src/cr-om-parser.c
+++ b/src/cr-om-parser.c
@@ -25,10 +25,9 @@
 #include "cr-utils.h"
 #include "cr-om-parser.h"
 
-#define UNUSED(_param) ((void)(_param))
-
 /**
- * file
+ * CROMParser:
+ *
  *The definition of the CSS Object Model Parser.
  *This parser uses (and sits) the SAC api of libcroco defined
  *in cr-parser.h and cr-doc-handler.h
@@ -112,8 +111,9 @@ struct _ParsingContext {
 static ParsingContext *
 new_parsing_context (void)
 {
-        ParsingContext *result = 
-		    (ParsingContext *)g_try_malloc (sizeof (ParsingContext));
+        ParsingContext *result = NULL;
+
+        result = g_try_malloc (sizeof (ParsingContext));
         if (!result) {
                 cr_utils_trace_info ("Out of Memory");
                 return NULL;
@@ -216,7 +216,7 @@ start_font_face (CRDocHandler * a_this,
         ParsingContext *ctxt = NULL;
         ParsingContext **ctxtptr = NULL;
 
-        UNUSED(a_location);
+        g_return_if_fail (a_this);
 
         g_return_if_fail (a_this);
 	ctxtptr = &ctxt;
@@ -315,8 +315,6 @@ charset (CRDocHandler * a_this, CRString * a_charset,
         ParsingContext *ctxt = NULL;
         ParsingContext **ctxtptr = NULL;
 
-        UNUSED(a_location);
-
         g_return_if_fail (a_this);
 	ctxtptr = &ctxt;
         status = cr_doc_handler_get_ctxt (a_this, (gpointer *) ctxtptr);
@@ -351,8 +349,6 @@ start_page (CRDocHandler * a_this,
         ParsingContext *ctxt = NULL;
         ParsingContext **ctxtptr = NULL;
 
-        UNUSED(a_location);
-
         g_return_if_fail (a_this);
 	ctxtptr = &ctxt;
         status = cr_doc_handler_get_ctxt (a_this, (gpointer *) ctxtptr);
@@ -430,8 +426,6 @@ start_media (CRDocHandler * a_this,
         ParsingContext **ctxtptr = NULL;
         GList *media_list = NULL;
 
-        UNUSED(a_location);
-
         g_return_if_fail (a_this);
 	ctxtptr = &ctxt;
         status = cr_doc_handler_get_ctxt (a_this, (gpointer *) ctxtptr);
@@ -499,8 +493,6 @@ import_style (CRDocHandler * a_this,
         ParsingContext **ctxtptr = NULL;
         GList *media_list = NULL ;
 
-        UNUSED(a_location);
-
         g_return_if_fail (a_this);
 	ctxtptr = &ctxt;
         status = cr_doc_handler_get_ctxt (a_this, (gpointer *) ctxtptr);
@@ -770,16 +762,19 @@ unrecoverable_error (CRDocHandler * a_this)
  ********************************************/
 
 /**
+ * cr_om_parser_new:
+ * a_input: the input stream.
+ *
  *Constructor of the CROMParser.
- * param a_input the input stream.
- * return the newly built instance of #CROMParser.
+ *Returns the newly built instance of #CROMParser.
  */
 CROMParser *
 cr_om_parser_new (CRInput * a_input)
 {
+        CROMParser *result = NULL;
         enum CRStatus status = CR_OK;
 
-        CROMParser *result = (CROMParser *)g_try_malloc (sizeof (CROMParser));
+        result = g_try_malloc (sizeof (CROMParser));
 
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
@@ -787,7 +782,7 @@ cr_om_parser_new (CRInput * a_input)
         }
 
         memset (result, 0, sizeof (CROMParser));
-        PRIVATE (result) = (CROMParserPriv *)g_try_malloc (sizeof (CROMParserPriv));
+        PRIVATE (result) = g_try_malloc (sizeof (CROMParserPriv));
 
         if (!PRIVATE (result)) {
                 cr_utils_trace_info ("Out of memory");
@@ -821,13 +816,16 @@ cr_om_parser_new (CRInput * a_input)
 }
 
 /**
+ * cr_om_parser_parse_buf:
+ * a_this: the current instance of #CROMParser.
+ * a_buf: the in memory buffer to parse.
+ * a_len: the length of the in memory buffer in number of bytes.
+ * a_enc: the encoding of the in memory buffer.
+ * a_result: out parameter the resulting style sheet
+ *
  *Parses the content of an in memory  buffer.
- * param a_this the current instance of #CROMParser.
- * param a_buf the in memory buffer to parse.
- * param a_len the length of the in memory buffer in number of bytes.
- * param a_enc the encoding of the in memory buffer.
- * param a_result out parameter the resulting style sheet
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_om_parser_parse_buf (CROMParser * a_this,
@@ -868,12 +866,15 @@ cr_om_parser_parse_buf (CROMParser * a_this,
 }
 
 /**
+ * cr_om_parser_simply_parse_buf:
+ * a_buf: the css2 in memory buffer.
+ * a_len: the length of the in memory buffer.
+ * a_enc: the encoding of the in memory buffer.
+ * a_result: out parameter. The resulting css2 style sheet.
+ *
  *The simpler way to parse an in memory css2 buffer.
- * param a_buf the css2 in memory buffer.
- * param a_len the length of the in memory buffer.
- * param a_enc the encoding of the in memory buffer.
- * param a_result out parameter. The resulting css2 style sheet.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_om_parser_simply_parse_buf (const guchar * a_buf,
@@ -903,16 +904,18 @@ cr_om_parser_simply_parse_buf (const guchar * a_buf,
 }
 
 /**
- *Parses a css2 stylesheet contained
- *in a file.
- * param a_this the current instance of the cssom parser.
- * param a_file_uri the uri of the file. 
+ * cr_om_parser_parse_file:
+ * a_this: the current instance of the cssom parser.
+ * a_file_uri: the uri of the file. 
  *(only local file paths are suppported so far)
- * param a_enc the encoding of the file.
- * param a_result out parameter. A pointer 
+ * a_enc: the encoding of the file.
+ * a_result: out parameter. A pointer 
  *the build css object model.
- * param CR_OK upon successfull completion, an error code
- *otherwise.
+ *
+ *Parses a css2 stylesheet contained
+ *in a file.
+ *
+ * Returns CR_OK upon succesful completion, an error code otherwise.
  */
 enum CRStatus
 cr_om_parser_parse_file (CROMParser * a_this,
@@ -952,12 +955,15 @@ cr_om_parser_parse_file (CROMParser * a_this,
 }
 
 /**
- *The simpler method to parse a css2 file.
- * param a_file_path the css2 local file path.
- * param a_enc the file encoding.
- * param a_result out parameter. The returned css stylesheet.
+ * cr_om_parser_simply_parse_file:
+ * a_file_path: the css2 local file path.
+ * a_enc: the file encoding.
+ * a_result: out parameter. The returned css stylesheet.
  *Must be freed by the caller using cr_stylesheet_destroy.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *The simpler method to parse a css2 file.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  *Note that this method uses cr_om_parser_parse_file() so both methods
  *have the same return values.
  */
@@ -987,14 +993,18 @@ cr_om_parser_simply_parse_file (const guchar * a_file_path,
 }
 
 /**
- *Parses three sheets located by their paths and build a cascade
- * param a_this the current instance of #CROMParser
- * param a_author_path the path to the author stylesheet
- * param a_user_path the path to the user stylesheet
- * param a_ua_path the path to the User Agent stylesheet
- * param a_result out parameter. The resulting cascade if the parsing
+ * cr_om_parser_parse_paths_to_cascade:
+ * a_this: the current instance of #CROMParser
+ * a_author_path: the path to the author stylesheet
+ * a_user_path: the path to the user stylesheet
+ * a_ua_path: the path to the User Agent stylesheet
+ * a_encoding: the encoding of the sheets.
+ * a_result: out parameter. The resulting cascade if the parsing
  *was okay
- * return CR_OK upon successful completion, an error code otherwise
+ *
+ *Parses three sheets located by their paths and build a cascade
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise
  */
 enum CRStatus
 cr_om_parser_parse_paths_to_cascade (CROMParser * a_this,
@@ -1014,7 +1024,7 @@ cr_om_parser_parse_paths_to_cascade (CROMParser * a_this,
 
         g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR);
 
-        memset (sheets, 0, sizeof (sheets));
+        memset (sheets, 0, sizeof (CRStyleSheet*) * 3);
         paths[0] = (guchar *) a_author_path;
         paths[1] = (guchar *) a_user_path;
         paths[2] = (guchar *) a_ua_path;
@@ -1043,13 +1053,17 @@ cr_om_parser_parse_paths_to_cascade (CROMParser * a_this,
 }
 
 /**
- *Parses three sheets located by their paths and build a cascade
- * param a_author_path the path to the author stylesheet
- * param a_user_path the path to the user stylesheet
- * param a_ua_path the path to the User Agent stylesheet
- * param a_result out parameter. The resulting cascade if the parsing
+ * cr_om_parser_simply_parse_paths_to_cascade:
+ * a_author_path: the path to the author stylesheet
+ * a_user_path: the path to the user stylesheet
+ * a_ua_path: the path to the User Agent stylesheet
+ * a_encoding: the encoding of the sheets.
+ * a_result: out parameter. The resulting cascade if the parsing
  *was okay
- * return CR_OK upon successful completion, an error code otherwise
+ *
+ *Parses three sheets located by their paths and build a cascade
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise
  */
 enum CRStatus
 cr_om_parser_simply_parse_paths_to_cascade (const guchar * a_author_path,
@@ -1080,8 +1094,10 @@ cr_om_parser_simply_parse_paths_to_cascade (const guchar * a_author_path,
 }
 
 /**
+ * cr_om_parser_destroy:
+ * a_this: the current instance of #CROMParser.
+ *
  *Destructor of the #CROMParser.
- * param a_this the current instance of #CROMParser.
  */
 void
 cr_om_parser_destroy (CROMParser * a_this)
diff --git a/src/cr-om-parser.h b/src/cr-om-parser.h
index 4fc6301..13d35b1 100644
--- a/src/cr-om-parser.h
+++ b/src/cr-om-parser.h
@@ -22,7 +22,7 @@
  */
 
 /*
- *$Id: cr-om-parser.h,v 1.9 2004/01/29 22:05:14 dodji Exp $
+ *$Id$
  */
 
 #ifndef __CR_OM_PARSER_H__
diff --git a/src/cr-parser.c b/src/cr-parser.c
index 5b0a56f..0fa1ffa 100644
--- a/src/cr-parser.c
+++ b/src/cr-parser.c
@@ -24,7 +24,8 @@
  */
 
 /**
- * file
+ * CRParser:
+ *
  *The definition of the #CRParser class.
  */
 
@@ -41,7 +42,7 @@
  *=====================================
  *
  *One must keep in mind
- *that css UA must comply with two syntax.
+ *that css UA must comply with two syntaxes.
  *
  *1/the specific syntax that defines the css language
  *for a given level of specificatin (e.g css2 syntax
@@ -136,8 +137,9 @@ struct _CRParserPriv {
 #define CHARS_TAB_SIZE 12
 
 /**
+ * IS_NUM:
+ * a_char: the char to test.
  *return TRUE if the character is a number ([0-9]), FALSE otherwise
- * param a_char the char to test.
  */
 #define IS_NUM(a_char) (((a_char) >= '0' && (a_char) <= '9')?TRUE:FALSE)
 
@@ -161,16 +163,18 @@ if ((status) != CR_OK) \
 }
 
 /**
- *same as CHECK_PARSING_STATUS() but this one pushes an error
- *on the parser error stack when an error arises.
- * param a_this the current instance of #CRParser .
- * param a_status the status to check. Is of type enum #CRStatus.
- * param a_is_exception in case of error, if is TRUE, the status
+ * CHECK_PARSING_STATUS_ERR:
+ * a_this: the current instance of #CRParser .
+ * a_status: the status to check. Is of type enum #CRStatus.
+ * a_is_exception: in case of error, if is TRUE, the status
  *is set to CR_PARSING_ERROR before goto error. If is false, the
  *real low level status is kept and will be returned by the
  *upper level function that called this macro. Usally,this must
  *be set to FALSE.
  *
+ *same as CHECK_PARSING_STATUS() but this one pushes an error
+ *on the parser error stack when an error arises.
+ *
  */
 #define CHECK_PARSING_STATUS_ERR(a_this, a_status, a_is_exception,\
                                  a_err_msg, a_err_status) \
@@ -409,7 +413,9 @@ static enum CRStatus
 static CRParserError *
 cr_parser_error_new (const guchar * a_msg, enum CRStatus a_status)
 {
-        CRParserError *result = (CRParserError *)g_try_malloc (sizeof (CRParserError));
+        CRParserError *result = NULL;
+
+        result = g_try_malloc (sizeof (CRParserError));
 
         if (result == NULL) {
                 cr_utils_trace_info ("Out of memory");
@@ -438,7 +444,7 @@ cr_parser_error_set_msg (CRParserError * a_this, const guchar * a_msg)
                 g_free (a_this->msg);
         }
 
-        a_this->msg = (guchar *)g_strdup ((gchar *)a_msg);
+        a_this->msg = g_strdup (a_msg);
 }
 
 /**
@@ -505,7 +511,7 @@ cr_parser_error_destroy (CRParserError * a_this)
  * param a_this the current instance of #CRParser.
  * param a_msg the error message.
  * param a_status the error status.
- * return CR_OK upon successful completion, an error code otherwise.
+ * return CR_OK upon successfull completion, an error code otherwise.
  */
 static enum CRStatus
 cr_parser_push_error (CRParser * a_this,
@@ -547,7 +553,7 @@ cr_parser_push_error (CRParser * a_this,
 }
 
 /**
- *Dumps the error stack using g_printerr.
+ *Dumps the error stack on stdout.
  * param a_this the current instance of #CRParser.
  * param a_clear_errs whether to clear the error stack
  *after the dump or not.
@@ -603,11 +609,13 @@ cr_parser_clear_errors (CRParser * a_this)
 }
 
 /**
+ * cr_parser_try_to_skip_spaces_and_comments:
+ * a_this: the current instance of #CRParser.
+ *
  *Same as cr_parser_try_to_skip_spaces() but this one skips
  *spaces and comments.
  *
- * param a_this the current instance of #CRParser.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_try_to_skip_spaces_and_comments (CRParser * a_this)
@@ -725,7 +733,7 @@ cr_parser_parse_stylesheet_core (CRParser * a_this)
 
  error:
         cr_parser_push_error
-                (a_this, (guchar *)"could not recognize next production", CR_ERROR);
+                (a_this, "could not recognize next production", CR_ERROR);
 
         cr_parser_dump_err_stack (a_this, TRUE);
 
@@ -1321,7 +1329,7 @@ cr_parser_parse_attribute_selector (CRParser * a_this,
         CRInputPos init_pos;
         CRToken *token = NULL;
         CRAttrSel *result = NULL;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
         g_return_val_if_fail (a_this && a_sel, CR_BAD_PARAM_ERROR);
 
@@ -1483,6 +1491,9 @@ cr_parser_parse_property (CRParser * a_this,
 }
 
 /**
+ * cr_parser_parse_term:
+ * a_term: out parameter. The successfully parsed term.
+ *
  *Parses a "term" as defined in the css2 spec, appendix D.1:
  *term ::= unary_operator? [NUMBER S* | PERCENTAGE S* | LENGTH S* | 
  *EMS S* | EXS S* | ANGLE S* | TIME S* | FREQ S* | function ] |
@@ -1490,8 +1501,7 @@ cr_parser_parse_property (CRParser * a_this,
  *
  *TODO: handle parsing of 'RGB'
  *
- * param a_term out parameter. The successfully parsed term.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_term (CRParser * a_this, CRTerm ** a_term)
@@ -1502,7 +1512,7 @@ cr_parser_parse_term (CRParser * a_this, CRTerm ** a_term)
         CRTerm *param = NULL;
         CRToken *token = NULL;
         CRString *func_name = NULL;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
         g_return_val_if_fail (a_this && a_term, CR_BAD_PARAM_ERROR);
 
@@ -1636,15 +1646,17 @@ cr_parser_parse_term (CRParser * a_this, CRTerm ** a_term)
 }
 
 /**
+ * cr_parser_parse_simple_selector:
+ * a_this: the "this pointer" of the current instance of #CRParser.
+ * a_sel: out parameter. Is set to the successfully parsed simple
+ *selector.
+ *
  *Parses a "simple_selector" as defined by the css2 spec in appendix D.1 :
  *element_name? [ HASH | class | attrib | pseudo ]* S*
  *and where pseudo is:
  *pseudo ::=  ':' [ IDENT | FUNCTION S* IDENT S* ')' ]
  *
- * Param a_this the "this pointer" of the current instance of #CRParser.
- * param a_sel out parameter. Is set to the successfully parsed simple
- *selector.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 static enum CRStatus
 cr_parser_parse_simple_selector (CRParser * a_this, CRSimpleSel ** a_sel)
@@ -1674,16 +1686,12 @@ cr_parser_parse_simple_selector (CRParser * a_this, CRSimpleSel ** a_sel)
 
         if (token && token->type == DELIM_TK 
             && token->u.unichar == '*') {
-                int comb = (int)sel->type_mask | (int) UNIVERSAL_SELECTOR;
-                sel->type_mask = (enum SimpleSelectorType)comb;
-                //sel->type_mask |= UNIVERSAL_SELECTOR;
+                sel->type_mask |= UNIVERSAL_SELECTOR;
                 sel->name = cr_string_new_from_string ("*");
                 found_sel = TRUE;
         } else if (token && token->type == IDENT_TK) {
                 sel->name = token->u.str;
-                int comb = (int)sel->type_mask | (int) TYPE_SELECTOR;
-                sel->type_mask = (enum SimpleSelectorType)comb;
-                //sel->type_mask |= TYPE_SELECTOR;
+                sel->type_mask |= TYPE_SELECTOR;
                 token->u.str = NULL;
                 found_sel = TRUE;
         } else {
@@ -1904,16 +1912,18 @@ cr_parser_parse_simple_selector (CRParser * a_this, CRSimpleSel ** a_sel)
 }
 
 /**
- *Parses a "selector" as defined by the css2 spec in appendix D.1:
- *selector ::=  simple_selector [ combinator simple_selector ]*
- *
- * param a_this the this pointer of the current instance of #CRParser.
- * param a_start a pointer to the 
+ * cr_parser_parse_simple_sels:
+ * a_this: the this pointer of the current instance of #CRParser.
+ * a_start: a pointer to the 
  *first chararcter of the successfully parsed
  *string.
- * param a_end a pointer to the last character of the successfully parsed
+ * a_end: a pointer to the last character of the successfully parsed
  *string.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Parses a "selector" as defined by the css2 spec in appendix D.1:
+ *selector ::=  simple_selector [ combinator simple_selector ]*
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 static enum CRStatus
 cr_parser_parse_simple_sels (CRParser * a_this, 
@@ -1938,7 +1948,7 @@ cr_parser_parse_simple_sels (CRParser * a_this,
 
         for (;;) {
                 guint32 next_char = 0;
-                int comb = 0;
+                enum Combinator comb = 0;
 
                 sel = NULL;
 
@@ -1961,7 +1971,7 @@ cr_parser_parse_simple_sels (CRParser * a_this,
                         break;
 
                 if (comb && sel) {
-                        sel->combinator = (enum Combinator)comb;
+                        sel->combinator = comb;
                         comb = 0;
                 }
                 if (sel) {
@@ -1980,11 +1990,14 @@ cr_parser_parse_simple_sels (CRParser * a_this,
 }
 
 /**
- *Parses a comma separated list of selectors.
- * param a_this the current instance of #CRParser.
- * param a_selector the parsed list of comma separated
+ * cr_parser_parse_selector:
+ * a_this: the current instance of #CRParser.
+ * a_selector: the parsed list of comma separated
  *selectors.
- * return CR_OK upon successful completion, an error
+ *
+ *Parses a comma separated list of selectors.
+ *
+ *Returns CR_OK upon successful completion, an error
  *code otherwise.
  */
 static enum CRStatus
@@ -2098,16 +2111,17 @@ cr_parser_parse_selector (CRParser * a_this,
 }
 
 /**
+ * cr_parser_parse_function:
+ * a_this: the "this pointer" of the current instance of #CRParser.
+ *
+ * a_func_name: out parameter. The parsed function name
+ * a_expr: out parameter. The successfully parsed term.
+ *
  *Parses a "function" as defined in css spec at appendix D.1:
  *function ::= FUNCTION S* expr ')' S*
  *FUNCTION ::= ident'('
  *
- * param a_this the "this pointer" of the current instance of
- *#CRParser.
- *
- * param a_func_name out parameter. The parsed function name
- * param a_expr out parameter. The successfully parsed term.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 static enum CRStatus
 cr_parser_parse_function (CRParser * a_this,
@@ -2185,13 +2199,15 @@ cr_parser_parse_function (CRParser * a_this,
 }
 
 /**
+ * cr_parser_parse_uri:
+ * a_this: the current instance of #CRParser.
+ * a_str: the successfully parsed url.
+ *
  *Parses an uri as defined by the css spec [4.1.1]:
  * URI ::= url\({w}{string}{w}\)
  *         |url\({w}([!#$%&*-~]|{nonascii}|{escape})*{w}\)
  *
- * param a_this the current instance of #CRParser.
- * param a_str the successfully parsed url.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 static enum CRStatus
 cr_parser_parse_uri (CRParser * a_this, CRString ** a_str)
@@ -2208,19 +2224,21 @@ cr_parser_parse_uri (CRParser * a_this, CRString ** a_str)
 }
 
 /**
+ * cr_parser_parse_string:
+ * a_this: the current instance of #CRParser.
+ * a_start: out parameter. Upon successfull completion, 
+ *points to the beginning of the string, points to an undefined value
+ *otherwise.
+ * a_end: out parameter. Upon successfull completion, points to
+ *the beginning of the string, points to an undefined value otherwise.
+ *
  *Parses a string type as defined in css spec [4.1.1]:
  *
  *string ::= {string1}|{string2}
  *string1 ::= \"([\t !#$%&(-~]|\\{nl}|\'|{nonascii}|{escape})*\"
  *string2 ::= \'([\t !#$%&(-~]|\\{nl}|\"|{nonascii}|{escape})*\'
  *
- * param a_this the current instance of #CRParser.
- * param a_start out parameter. Upon successfull completion, 
- *points to the beginning of the string, points to an undefined value
- *otherwise.
- * param a_end out parameter. Upon successfull completion, points to
- *the beginning of the string, points to an undefined value otherwise.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 static enum CRStatus
 cr_parser_parse_string (CRParser * a_this, CRString ** a_str)
@@ -2311,7 +2329,7 @@ cr_parser_parse_stylesheet (CRParser * a_this)
         CHECK_PARSING_STATUS (status, TRUE);
 
         if (token && token->type == CHARSET_SYM_TK) {
-                CRParsingLocation location = {0,0,0} ;
+                CRParsingLocation location = {0} ;
                 status = cr_tknzr_unget_token (PRIVATE (a_this)->tknzr,
                                                token);
                 CHECK_PARSING_STATUS (status, TRUE);
@@ -2387,7 +2405,7 @@ cr_parser_parse_stylesheet (CRParser * a_this)
                 if (token && token->type == IMPORT_SYM_TK) {
                         GList *media_list = NULL;
                         CRString *import_string = NULL;
-                        CRParsingLocation location = {0,0,0} ;
+                        CRParsingLocation location = {0} ;
 
                         status = cr_tknzr_unget_token
                                 (PRIVATE (a_this)->tknzr, token);
@@ -2445,7 +2463,7 @@ cr_parser_parse_stylesheet (CRParser * a_this)
                                 /*free the medium list */
                                 for (cur = media_list; cur; cur = cur->next) {
                                         if (cur->data) {
-                                                cr_string_destroy ((CRString *)cur->data);
+                                                cr_string_destroy (cur->data);
                                         }
                                 }
 
@@ -2685,7 +2703,7 @@ cr_parser_parse_stylesheet (CRParser * a_this)
         }
 
         cr_parser_push_error
-                (a_this, (guchar *)"could not recognize next production", CR_ERROR);
+                (a_this, "could not recognize next production", CR_ERROR);
 
         if (PRIVATE (a_this)->sac_handler
             && PRIVATE (a_this)->sac_handler->unrecoverable_error) {
@@ -2720,23 +2738,24 @@ cr_parser_parse_stylesheet (CRParser * a_this)
  ****************************************/
 
 /**
+ * cr_parser_new:
+ * @a_tknzr: the tokenizer to use for the parsing.
+ *
  *Creates a new parser to parse data
  *coming the input stream given in parameter.
- * param a_input the input stream of the parser.
- *Note that the newly created parser will ref
- *a_input and unref it when parsing reaches the
- *end of the input stream.
- * return the newly created instance of #CRParser,
+ *
+ *Returns the newly created instance of #CRParser,
  *or NULL if an error occured.
  */
 CRParser *
 cr_parser_new (CRTknzr * a_tknzr)
 {
+        CRParser *result = NULL;
         enum CRStatus status = CR_OK;
 
-        CRParser *result = (CRParser *)g_malloc0 (sizeof (CRParser));
+        result = g_malloc0 (sizeof (CRParser));
 
-        PRIVATE (result) = (CRParserPriv *)g_malloc0 (sizeof (CRParserPriv));
+        PRIVATE (result) = g_malloc0 (sizeof (CRParserPriv));
 
         if (a_tknzr) {
                 status = cr_parser_set_tknzr (result, a_tknzr);
@@ -2748,15 +2767,18 @@ cr_parser_new (CRTknzr * a_tknzr)
 }
 
 /**
- *Instanciates a new parser from a memory buffer.
- * param a_buf the buffer to parse.
- * param a_len the length of the data in the buffer.
- * param a_enc the encoding of the input buffer a_buf.
- * param a_free_buf if set to TRUE, a_buf will be freed
+ * cr_parser_new_from_buf:
+ * a_buf: the buffer to parse.
+ * a_len: the length of the data in the buffer.
+ * a_enc: the encoding of the input buffer a_buf.
+ * a_free_buf: if set to TRUE, a_buf will be freed
  *during the destruction of the newly built instance 
  *of #CRParser. If set to FALSE, it is up to the caller to
  *eventually free it.
- * return the newly built parser, or NULL if an error arises.
+ *
+ *Instanciates a new parser from a memory buffer.
+ * 
+ *Returns the newly built parser, or NULL if an error arises.
  */
 CRParser *
 cr_parser_new_from_buf (guchar * a_buf,
@@ -2767,7 +2789,7 @@ cr_parser_new_from_buf (guchar * a_buf,
         CRParser *result = NULL;
         CRInput *input = NULL;
 
-        g_return_val_if_fail (a_buf, NULL);
+        g_return_val_if_fail (a_buf && a_len, NULL);
 
         input = cr_input_new_from_buf (a_buf, a_len, a_enc, a_free_buf);
         g_return_val_if_fail (input, NULL);
@@ -2781,6 +2803,12 @@ cr_parser_new_from_buf (guchar * a_buf,
         return result;
 }
 
+/**
+ * cr_parser_new_from_input:
+ * @a_input: the parser input stream to use.
+ *
+ * Returns a newly built parser input.
+ */
 CRParser *
 cr_parser_new_from_input (CRInput * a_input)
 {
@@ -2798,6 +2826,13 @@ cr_parser_new_from_input (CRInput * a_input)
         return result;
 }
 
+/**
+ * cr_parser_new_from_file:
+ * @a_file_uri: the uri of the file to parse.
+ * @a_enc: the file encoding to use.
+ *
+ * Returns the newly built parser.
+ */
 CRParser *
 cr_parser_new_from_file (const guchar * a_file_uri, enum CREncoding a_enc)
 {
@@ -2816,10 +2851,13 @@ cr_parser_new_from_file (const guchar * a_file_uri, enum CREncoding a_enc)
 }
 
 /**
+ * cr_parser_set_sac_handler:
+ * a_this: the "this pointer" of the current instance of #CRParser.
+ * a_handler: the handler to set.
+ *
  *Sets a SAC document handler to the parser.
- * param a_this the "this pointer" of the current instance of #CRParser.
- * param a_handler the handler to set.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_set_sac_handler (CRParser * a_this, CRDocHandler * a_handler)
@@ -2837,11 +2875,14 @@ cr_parser_set_sac_handler (CRParser * a_this, CRDocHandler * a_handler)
 }
 
 /**
- *Gets the SAC document handler.
- * param a_this the "this pointer" of the current instance of
+ * cr_parser_get_sac_handler:
+ * a_this: the "this pointer" of the current instance of
  *#CRParser.
- * param a_handler out parameter. The returned handler.
- * return CR_OK upon successfull completion, an error code
+ * a_handler: out parameter. The returned handler.
+ *
+ *Gets the SAC document handler.
+ *
+ *Returns CR_OK upon successfull completion, an error code
  *otherwise.
  */
 enum CRStatus
@@ -2855,10 +2896,13 @@ cr_parser_get_sac_handler (CRParser * a_this, CRDocHandler ** a_handler)
 }
 
 /**
+ * cr_parser_set_default_sac_handler:
+ * a_this: a pointer to the current instance of #CRParser.
+ *
  *Sets the SAC handler associated to the current instance
  *of #CRParser to the default SAC handler.
- * param a_this a pointer to the current instance of #CRParser.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_set_default_sac_handler (CRParser * a_this)
@@ -2882,6 +2926,13 @@ cr_parser_set_default_sac_handler (CRParser * a_this)
         return status;
 }
 
+/**
+ * cr_parser_set_use_core_grammar:
+ * @a_this: the current instance of #CRParser.
+ * @a_use_core_grammar: where to parse against the css core grammar.
+ *
+ * Returns CR_OK upon succesful completion, an error code otherwise.
+ */
 enum CRStatus
 cr_parser_set_use_core_grammar (CRParser * a_this,
                                 gboolean a_use_core_grammar)
@@ -2893,8 +2944,15 @@ cr_parser_set_use_core_grammar (CRParser * a_this,
         return CR_OK;
 }
 
+/**
+ * cr_parser_get_use_core_grammar:
+ * @a_this: the current instance of #CRParser.
+ * @a_use_core_grammar: wether to use the core grammar or not.
+ *
+ * Returns CR_OK upon succesful completion, an error code otherwise.
+ */
 enum CRStatus
-cr_parser_get_use_core_grammar (CRParser * a_this,
+cr_parser_get_use_core_grammar (CRParser const * a_this,
                                 gboolean * a_use_core_grammar)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this), CR_BAD_PARAM_ERROR);
@@ -2905,11 +2963,15 @@ cr_parser_get_use_core_grammar (CRParser * a_this,
 }
 
 /**
- *Parses a the given in parameter.
- * param a_this a pointer to the current instance of #CRParser.
- * param a_file_uri the uri to the file to load. For the time being,
+ * cr_parser_parse_file:
+ * a_this: a pointer to the current instance of #CRParser.
+ * a_file_uri: the uri to the file to load. For the time being,
+ * a_enc: the encoding of the file to parse.
  *only local files are supported.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Parses a the given in parameter.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_file (CRParser * a_this,
@@ -2934,9 +2996,16 @@ cr_parser_parse_file (CRParser * a_this,
 }
 
 /**
+ * cr_parser_parse_expr:
+ * @a_this: the current instance of #CRParser.
+ * @a_expr: out parameter. the parsed expression.
+ *
  *Parses an expression as defined by the css2 spec in appendix
  *D.1:
  *expr: term [ operator term ]*
+ *
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_expr (CRParser * a_this, CRTerm ** a_expr)
@@ -2958,7 +3027,7 @@ cr_parser_parse_expr (CRParser * a_this, CRTerm ** a_expr)
         CHECK_PARSING_STATUS (status, FALSE);
 
         for (;;) {
-                guchar operatr = 0;
+                guchar operator = 0;
 
                 status = cr_tknzr_peek_byte (PRIVATE (a_this)->tknzr,
                                              1, &next_byte);
@@ -2978,7 +3047,7 @@ cr_parser_parse_expr (CRParser * a_this, CRTerm ** a_expr)
                 }
 
                 if (next_byte == '/' || next_byte == ',') {
-                        READ_NEXT_BYTE (a_this, &operatr);
+                        READ_NEXT_BYTE (a_this, &operator);
                 }
 
                 cr_parser_try_to_skip_spaces_and_comments (a_this);
@@ -2990,7 +3059,7 @@ cr_parser_parse_expr (CRParser * a_this, CRTerm ** a_expr)
                         break;
                 }
 
-                switch (operatr) {
+                switch (operator) {
                 case '/':
                         expr2->the_operator = DIVIDE;
                         break;
@@ -3003,7 +3072,7 @@ cr_parser_parse_expr (CRParser * a_this, CRTerm ** a_expr)
 
                 expr = cr_term_append_term (expr, expr2);
                 expr2 = NULL;
-                operatr = 0;
+                operator = 0;
                 nb_terms++;
         }
 
@@ -3033,13 +3102,17 @@ cr_parser_parse_expr (CRParser * a_this, CRTerm ** a_expr)
 }
 
 /**
+ * cr_parser_parse_prio:
+ * a_this: the current instance of #CRParser.
+ * a_prio: a string representing the priority.
+ *Today, only "!important" is returned as only this
+ *priority is defined by css2.
+ *
  *Parses a declaration priority as defined by
  *the css2 grammar in appendix C:
  *prio: IMPORTANT_SYM S*
- * param a_this the current instance of #CRParser.
- * param a_prio a string representing the priority.
- *Today, only "!important" is returned as only this
- *priority is defined by css2.
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_prio (CRParser * a_this, CRString ** a_prio)
@@ -3078,17 +3151,19 @@ cr_parser_parse_prio (CRParser * a_this, CRString ** a_prio)
 }
 
 /**
+ * cr_parser_parse_declaration:
+ * a_this: the "this pointer" of the current instance of #CRParser.
+ * a_property: the successfully parsed property. The caller
+ * *must* free the returned pointer.
+ * a_expr: the expression that represents the attribute value.
+ *The caller *must* free the returned pointer.
+ *
  *TODO: return the parsed priority, so that
  *upper layers can take benefit from it.
  *Parses a "declaration" as defined by the css2 spec in appendix D.1:
  *declaration ::= [property ':' S* expr prio?]?
  *
- * param a_this the "this pointer" of the current instance of #CRParser.
- * param a_property the successfully parsed property. The caller
- * *must* free the returned pointer.
- * param a_expr the expression that represents the attribute value.
- *The caller *must* free the returned pointer.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_declaration (CRParser * a_this,
@@ -3114,7 +3189,7 @@ cr_parser_parse_declaration (CRParser * a_this,
 
         CHECK_PARSING_STATUS_ERR
                 (a_this, status, FALSE,
-                 (guchar *)"while parsing declaration: next property is malformed",
+                 "while parsing declaration: next property is malformed",
                  CR_SYNTAX_ERROR);
 
         READ_NEXT_CHAR (a_this, &cur_char);
@@ -3123,7 +3198,7 @@ cr_parser_parse_declaration (CRParser * a_this,
                 status = CR_PARSING_ERROR;
                 cr_parser_push_error
                         (a_this,
-                         (guchar *)"while parsing declaration: this char must be ':'",
+                         "while parsing declaration: this char must be ':'",
                          CR_SYNTAX_ERROR);
                 goto error;
         }
@@ -3134,7 +3209,7 @@ cr_parser_parse_declaration (CRParser * a_this,
 
         CHECK_PARSING_STATUS_ERR
                 (a_this, status, FALSE,
-                 (guchar *)"while parsing declaration: next expression is malformed",
+                 "while parsing declaration: next expression is malformed",
                  CR_SYNTAX_ERROR);
 
         cr_parser_try_to_skip_spaces_and_comments (a_this);
@@ -3175,11 +3250,14 @@ cr_parser_parse_declaration (CRParser * a_this,
 }
 
 /**
+ * cr_parser_parse_statement_core:
+ * a_this: the current instance of #CRParser.
+ *
  *Parses a statement as defined by the css core grammar in
  *chapter 4.1 of the css2 spec.
  *statement   : ruleset | at-rule;
- * param a_this the current instance of #CRParser.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_statement_core (CRParser * a_this)
@@ -3231,6 +3309,9 @@ cr_parser_parse_statement_core (CRParser * a_this)
 }
 
 /**
+ * cr_parser_parse_ruleset:
+ * a_this: the "this pointer" of the current instance of #CRParser.
+ *
  *Parses a "ruleset" as defined in the css2 spec at appendix D.1.
  *ruleset ::= selector [ ',' S* selector ]* 
  *'{' S* declaration? [ ';' S* declaration? ]* '}' S*;
@@ -3239,8 +3320,8 @@ cr_parser_parse_statement_core (CRParser * a_this)
  *callbacks whenever it encounters some specific constructions.
  *See the documentation of #CRDocHandler (the SAC handler) to know
  *when which SAC handler is called.
- * param a_this the "this pointer" of the current instance of #CRParser.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_ruleset (CRParser * a_this)
@@ -3255,6 +3336,7 @@ cr_parser_parse_ruleset (CRParser * a_this)
         CRSelector *selector = NULL;
         gboolean start_selector = FALSE,
                 is_important = FALSE;
+        CRParsingLocation end_parsing_location;
 
         g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR);
 
@@ -3267,7 +3349,7 @@ cr_parser_parse_ruleset (CRParser * a_this)
 
         ENSURE_PARSING_COND_ERR
                 (a_this, cur_char == '{',
-                 (guchar *)"while parsing rulset: current char should be '{'",
+                 "while parsing rulset: current char should be '{'",
                  CR_SYNTAX_ERROR);
 
         if (PRIVATE (a_this)->sac_handler
@@ -3331,7 +3413,7 @@ cr_parser_parse_ruleset (CRParser * a_this)
         }
         CHECK_PARSING_STATUS_ERR
                 (a_this, status, FALSE,
-                 (guchar *)"while parsing ruleset: next construction should be a declaration",
+                 "while parsing ruleset: next construction should be a declaration",
                  CR_SYNTAX_ERROR);
 
         for (;;) {
@@ -3369,12 +3451,14 @@ cr_parser_parse_ruleset (CRParser * a_this)
 
  end_of_ruleset:
         cr_parser_try_to_skip_spaces_and_comments (a_this);
+        cr_parser_get_parsing_location (a_this, &end_parsing_location);
         READ_NEXT_CHAR (a_this, &cur_char);
         ENSURE_PARSING_COND_ERR
                 (a_this, cur_char == '}',
-                 (guchar *)"while parsing rulset: current char must be a '}'",
+                 "while parsing rulset: current char must be a '}'",
                  CR_SYNTAX_ERROR);
 
+        selector->location = end_parsing_location;
         if (PRIVATE (a_this)->sac_handler
             && PRIVATE (a_this)->sac_handler->end_selector) {
                 PRIVATE (a_this)->sac_handler->end_selector
@@ -3431,29 +3515,29 @@ cr_parser_parse_ruleset (CRParser * a_this)
 }
 
 /**
- *Parses an 'import' declaration as defined in the css2 spec
- *in appendix D.1:
- *
- *import ::=
- * import [STRING|URI] S* [ medium [ ',' S* medium]* ]? ';' S*
- *
- * param a_this the "this pointer" of the current instance 
+ * cr_parser_parse_import:
+ * a_this: the "this pointer" of the current instance 
  *of #CRParser.
- *
- * param a_medium_list out parameter. A linked list of 
+ * a_media_list: out parameter. A linked list of 
  *#CRString
  *Each CRString is a string that contains
  *a 'medium' declaration part of the successfully 
  *parsed 'import' declaration.
- *
- * param a_import_string out parameter. 
+ * a_import_string: out parameter. 
  *A string that contains the 'import 
  *string". The import string can be either an uri (if it starts with
  *the substring "uri(") or a any other css2 string. Note that
  * *a_import_string must be initially set to NULL or else, this function
  *will return CR_BAD_PARAM_ERROR.
+ * a_location: the location (line, column) where the import has been parsed
  *
- * return CR_OK upon sucessfull completion, an error code otherwise.
+ *Parses an 'import' declaration as defined in the css2 spec
+ *in appendix D.1:
+ *
+ *import ::=
+ *\ import [STRING|URI] S* [ medium [ ',' S* medium]* ]? ';' S*
+ *
+ *Returns CR_OK upon sucessfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_import (CRParser * a_this,
@@ -3578,7 +3662,7 @@ cr_parser_parse_import (CRParser * a_this,
                  */
                 for (cur = *a_media_list; cur; cur = cur->next) {
                         if (cur->data) {
-                                cr_string_destroy ((CRString *)cur->data);
+                                cr_string_destroy (cur->data);
                         }
                 }
 
@@ -3602,16 +3686,19 @@ cr_parser_parse_import (CRParser * a_this,
 }
 
 /**
+ * cr_parser_parse_media:
+ * a_this: the "this pointer" of the current instance of #CRParser.
+ *
  *Parses a 'media' declaration as specified in the css2 spec at
  *appendix D.1:
  *
- *media ::= @media S* medium [ ',' S* medium ]* '{' S* ruleset* '}' S*
+ *media ::= \ media S* medium [ ',' S* medium ]* '{' S* ruleset* '}' S*
  *
  *Note that this function calls the required sac handlers during the parsing
  *to notify media productions. See #CRDocHandler to know the callback called
- *during @media parsing.
- * param a_this the "this pointer" of the current instance of #CRParser.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *during \ media parsing.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_media (CRParser * a_this)
@@ -3623,7 +3710,7 @@ cr_parser_parse_media (CRParser * a_this)
                 cur_char = 0;
         CRString *medium = NULL;
         GList *media_list = NULL;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
         g_return_val_if_fail (a_this 
                               && PRIVATE (a_this), 
@@ -3729,7 +3816,7 @@ cr_parser_parse_media (CRParser * a_this)
                 GList *cur = NULL;
 
                 for (cur = media_list; cur; cur = cur->next) {
-                        cr_string_destroy ((CRString *)cur->data);
+                        cr_string_destroy (cur->data);
                 }
 
                 g_list_free (media_list);
@@ -3757,7 +3844,7 @@ cr_parser_parse_media (CRParser * a_this)
                 GList *cur = NULL;
 
                 for (cur = media_list; cur; cur = cur->next) {
-                        cr_string_destroy ((CRString *)cur->data);
+                        cr_string_destroy (cur->data);
                 }
 
                 g_list_free (media_list);
@@ -3770,15 +3857,18 @@ cr_parser_parse_media (CRParser * a_this)
 }
 
 /**
- *Parses '@page' rule as specified in the css2 spec in appendix D.1:
+ * cr_parser_parse_page:
+ * a_this: the "this pointer" of the current instance of #CRParser.
+ *
+ *Parses '\ page' rule as specified in the css2 spec in appendix D.1:
  *page ::= PAGE_SYM S* IDENT? pseudo_page? S* 
  *'{' S* declaration [ ';' S* declaration ]* '}' S*
  *
  *This function also calls the relevant SAC handlers whenever it
  *encounters a construction that must 
  *be reported to the calling application.
- * param a_this the "this pointer" of the current instance of #CRParser.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_page (CRParser * a_this)
@@ -3791,7 +3881,7 @@ cr_parser_parse_page (CRParser * a_this)
                 *page_pseudo_class = NULL,
                 *property = NULL;
         gboolean important = TRUE;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
         g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR);
 
@@ -4018,16 +4108,18 @@ cr_parser_parse_page (CRParser * a_this)
 }
 
 /**
+ * cr_parser_parse_charset:
+ * a_this: the "this pointer" of the current instance of #CRParser.
+ * a_value: out parameter. The actual parsed value of the charset 
+ *declararation. Note that for safety check reasons, *a_value must be
+ *set to NULL.
+ * a_charset_sym_location: the parsing location of the charset rule
+ *
  *Parses a charset declaration as defined implictly by the css2 spec in
  *appendix D.1:
  *charset ::= CHARSET_SYM S* STRING S* ';'
  *
- * param a_this the "this pointer" of the current instance of #CRParser.
- * param a_value out parameter. The actual parsed value of the charset 
- *declararation. Note that for safety check reasons, *a_value must be
- *set to NULL.
- * param a_charset_sym_location the parsing location of
- * return CR_OK upon successfull completion, an error code otherwise.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_charset (CRParser * a_this, CRString ** a_value,
@@ -4107,14 +4199,18 @@ cr_parser_parse_charset (CRParser * a_this, CRString ** a_value,
 }
 
 /**
- *Parses the "@font-face" rule specified in the css1 spec in
+ * cr_parser_parse_font_face:
+ * a_this: the current instance of #CRParser.
+ *
+ *Parses the "\ font-face" rule specified in the css1 spec in
  *appendix D.1:
  *
  *font_face ::= FONT_FACE_SYM S* 
  *'{' S* declaration [ ';' S* declaration ]* '}' S*
  *
  *This function will call SAC handlers whenever it is necessary.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_font_face (CRParser * a_this)
@@ -4127,7 +4223,7 @@ cr_parser_parse_font_face (CRParser * a_this)
         gboolean important = FALSE;
         guint32 next_char = 0,
                 cur_char = 0;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
         g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR);
 
@@ -4264,11 +4360,14 @@ cr_parser_parse_font_face (CRParser * a_this)
 }
 
 /**
+ * cr_parser_parse:
+ * a_this: the current instance of #CRParser.
+ *
  *Parses the data that comes from the
  *input previously associated to the current instance of
  *#CRParser.
- * param a_this the current instance of #CRParser.
- * return CR_OK ;
+ *
+ *Returns CR_OK upon succesful completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse (CRParser * a_this)
@@ -4287,6 +4386,13 @@ cr_parser_parse (CRParser * a_this)
         return status;
 }
 
+/**
+ * cr_parser_set_tknzr:
+ * @a_this: the current instance of #CRParser;
+ * @a_tknzr: the new tokenizer.
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
+ */
 enum CRStatus
 cr_parser_set_tknzr (CRParser * a_this, CRTknzr * a_tknzr)
 {
@@ -4305,10 +4411,13 @@ cr_parser_set_tknzr (CRParser * a_this, CRTknzr * a_tknzr)
 }
 
 /**
+ * cr_parser_get_tknzr:
+ * a_this: the current instance of #CRParser
+ * a_tknzr: out parameter. The returned tokenizer
+ *
  *Getter of the parser's underlying tokenizer
- * param a_this the current instance of #CRParser
- * param a_tknzr out parameter. The returned tokenizer
- * return CR_OK upon succesful completion, an error code
+ * 
+ *Returns CR_OK upon succesful completion, an error code
  *otherwise
  */
 enum CRStatus
@@ -4322,14 +4431,17 @@ cr_parser_get_tknzr (CRParser * a_this, CRTknzr ** a_tknzr)
 }
 
 /**
+ * cr_parser_get_parsing_location:
+ * a_this: the current instance of #CRParser
+ * a_loc: the parsing location to get.
+ *
  *Gets the current parsing location.
- * param a_this the current instance of #CRParser
- * param a_loc the parsing location to get.
- * return CR_OK upon succesful completion, an error code
+ *
+ *Returns CR_OK upon succesful completion, an error code
  *otherwise.
  */
 enum CRStatus 
-cr_parser_get_parsing_location (CRParser *a_this, 
+cr_parser_get_parsing_location (CRParser const *a_this,
                                 CRParsingLocation *a_loc)
 {
         g_return_val_if_fail (a_this 
@@ -4341,12 +4453,15 @@ cr_parser_get_parsing_location (CRParser *a_this,
 }
 
 /**
+ * cr_parser_parse_buf:
+ * a_this: the current instance of #CRparser
+ * a_buf: the input buffer
+ * a_len: the length of the input buffer
+ * a_enc: the encoding of the buffer
+ *
  *Parses a stylesheet from a buffer
- * param a_this the current instance of #CRparser
- * param a_buf the input buffer
- * param a_len the length of the input buffer
- * param a_enc the encoding of the buffer
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_parser_parse_buf (CRParser * a_this,
@@ -4372,10 +4487,12 @@ cr_parser_parse_buf (CRParser * a_this,
 }
 
 /**
+ * cr_parser_destroy:
+ * a_this: the current instance of #CRParser to
+ *destroy.
+ *
  *Destroys the current instance
  *of #CRParser.
- * param a_this the current instance of #CRParser to
- *destroy.
  */
 void
 cr_parser_destroy (CRParser * a_this)
diff --git a/src/cr-parser.h b/src/cr-parser.h
index 1534afb..6dce943 100644
--- a/src/cr-parser.h
+++ b/src/cr-parser.h
@@ -68,7 +68,7 @@ enum CRStatus cr_parser_set_tknzr (CRParser *a_this, CRTknzr *a_tknzr) ;
 
 enum CRStatus cr_parser_get_tknzr (CRParser *a_this, CRTknzr **a_tknzr) ;
 
-enum CRStatus cr_parser_get_parsing_location (CRParser *a_this, CRParsingLocation *a_loc) ;
+enum CRStatus cr_parser_get_parsing_location (CRParser const *a_this, CRParsingLocation *a_loc) ;
 
 enum CRStatus cr_parser_try_to_skip_spaces_and_comments (CRParser *a_this) ;
 
@@ -81,7 +81,7 @@ enum CRStatus cr_parser_get_sac_handler (CRParser *a_this,
 
 enum CRStatus cr_parser_set_use_core_grammar (CRParser *a_this,
                                               gboolean a_use_core_grammar) ;
-enum CRStatus cr_parser_get_use_core_grammar (CRParser *a_this,
+enum CRStatus cr_parser_get_use_core_grammar (CRParser const *a_this,
                                               gboolean *a_use_core_grammar) ;
 
 enum CRStatus cr_parser_parse (CRParser *a_this) ;
diff --git a/src/cr-parsing-location.c b/src/cr-parsing-location.c
index 38a75a6..4fe4acc 100644
--- a/src/cr-parsing-location.c
+++ b/src/cr-parsing-location.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
 
 /*
  * This file is part of The Croco Library
@@ -25,21 +25,25 @@
 #include "cr-parsing-location.h"
 
 /**
- * file
+ * CRParsingLocation:
+ *
  *Definition of the #CRparsingLocation class.
  */
 
 
 /**
+ * cr_parsing_location_new:
  *Instanciates a new parsing location.
- * return the newly instanciated #CRParsingLocation.
+ *
+ *Returns the newly instanciated #CRParsingLocation.
  *Must be freed by cr_parsing_location_destroy()
  */
 CRParsingLocation * 
 cr_parsing_location_new (void)
 {
-	CRParsingLocation *result = 
-	    (CRParsingLocation *)g_try_malloc (sizeof (CRParsingLocation)) ;
+	CRParsingLocation * result = NULL ;
+
+	result = g_try_malloc (sizeof (CRParsingLocation)) ;
 	if (!result) {
 		cr_utils_trace_info ("Out of memory error") ;
 		return NULL ;
@@ -49,9 +53,12 @@ cr_parsing_location_new (void)
 }
 
 /**
+ * cr_parsing_location_init:
+ * a_this: the current instance of #CRParsingLocation.
+ *
  *Initializes the an instance of #CRparsingLocation.
- * param a_this the current instance of #CRParsingLocation.
- * return CR_OK upon
+ *
+ *Returns CR_OK upon succesful completion, an error code otherwise.
  */
 enum CRStatus 
 cr_parsing_location_init (CRParsingLocation *a_this)
@@ -63,16 +70,19 @@ cr_parsing_location_init (CRParsingLocation *a_this)
 }
 
 /**
- *Copies an instance of CRParsingLocation into another one.
- * param a_to the destination of the copy. 
+ * cr_parsing_location_copy:
+ * a_to: the destination of the copy. 
  *Must be allocated by the caller.
- * param a_from the source of the copy.
- * return CR_OK upon succesful completion, an error code
+ * a_from: the source of the copy.
+ *
+ *Copies an instance of CRParsingLocation into another one.
+ *
+ *Returns CR_OK upon succesful completion, an error code
  *otherwise.
  */
 enum CRStatus 
 cr_parsing_location_copy (CRParsingLocation *a_to,
-			  CRParsingLocation *a_from)
+			  CRParsingLocation const *a_from)
 {
 	g_return_val_if_fail (a_to && a_from, CR_BAD_PARAM_ERROR) ;
 
@@ -81,24 +91,26 @@ cr_parsing_location_copy (CRParsingLocation *a_to,
 }
 
 /**
- * param a_this the current instance of #CRParsingLocation.
- * param a_mask a bitmap that defines which parts of the
+ * cr_parsing_location_to_string:
+ * a_this: the current instance of #CRParsingLocation.
+ * a_mask: a bitmap that defines which parts of the
  *parsing location are to be serialized (line, column or byte offset)
- * return the serialized string or NULL in case of an error.
+ *
+ *Returns the serialized string or NULL in case of an error.
  */
 gchar * 
-cr_parsing_location_to_string (CRParsingLocation *a_this,
+cr_parsing_location_to_string (CRParsingLocation const *a_this,
 			       enum CRParsingLocationSerialisationMask a_mask)
 {
+	GString *result = NULL ;
 	gchar *str = NULL ;
 
 	g_return_val_if_fail (a_this, NULL) ;
 
 	if (!a_mask) {
-		a_mask = (enum CRParsingLocationSerialisationMask)
-		    ((int)DUMP_LINE | (int)DUMP_COLUMN | (int)DUMP_BYTE_OFFSET) ;
+		a_mask = DUMP_LINE | DUMP_COLUMN | DUMP_BYTE_OFFSET ;
 	}
-	GString *result = (GString *)g_string_new (NULL) ;
+	result =g_string_new (NULL) ;
 	if (!result)
 		return NULL ;
 	if (a_mask & DUMP_LINE) {
@@ -122,8 +134,14 @@ cr_parsing_location_to_string (CRParsingLocation *a_this,
 	return str ;
 }
 
+/**
+ * cr_parsing_location_dump:
+ * @a_this: current instance of #CRParsingLocation
+ * @a_mask: the serialization mask.
+ * @a_fp: the file pointer to dump the parsing location to.
+ */
 void
-cr_parsing_location_dump (CRParsingLocation *a_this,
+cr_parsing_location_dump (CRParsingLocation const *a_this,
 			  enum CRParsingLocationSerialisationMask a_mask,
 			  FILE *a_fp)
 {
@@ -139,9 +157,11 @@ cr_parsing_location_dump (CRParsingLocation *a_this,
 }
 
 /**
- *Destroys the current instance of #CRParsingLocation
- * param a_this the current instance of #CRParsingLocation. Must
+ * cr_parsing_location_destroy:
+ * a_this: the current instance of #CRParsingLocation. Must
  *have been allocated with cr_parsing_location_new().
+ *
+ *Destroys the current instance of #CRParsingLocation
  */
 void 
 cr_parsing_location_destroy (CRParsingLocation *a_this)
diff --git a/src/cr-parsing-location.h b/src/cr-parsing-location.h
index 877c050..b8064a5 100644
--- a/src/cr-parsing-location.h
+++ b/src/cr-parsing-location.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
 
 /*
  * This file is part of The Croco Library
@@ -54,11 +54,11 @@ CRParsingLocation * cr_parsing_location_new (void) ;
 enum CRStatus cr_parsing_location_init (CRParsingLocation *a_this) ;
 
 enum CRStatus cr_parsing_location_copy (CRParsingLocation *a_to,
-					CRParsingLocation *a_from) ;
+					CRParsingLocation const *a_from) ;
 
-gchar * cr_parsing_location_to_string (CRParsingLocation *a_this,
+gchar * cr_parsing_location_to_string (CRParsingLocation const *a_this,
 				       enum CRParsingLocationSerialisationMask a_mask) ;
-void cr_parsing_location_dump (CRParsingLocation *a_this,
+void cr_parsing_location_dump (CRParsingLocation const *a_this,
 			       enum CRParsingLocationSerialisationMask a_mask,
 			       FILE *a_fp) ;
 
diff --git a/src/cr-prop-list.c b/src/cr-prop-list.c
index 0768379..0ce57fa 100644
--- a/src/cr-prop-list.c
+++ b/src/cr-prop-list.c
@@ -41,13 +41,15 @@ static CRPropList *cr_prop_list_allocate (void);
 static CRPropList *
 cr_prop_list_allocate (void)
 {
-        CRPropList *result = (CRPropList *)g_try_malloc (sizeof (CRPropList));
+        CRPropList *result = NULL;
+
+        result = g_try_malloc (sizeof (CRPropList));
         if (!result) {
                 cr_utils_trace_info ("could not allocate CRPropList");
                 return NULL;
         }
         memset (result, 0, sizeof (CRPropList));
-        PRIVATE (result) = (CRPropListPriv *)g_try_malloc (sizeof (CRPropListPriv));
+        PRIVATE (result) = g_try_malloc (sizeof (CRPropListPriv));
         if (!result) {
                 cr_utils_trace_info ("could not allocate CRPropListPriv");
                 g_free (result);
@@ -62,10 +64,13 @@ cr_prop_list_allocate (void)
  ***************/
 
 /**
+ * cr_prop_list_append:
+ * a_this: the current instance of #CRPropList
+ * a_to_append: the property list to append
+ *
  *Appends a property list to the current one.
- * param a_this the current instance of #CRPropList
- * param a_to_append the property list to append
- * return the resulting prop list, or NULL if an error
+ *
+ *Returns the resulting prop list, or NULL if an error
  *occured
  */
 CRPropList *
@@ -89,12 +94,14 @@ cr_prop_list_append (CRPropList * a_this, CRPropList * a_to_append)
 }
 
 /**
+ * cr_prop_list_append2:
  *Appends a pair of prop/declaration to
  *the current prop list.
- * param a_this the current instance of #CRPropList
- * param a_prop the property to consider
- * param a_decl the declaration to consider
- * return the resulting property list, or NULL in case
+ * a_this: the current instance of #CRPropList
+ * a_prop: the property to consider
+ * a_decl: the declaration to consider
+ *
+ *Returns the resulting property list, or NULL in case
  *of an error.
  */
 CRPropList *
@@ -118,9 +125,12 @@ cr_prop_list_append2 (CRPropList * a_this,
 }
 
 /**
+ * cr_prop_list_prepend:
+ * a_this: the current instance of #CRPropList
+ * a_to_prepend: the new list to prepend.
+ *
  *Prepends a list to the current list
- * param a_this the current instance of #CRPropList
- * param the new list to prepend.
+ *Returns the new properties list.
  */
 CRPropList *
 cr_prop_list_prepend (CRPropList * a_this, CRPropList * a_to_prepend)
@@ -141,32 +151,39 @@ cr_prop_list_prepend (CRPropList * a_this, CRPropList * a_to_prepend)
 }
 
 /**
- *Prepends a list to the current list
- * param a_this the current instance of #CRPropList
- * param the new list to prepend.
+ * cr_prop_list_prepend2:
+ * a_this: the current instance of #CRPropList
+ * a_prop_name: property name to append
+ * a_decl: the property value to append.
+ *
+ *Prepends a propertie to a list of properties 
+ *
+ *Returns the new property list.
  */
 CRPropList *
 cr_prop_list_prepend2 (CRPropList * a_this,
-                       CRString * a_prop, CRDeclaration * a_decl)
+                       CRString * a_prop_name, CRDeclaration * a_decl)
 {
         CRPropList *list = NULL,
                 *result = NULL;
 
         g_return_val_if_fail (a_this && PRIVATE (a_this)
-                              && a_prop && a_decl, NULL);
+                              && a_prop_name && a_decl, NULL);
 
         list = cr_prop_list_allocate ();
         g_return_val_if_fail (list, NULL);
-        PRIVATE (list)->prop = a_prop;
+        PRIVATE (list)->prop = a_prop_name;
         PRIVATE (list)->decl = a_decl;
         result = cr_prop_list_prepend (a_this, list);
         return result;
 }
 
 /**
+ * cr_prop_list_set_prop:
+ * a_this: the current instance of #CRPropList
+ * a_prop: the property to set
+ *
  *Sets the property of a CRPropList
- * param a_this the current instance of #CRPropList
- * param a_prop the property to set
  */
 enum CRStatus
 cr_prop_list_set_prop (CRPropList * a_this, CRString * a_prop)
@@ -179,15 +196,18 @@ cr_prop_list_set_prop (CRPropList * a_this, CRString * a_prop)
 }
 
 /**
+ * cr_prop_list_get_prop:
+ * a_this: the current instance of #CRPropList
+ * a_prop: out parameter. The returned property
+ *
  *Getter of the property associated to the current instance
  *of #CRPropList
- * param a_this the current instance of #CRPropList
- * param a_prop out parameter. The returned property
- * return CR_OK upon successful completion, an error code
+ *
+ *Returns CR_OK upon successful completion, an error code
  *otherwise.
  */
 enum CRStatus
-cr_prop_list_get_prop (CRPropList * a_this, CRString ** a_prop)
+cr_prop_list_get_prop (CRPropList const * a_this, CRString ** a_prop)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && a_prop, CR_BAD_PARAM_ERROR);
@@ -196,6 +216,13 @@ cr_prop_list_get_prop (CRPropList * a_this, CRString ** a_prop)
         return CR_OK;
 }
 
+/**
+ * cr_prop_list_set_decl:
+ * @a_this: the current instance of #CRPropList
+ * @a_decl: the new property value.
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
+ */
 enum CRStatus
 cr_prop_list_set_decl (CRPropList * a_this, CRDeclaration * a_decl)
 {
@@ -206,8 +233,15 @@ cr_prop_list_set_decl (CRPropList * a_this, CRDeclaration * a_decl)
         return CR_OK;
 }
 
+/**
+ * cr_prop_list_get_decl:
+ * @a_this: the current instance of #CRPropList
+ * @a_decl: out parameter. The property value
+ *
+ * Returns CR_OK upon successful completion.
+ */
 enum CRStatus
-cr_prop_list_get_decl (CRPropList * a_this, CRDeclaration ** a_decl)
+cr_prop_list_get_decl (CRPropList const * a_this, CRDeclaration ** a_decl)
 {
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && a_decl, CR_BAD_PARAM_ERROR);
@@ -217,12 +251,15 @@ cr_prop_list_get_decl (CRPropList * a_this, CRDeclaration ** a_decl)
 }
 
 /**
- *Lookup a given property/declaration pair
- * param a_this the current instance of #CRPropList
- * param a_prop the property to lookup
- * param a_prop_list out parameter. The property/declaration
+ * cr_prop_list_lookup_prop:
+ * a_this: the current instance of #CRPropList
+ * a_prop: the property to lookup
+ * a_prop_list: out parameter. The property/declaration
  *pair found (if and only if the function returned code if CR_OK)
- * return CR_OK if a prop/decl pair has been found,
+ *
+ *Lookup a given property/declaration pair
+ *
+ *Returns CR_OK if a prop/decl pair has been found,
  *CR_VALUE_NOT_FOUND_ERROR if not, or an error code if something
  *bad happens.
  */
@@ -259,11 +296,12 @@ cr_prop_list_lookup_prop (CRPropList * a_this,
 }
 
 /**
+ * cr_prop_list_get_next:
+ * a_this: the current instance of CRPropList
+ *
  *Gets the next prop/decl pair in the list
- * param a_this the current instance of CRPropList
- * param the next prop/decl pair, or NULL if we
- *reached the end of the list.
- * return the next prop/declaration pair of the list, 
+ *
+ *Returns the next prop/declaration pair of the list, 
  *or NULL if we reached end of list (or if an error occurs)
  */
 CRPropList *
@@ -275,11 +313,12 @@ cr_prop_list_get_next (CRPropList * a_this)
 }
 
 /**
+ * cr_prop_list_get_prev:
+ * a_this: the current instance of CRPropList
+ *
  *Gets the previous prop/decl pair in the list
- * param a_this the current instance of CRPropList
- * param the previous prop/decl pair, or NULL if we
- *reached the end of the list.
- * return the previous prop/declaration pair of the list, 
+ *
+ *Returns the previous prop/declaration pair of the list, 
  *or NULL if we reached end of list (or if an error occurs)
  */
 CRPropList *
@@ -291,10 +330,13 @@ cr_prop_list_get_prev (CRPropList * a_this)
 }
 
 /**
+ * cr_prop_list_unlink:
+ * a_this: the current list of prop/decl pairs
+ * a_pair: the prop/decl pair to unlink.
+ *
  *Unlinks a prop/decl pair from the list
- * param a_this the current list of prop/decl pairs
- * param a_pair the prop/decl pair to unlink.
- * return the new list or NULL in case of an error.
+ *
+ *Returns the new list or NULL in case of an error.
  */
 CRPropList *
 cr_prop_list_unlink (CRPropList * a_this, CRPropList * a_pair)
@@ -330,6 +372,10 @@ cr_prop_list_unlink (CRPropList * a_this, CRPropList * a_pair)
         return a_this;
 }
 
+/**
+ * cr_prop_list_destroy:
+ * @a_this: the current instance of #CRPropList
+ */
 void
 cr_prop_list_destroy (CRPropList * a_this)
 {
diff --git a/src/cr-prop-list.h b/src/cr-prop-list.h
index a003be2..797ba43 100644
--- a/src/cr-prop-list.h
+++ b/src/cr-prop-list.h
@@ -53,7 +53,7 @@ CRPropList *  cr_prop_list_prepend2 (CRPropList *a_this,
 enum CRStatus cr_prop_list_set_prop (CRPropList *a_this,
 				     CRString *a_prop) ;
 
-enum CRStatus cr_prop_list_get_prop (CRPropList *a_this,
+enum CRStatus cr_prop_list_get_prop (CRPropList const *a_this,
 				     CRString **a_prop) ;
 
 enum CRStatus cr_prop_list_lookup_prop (CRPropList *a_this,
@@ -67,7 +67,7 @@ CRPropList * cr_prop_list_get_prev (CRPropList *a_this) ;
 enum CRStatus cr_prop_list_set_decl (CRPropList *a_this,
 				     CRDeclaration *a_decl);
 
-enum CRStatus cr_prop_list_get_decl (CRPropList *a_this,
+enum CRStatus cr_prop_list_get_decl (CRPropList const *a_this,
 				     CRDeclaration **a_decl) ;
 
 CRPropList * cr_prop_list_unlink (CRPropList *a_this, 
diff --git a/src/cr-pseudo.c b/src/cr-pseudo.c
index abb4f9b..a46e69e 100644
--- a/src/cr-pseudo.c
+++ b/src/cr-pseudo.c
@@ -24,37 +24,51 @@
 #include "cr-pseudo.h"
 
 /**
- * file
+ * CRPseudo:
  *The definition of the #CRPseudo class.
  */
 
 /**
+ * cr_pseudo_new:
  *Constructor of the #CRPseudo class.
- * return the newly build instance.
+ *
+ *Returns the newly build instance.
  */
 CRPseudo *
 cr_pseudo_new (void)
 {
-        CRPseudo *result = (CRPseudo *)g_malloc0 (sizeof (CRPseudo));
+        CRPseudo *result = NULL;
+
+        result = g_malloc0 (sizeof (CRPseudo));
 
         return result;
 }
 
+/**
+ * cr_pseudo_to_string:
+ * @a_this: the current instance of #CRPseud.
+ *
+ * Returns the serialized pseudo. Caller must free the returned
+ * string using g_free().
+ */
 guchar *
-cr_pseudo_to_string (CRPseudo * a_this)
+cr_pseudo_to_string (CRPseudo const * a_this)
 {
         guchar *result = NULL;
+        GString *str_buf = NULL;
 
         g_return_val_if_fail (a_this, NULL);
 
-        GString *str_buf = (GString *)g_string_new (NULL);
+        str_buf = g_string_new (NULL);
 
         if (a_this->type == IDENT_PSEUDO) {
+                guchar *name = NULL;
 
-                if (a_this->name == NULL)
+                if (a_this->name == NULL) {
                         goto error;
+                }
 
-                gchar *name = g_strndup (a_this->name->stryng->str, 
+                name = g_strndup (a_this->name->stryng->str, 
                                   a_this->name->stryng->len);
 
                 if (name) {
@@ -63,12 +77,13 @@ cr_pseudo_to_string (CRPseudo * a_this)
                         name = NULL;
                 }
         } else if (a_this->type == FUNCTION_PSEUDO) {
-                gchar *arg = NULL;
+                guchar *name = NULL,
+                        *arg = NULL;
 
                 if (a_this->name == NULL)
                         goto error;
 
-                gchar *name = g_strndup (a_this->name->stryng->str, 
+                name = g_strndup (a_this->name->stryng->str, 
                                   a_this->name->stryng->len);
 
                 if (a_this->extra) {
@@ -92,7 +107,7 @@ cr_pseudo_to_string (CRPseudo * a_this)
         }
 
         if (str_buf) {
-                result = (guchar *)str_buf->str;
+                result = str_buf->str;
                 g_string_free (str_buf, FALSE);
                 str_buf = NULL;
         }
@@ -105,12 +120,15 @@ cr_pseudo_to_string (CRPseudo * a_this)
 }
 
 /**
+ * cr_pseudo_dump:
+ * a_this: the current instance of pseudo
+ * a_fp: the destination file pointer.
+ *
  *Dumps the pseudo to a file.
- * param a_this the current instance of pseudo
- * param a_fp the destination file pointer.
+ *
  */
 void
-cr_pseudo_dump (CRPseudo * a_this, FILE * a_fp)
+cr_pseudo_dump (CRPseudo const * a_this, FILE * a_fp)
 {
         guchar *tmp_str = NULL;
 
@@ -125,8 +143,10 @@ cr_pseudo_dump (CRPseudo * a_this, FILE * a_fp)
 }
 
 /**
+ * cr_pseudo_destroy:
+ * a_this: the current instance to destroy.
+ *
  *destructor of the #CRPseudo class.
- * param a_this the current instance to destroy.
  */
 void
 cr_pseudo_destroy (CRPseudo * a_this)
diff --git a/src/cr-pseudo.h b/src/cr-pseudo.h
index 6de6c9e..8917da4 100644
--- a/src/cr-pseudo.h
+++ b/src/cr-pseudo.h
@@ -53,9 +53,9 @@ struct _CRPseudo
 
 CRPseudo * cr_pseudo_new (void) ;
 
-guchar * cr_pseudo_to_string (CRPseudo *a_this) ;
+guchar * cr_pseudo_to_string (CRPseudo const *a_this) ;
 
-void cr_pseudo_dump (CRPseudo *a_this, FILE *a_fp) ;
+void cr_pseudo_dump (CRPseudo const *a_this, FILE *a_fp) ;
 
 void cr_pseudo_destroy (CRPseudo *a_this) ;
 
diff --git a/src/cr-rgb.c b/src/cr-rgb.c
index 893c208..6313a58 100644
--- a/src/cr-rgb.c
+++ b/src/cr-rgb.c
@@ -29,164 +29,169 @@
 #include "cr-parser.h"
 
 static CRRgb gv_standard_colors[] = {
-        {"aliceblue",	240, 248, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"antiquewhite",	250, 235, 215, FALSE, FALSE, FALSE, {0,0,0}},
-        {"aqua",	  0, 255, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"aquamarine",	127, 255, 212, FALSE, FALSE, FALSE, {0,0,0}},
-        {"azure",	240, 255, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"beige",	245, 245, 220, FALSE, FALSE, FALSE, {0,0,0}},
-        {"bisque",	255, 228, 196, FALSE, FALSE, FALSE, {0,0,0}},
-        {"black",	  0,   0,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"blanchedalmond",	255, 235, 205, FALSE, FALSE, FALSE, {0,0,0}},
-        {"blue",	  0,   0, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"blueviolet",	138,  43, 226, FALSE, FALSE, FALSE, {0,0,0}},
-        {"brown",	165,  42,  42, FALSE, FALSE, FALSE, {0,0,0}},
-        {"burlywood",	222, 184, 135, FALSE, FALSE, FALSE, {0,0,0}},
-        {"cadetblue",	 95, 158, 160, FALSE, FALSE, FALSE, {0,0,0}},
-        {"chartreuse",	127, 255,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"chocolate",	210, 105,  30, FALSE, FALSE, FALSE, {0,0,0}},
-        {"coral",	255, 127,  80, FALSE, FALSE, FALSE, {0,0,0}},
-        {"cornflowerblue",	100, 149, 237, FALSE, FALSE, FALSE, {0,0,0}},
-        {"cornsilk",	255, 248, 220, FALSE, FALSE, FALSE, {0,0,0}},
-        {"crimson",	220,  20,  60, FALSE, FALSE, FALSE, {0,0,0}},
-        {"cyan",	  0, 255, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkblue",	  0,   0, 139, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkcyan",	  0, 139, 139, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkgoldenrod",	184, 134,  11, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkgray",	169, 169, 169, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkgreen",	  0, 100,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkgrey",	169, 169, 169, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkkhaki",	189, 183, 107, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkmagenta",	139,   0, 139, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkolivegreen",	 85, 107,  47, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkorange",	255, 140,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkorchid",	153,  50, 204, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkred",	139,   0,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darksalmon",	233, 150, 122, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkseagreen",	143, 188, 143, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkslateblue",	 72,  61, 139, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkslategray",	 47,  79,  79, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkslategrey",	 47,  79,  79, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkturquoise",	  0, 206, 209, FALSE, FALSE, FALSE, {0,0,0}},
-        {"darkviolet",	148,   0, 211, FALSE, FALSE, FALSE, {0,0,0}},
-        {"deeppink",	255,  20, 147, FALSE, FALSE, FALSE, {0,0,0}},
-        {"deepskyblue",	  0, 191, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"dimgray",	105, 105, 105, FALSE, FALSE, FALSE, {0,0,0}},
-        {"dimgrey",	105, 105, 105, FALSE, FALSE, FALSE, {0,0,0}},
-        {"dodgerblue",	 30, 144, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"firebrick",	178,  34,  34, FALSE, FALSE, FALSE, {0,0,0}},
-        {"floralwhite",	255, 250, 240, FALSE, FALSE, FALSE, {0,0,0}},
-        {"forestgreen",	 34, 139,  34, FALSE, FALSE, FALSE, {0,0,0}},
-        {"fuchsia",	255,   0, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"gainsboro",	220, 220, 220, FALSE, FALSE, FALSE, {0,0,0}},
-        {"ghostwhite",	248, 248, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"gold",	255, 215,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"goldenrod",	218, 165,  32, FALSE, FALSE, FALSE, {0,0,0}},
-        {"gray",	128, 128, 128, FALSE, FALSE, FALSE, {0,0,0}},
-        {"grey",	128, 128, 128, FALSE, FALSE, FALSE, {0,0,0}},
-        {"green",	  0, 128,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"greenyellow",	173, 255,  47, FALSE, FALSE, FALSE, {0,0,0}},
-        {"honeydew",	240, 255, 240, FALSE, FALSE, FALSE, {0,0,0}},
-        {"hotpink",	255, 105, 180, FALSE, FALSE, FALSE, {0,0,0}},
-        {"indianred",	205,  92,  92, FALSE, FALSE, FALSE, {0,0,0}},
-        {"indigo",	 75,   0, 130, FALSE, FALSE, FALSE, {0,0,0}},
-        {"ivory",	255, 255, 240, FALSE, FALSE, FALSE, {0,0,0}},
-        {"khaki",	240, 230, 140, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lavender",	230, 230, 250, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lavenderblush",	255, 240, 245, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lawngreen",	124, 252,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lemonchiffon",	255, 250, 205, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightblue",	173, 216, 230, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightcoral",	240, 128, 128, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightcyan",	224, 255, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightgoldenrodyellow",	250, 250, 210, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightgray",	211, 211, 211, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightgreen",	144, 238, 144, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightgrey",	211, 211, 211, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightpink",	255, 182, 193, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightsalmon",	255, 160, 122, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightseagreen",	 32, 178, 170, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightskyblue",	135, 206, 250, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightslategray",	119, 136, 153, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightslategrey",	119, 136, 153, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightsteelblue",	176, 196, 222, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lightyellow",	255, 255, 224, FALSE, FALSE, FALSE, {0,0,0}},
-        {"lime",	  0, 255,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"limegreen",	 50, 205,  50, FALSE, FALSE, FALSE, {0,0,0}},
-        {"linen",	250, 240, 230, FALSE, FALSE, FALSE, {0,0,0}},
-        {"magenta",	255,   0, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"maroon",	128,   0,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mediumaquamarine",	102, 205, 170, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mediumblue",	  0,   0, 205, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mediumorchid",	186,  85, 211, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mediumpurple",	147, 112, 219, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mediumseagreen",	 60, 179, 113, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mediumslateblue",	123, 104, 238, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mediumspringgreen",	  0, 250, 154, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mediumturquoise",	 72, 209, 204, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mediumvioletred",	199,  21, 133, FALSE, FALSE, FALSE, {0,0,0}},
-        {"midnightblue",	 25,  25, 112, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mintcream",	245, 255, 250, FALSE, FALSE, FALSE, {0,0,0}},
-        {"mistyrose",	255, 228, 225, FALSE, FALSE, FALSE, {0,0,0}},
-        {"moccasin",	255, 228, 181, FALSE, FALSE, FALSE, {0,0,0}},
-        {"navajowhite",	255, 222, 173, FALSE, FALSE, FALSE, {0,0,0}},
-        {"navy",	  0,   0, 128, FALSE, FALSE, FALSE, {0,0,0}},
-        {"oldlace",	253, 245, 230, FALSE, FALSE, FALSE, {0,0,0}},
-        {"olive",	128, 128,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"olivedrab",	107, 142,  35, FALSE, FALSE, FALSE, {0,0,0}},
-        {"orange",	255, 165,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"orangered",	255,  69,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"orchid",	218, 112, 214, FALSE, FALSE, FALSE, {0,0,0}},
-        {"palegoldenrod",	238, 232, 170, FALSE, FALSE, FALSE, {0,0,0}},
-        {"palegreen",	152, 251, 152, FALSE, FALSE, FALSE, {0,0,0}},
-        {"paleturquoise",	175, 238, 238, FALSE, FALSE, FALSE, {0,0,0}},
-        {"palevioletred",	219, 112, 147, FALSE, FALSE, FALSE, {0,0,0}},
-        {"papayawhip",	255, 239, 213, FALSE, FALSE, FALSE, {0,0,0}},
-        {"peachpuff",	255, 218, 185, FALSE, FALSE, FALSE, {0,0,0}},
-        {"peru",	205, 133,  63, FALSE, FALSE, FALSE, {0,0,0}},
-        {"pink",	255, 192, 203, FALSE, FALSE, FALSE, {0,0,0}},
-        {"plum",	221, 160, 221, FALSE, FALSE, FALSE, {0,0,0}},
-        {"powderblue",	176, 224, 230, FALSE, FALSE, FALSE, {0,0,0}},
-        {"purple",	128,   0, 128, FALSE, FALSE, FALSE, {0,0,0}},
-        {"red", 	255,   0,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"rosybrown",	188, 143, 143, FALSE, FALSE, FALSE, {0,0,0}},
-        {"royalblue",	 65, 105, 225, FALSE, FALSE, FALSE, {0,0,0}},
-        {"saddlebrown",	139,  69,  19, FALSE, FALSE, FALSE, {0,0,0}},
-        {"salmon",	250, 128, 114, FALSE, FALSE, FALSE, {0,0,0}},
-        {"sandybrown",	244, 164,  96, FALSE, FALSE, FALSE, {0,0,0}},
-        {"seagreen",	 46, 139,  87, FALSE, FALSE, FALSE, {0,0,0}},
-        {"seashell",	255, 245, 238, FALSE, FALSE, FALSE, {0,0,0}},
-        {"sienna",	160,  82,  45, FALSE, FALSE, FALSE, {0,0,0}},
-        {"silver",	192, 192, 192, FALSE, FALSE, FALSE, {0,0,0}},
-        {"skyblue",	135, 206, 235, FALSE, FALSE, FALSE, {0,0,0}},
-        {"slateblue",	106,  90, 205, FALSE, FALSE, FALSE, {0,0,0}},
-        {"slategray",	112, 128, 144, FALSE, FALSE, FALSE, {0,0,0}},
-        {"slategrey",	112, 128, 144, FALSE, FALSE, FALSE, {0,0,0}},
-        {"snow",	255, 250, 250, FALSE, FALSE, FALSE, {0,0,0}},
-        {"springgreen",	  0, 255, 127, FALSE, FALSE, FALSE, {0,0,0}},
-        {"steelblue",	 70, 130, 180, FALSE, FALSE, FALSE, {0,0,0}},
-        {"tan", 	210, 180, 140, FALSE, FALSE, FALSE, {0,0,0}},
-        {"teal",	  0, 128, 128, FALSE, FALSE, FALSE, {0,0,0}},
-        {"thistle",	216, 191, 216, FALSE, FALSE, FALSE, {0,0,0}},
-        {"tomato",	255,  99,  71, FALSE, FALSE, FALSE, {0,0,0}},
-        {"turquoise",	 64, 224, 208, FALSE, FALSE, FALSE, {0,0,0}},
-        {"violet",	238, 130, 238, FALSE, FALSE, FALSE, {0,0,0}},
-        {"wheat",	245, 222, 179, FALSE, FALSE, FALSE, {0,0,0}},
-        {"white",	255, 255, 255, FALSE, FALSE, FALSE, {0,0,0}},
-        {"whitesmoke",	245, 245, 245, FALSE, FALSE, FALSE, {0,0,0}},
-        {"yellow",	255, 255,   0, FALSE, FALSE, FALSE, {0,0,0}},
-        {"yellowgreen",	154, 205,  50, FALSE, FALSE, FALSE, {0,0,0}},
-        {"transparent",	255, 255, 255, FALSE, FALSE, TRUE, {0,0,0}}
+        {"aliceblue", 240, 248, 255, 0,},
+        {"antiquewhite", 250, 235, 215, 0},
+        {"aqua", 0, 255, 255, 0},
+        {"aquamarine", 127, 255, 212, 0},
+        {"azure", 240, 255, 255, 0},
+        {"beige", 245, 245, 220, 0},
+        {"bisque", 255, 228, 196, 0},
+        {"black", 0, 0, 0, 0},
+        {"blanchedalmond", 255, 235, 205, 0},
+        {"blue", 0, 0, 255, 0},
+        {"blueviolet", 138, 43, 226, 0},
+        {"brown", 165, 42, 42, 0},
+        {"burlywood", 222, 184, 135, 0},
+        {"cadetblue", 95, 158, 160, 0},
+        {"chartreuse", 127, 255, 0, 0},
+        {"chocolate", 210, 105, 30, 0},
+        {"coral", 255, 127, 80, 0},
+        {"cornflowerblue", 100, 149, 237, 0},
+        {"cornsilk", 255, 248, 220, 0},
+        {"crimson", 220, 20, 60, 0},
+        {"cyan", 0, 255, 255, 0},
+        {"darkblue", 0, 0, 139, 0},
+        {"darkcyan", 0, 139, 139, 0},
+        {"darkgoldenrod", 184, 134, 11, 0},
+        {"darkgray", 169, 169, 169, 0},
+        {"darkgreen", 0, 100, 0, 0},
+        {"darkgrey", 169, 169, 169, 0},
+        {"darkkhaki", 189, 183, 107, 0},
+        {"darkmagenta", 139, 0, 139, 0},
+        {"darkolivegreen", 85, 107, 47, 0},
+        {"darkorange", 255, 140, 0, 0},
+        {"darkorchid", 153, 50, 204, 0},
+        {"darkred", 139, 0, 0, 0},
+        {"darksalmon", 233, 150, 122, 0},
+        {"darkseagreen", 143, 188, 143, 0},
+        {"darkslateblue", 72, 61, 139, 0},
+        {"darkslategray", 47, 79, 79, 0},
+        {"darkslategrey", 47, 79, 79, 0},
+        {"darkturquoise", 0, 206, 209, 0},
+        {"darkviolet", 148, 0, 211, 0},
+        {"deeppink", 255, 20, 147, 0},
+        {"deepskyblue", 0, 191, 255, 0},
+        {"dimgray", 105, 105, 105, 0},
+        {"dimgrey", 105, 105, 105, 0},
+        {"dodgerblue", 30, 144, 255, 0},
+        {"firebrick", 178, 34, 34, 0},
+        {"floralwhite", 255, 250, 240, 0},
+        {"forestgreen", 34, 139, 34, 0},
+        {"fuchsia", 255, 0, 255, 0},
+        {"gainsboro", 220, 220, 220, 0},
+        {"ghostwhite", 248, 248, 255, 0},
+        {"gold", 255, 215, 0, 0},
+        {"goldenrod", 218, 165, 32, 0},
+        {"gray", 128, 128, 128, 0},
+        {"grey", 128, 128, 128, 0},
+        {"green", 0, 128, 0, 0},
+        {"greenyellow", 173, 255, 47, 0},
+        {"honeydew", 240, 255, 240, 0},
+        {"hotpink", 255, 105, 180, 0},
+        {"indianred", 205, 92, 92, 0},
+        {"indigo", 75, 0, 130, 0},
+        {"ivory", 255, 255, 240, 0},
+        {"khaki", 240, 230, 140, 0},
+        {"lavender", 230, 230, 250, 0},
+        {"lavenderblush", 255, 240, 245, 0},
+        {"lawngreen", 124, 252, 0, 0},
+        {"lemonchiffon", 255, 250, 205, 0},
+        {"lightblue", 173, 216, 230, 0},
+        {"lightcoral", 240, 128, 128, 0},
+        {"lightcyan", 224, 255, 255, 0},
+        {"lightgoldenrodyellow", 250, 250, 210, 0},
+        {"lightgray", 211, 211, 211, 0},
+        {"lightgreen", 144, 238, 144, 0},
+        {"lightgrey", 211, 211, 211, 0},
+        {"lightpink", 255, 182, 193, 0},
+        {"lightsalmon", 255, 160, 122, 0},
+        {"lightseagreen", 32, 178, 170, 0},
+        {"lightskyblue", 135, 206, 250, 0},
+        {"lightslategray", 119, 136, 153, 0},
+        {"lightslategrey", 119, 136, 153, 0},
+        {"lightsteelblue", 176, 196, 222, 0},
+        {"lightyellow", 255, 255, 224, 0},
+        {"lime", 0, 255, 0, 0},
+        {"limegreen", 50, 205, 50, 0},
+        {"linen", 250, 240, 230, 0},
+        {"magenta", 255, 0, 255, 0},
+        {"maroon", 128, 0, 0, 0},
+        {"mediumaquamarine", 102, 205, 170, 0},
+        {"mediumblue", 0, 0, 205, 0},
+        {"mediumorchid", 186, 85, 211, 0},
+        {"mediumpurple", 147, 112, 219, 0},
+        {"mediumseagreen", 60, 179, 113, 0},
+        {"mediumslateblue", 123, 104, 238, 0},
+        {"mediumspringgreen", 0, 250, 154, 0},
+        {"mediumturquoise", 72, 209, 204, 0},
+        {"mediumvioletred", 199, 21, 133, 0},
+        {"midnightblue", 25, 25, 112, 0},
+        {"mintcream", 245, 255, 250, 0},
+        {"mistyrose", 255, 228, 225, 0},
+        {"moccasin", 255, 228, 181, 0},
+        {"navajowhite", 255, 222, 173, 0},
+        {"navy", 0, 0, 128, 0},
+        {"oldlace", 253, 245, 230, 0},
+        {"olive", 128, 128, 0, 0},
+        {"olivedrab", 107, 142, 35, 0},
+        {"orange", 255, 165, 0, 0},
+        {"orangered", 255, 69, 0, 0},
+        {"orchid", 218, 112, 214, 0},
+        {"palegoldenrod", 238, 232, 170, 0},
+        {"palegreen", 152, 251, 152, 0},
+        {"paleturquoise", 175, 238, 238, 0},
+        {"palevioletred", 219, 112, 147, 0},
+        {"papayawhip", 255, 239, 213, 0},
+        {"peachpuff", 255, 218, 185, 0},
+        {"peru", 205, 133, 63, 0},
+        {"pink", 255, 192, 203, 0},
+        {"plum", 221, 160, 221, 0},
+        {"powderblue", 176, 224, 230, 0},
+        {"purple", 128, 0, 128, 0},
+        {"red", 255, 0, 0, 0},
+        {"rosybrown", 188, 143, 143, 0},
+        {"royalblue", 65, 105, 225, 0},
+        {"saddlebrown", 139, 69, 19, 0},
+        {"salmon", 250, 128, 114, 0},
+        {"sandybrown", 244, 164, 96, 0},
+        {"seagreen", 46, 139, 87, 0},
+        {"seashell", 255, 245, 238, 0},
+        {"sienna", 160, 82, 45, 0},
+        {"silver", 192, 192, 192, 0},
+        {"skyblue", 135, 206, 235, 0},
+        {"slateblue", 106, 90, 205, 0},
+        {"slategray", 112, 128, 144, 0},
+        {"slategrey", 112, 128, 144, 0},
+        {"snow", 255, 250, 250, 0},
+        {"springgreen", 0, 255, 127, 0},
+        {"steelblue", 70, 130, 180, 0},
+        {"tan", 210, 180, 140, 0},
+        {"teal", 0, 128, 128, 0},
+        {"thistle", 216, 191, 216, 0},
+        {"tomato", 255, 99, 71, 0},
+        {"turquoise", 64, 224, 208, 0},
+        {"violet", 238, 130, 238, 0},
+        {"wheat", 245, 222, 179, 0},
+        {"white", 255, 255, 255, 0},
+        {"whitesmoke", 245, 245, 245, 0,},
+        {"yellow", 255, 255, 0, 0,},
+        {"yellowgreen", 154, 205, 50, 0,},
+        {"transparent", 255, 255, 255, 0, 0, 1}
 };
 
 /**
+ * cr_rgb_new:
+ *
  *The default constructor of #CRRgb.
- * return the newly built instance of #CRRgb
+ *
+ *Returns the newly built instance of #CRRgb
  */
 CRRgb *
 cr_rgb_new (void)
 {
-        CRRgb *result = (CRRgb *)g_try_malloc (sizeof (CRRgb));
+        CRRgb *result = NULL;
+
+        result = g_try_malloc (sizeof (CRRgb));
 
         if (result == NULL) {
                 cr_utils_trace_info ("No more memory");
@@ -199,13 +204,16 @@ cr_rgb_new (void)
 }
 
 /**
- *A constructor of #CRRgb.
- * param a_red the red component of the color.
- * param a_green the green component of the color.
- * param a_blue the blue component of the color.
- * param a_unit the unit of the rgb values.
+ * cr_rgb_new_with_vals:
+ * a_red: the red component of the color.
+ * a_green: the green component of the color.
+ * a_blue: the blue component of the color.
+ * a_unit: the unit of the rgb values.
  *(either percentage or integer values)
- * return the newly built instance of #CRRgb.
+ *
+ *A constructor of #CRRgb.
+ *
+ *Returns the newly built instance of #CRRgb.
  */
 CRRgb *
 cr_rgb_new_with_vals (gulong a_red, gulong a_green,
@@ -226,16 +234,21 @@ cr_rgb_new_with_vals (gulong a_red, gulong a_green,
 }
 
 /**
+ * cr_rgb_to_string:
+ * a_this: the instance of #CRRgb to serialize.
+ *
  *Serializes the rgb into a zero terminated string.
- * param a_this the instance of #CRRgb to serialize.
- * return the zero terminated string containing the serialized
+ *
+ *Returns the zero terminated string containing the serialized
  *rgb. MUST BE FREED by the caller using g_free().
  */
 guchar *
-cr_rgb_to_string (CRRgb * a_this)
+cr_rgb_to_string (CRRgb const * a_this)
 {
-        gchar *result = NULL;
-        GString *str_buf = (GString *)g_string_new (NULL);
+        guchar *result = NULL;
+        GString *str_buf = NULL;
+
+        str_buf = g_string_new (NULL);
         g_return_val_if_fail (str_buf, NULL);
 
         if (a_this->is_percentage == 1) {
@@ -263,18 +276,20 @@ cr_rgb_to_string (CRRgb * a_this)
                 g_string_free (str_buf, FALSE);
         }
 
-        return (guchar *)result;
+        return result;
 }
 
 /**
+ * cr_rgb_dump:
+ * a_this: the "this pointer" of
+ *the current instance of #CRRgb.
+ * a_fp: the destination file pointer.
+ *
  *Dumps the current instance of #CRRgb
  *to a file.
- * param a_this the "this pointer" of
- *the current instance of #CRRgb.
- * param a_fp the destination file pointer.
  */
 void
-cr_rgb_dump (CRRgb * a_this, FILE * a_fp)
+cr_rgb_dump (CRRgb const * a_this, FILE * a_fp)
 {
         guchar *str = NULL;
 
@@ -290,10 +305,13 @@ cr_rgb_dump (CRRgb * a_this, FILE * a_fp)
 }
 
 /**
+ * cr_rgb_compute_from_percentage:
+ * a_this: the current instance of #CRRgb
+ *
  *If the rgb values are expressed in percentage,
  *compute their real value.
- * param a_this the current instance of #CRRgb
- * return
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_rgb_compute_from_percentage (CRRgb * a_this)
@@ -310,12 +328,15 @@ cr_rgb_compute_from_percentage (CRRgb * a_this)
 }
 
 /**
+ * cr_rgb_set:
+ * a_this: the current instance of #CRRgb.
+ * a_red: the red value.
+ * a_green: the green value.
+ * a_blue: the blue value.
+ *
  *Sets rgb values to the RGB.
- * param a_this the current instance of #CRRgb.
- * param a_red the red value.
- * param a_green the green value.
- * param a_blue the blue value.
- * return CR_OK upon successful completion, an error code
+ *
+ *Returns CR_OK upon successful completion, an error code
  *otherwise.
  */
 enum CRStatus
@@ -340,11 +361,14 @@ cr_rgb_set (CRRgb * a_this, gulong a_red,
 }
 
 /**
+ * cr_rgb_set_to_inherit:
+ * a_this: the current instance of #CRRgb
+ *
  *sets the value of the rgb to inherit.
  *Look at the css spec from chapter 6.1 to 6.2 to understand
  *the meaning of "inherit".
- * param a_this the current instance of #CRRgb
  *
+ * Returns CR_OK upon succesful completion, an error code otherwise.
  */
 enum CRStatus 
 cr_rgb_set_to_inherit (CRRgb *a_this, gboolean a_inherit)
@@ -356,8 +380,15 @@ cr_rgb_set_to_inherit (CRRgb *a_this, gboolean a_inherit)
         return CR_OK ;
 }
 
+/**
+ * cr_rgb_is_set_to_inherit:
+ *
+ * @a_this: the current instance of #CRRgb.
+ *
+ * Returns TRUE if the rgb is set to the value "inherit", FALSE otherwise.
+ */
 gboolean
-cr_rgb_is_set_to_inherit (CRRgb *a_this)
+cr_rgb_is_set_to_inherit (CRRgb const *a_this)
 {
         g_return_val_if_fail (a_this, CR_BAD_PARAM_ERROR) ;
 
@@ -365,15 +396,18 @@ cr_rgb_is_set_to_inherit (CRRgb *a_this)
 }
 
 /**
+ * cr_rgb_is_set_to_transparent:
+ * a_this: the current instance of
+ *#CRRgb
+ *
  *Tests if the the rgb is set to the
  *value "transparent" or not.
- * param a_this the current instance of
- *#CRRgb
- * return TRUE if the rgb has been set to
+ *
+ *Returns TRUE if the rgb has been set to
  *transparent, FALSE otherwise.
  */
 gboolean 
-cr_rgb_is_set_to_transparent (CRRgb *a_this)
+cr_rgb_is_set_to_transparent (CRRgb const *a_this)
 {
         g_return_val_if_fail (a_this, FALSE) ;
         return a_this->is_transparent ;
@@ -381,9 +415,12 @@ cr_rgb_is_set_to_transparent (CRRgb *a_this)
 
 
 /**
+ * cr_rgb_set_to_transparent:
+ * a_this: the current instance of #CRRgb
+ * a_is_transparent: set to transparent or not.
+ *
  *Sets the rgb to the "transparent" value (or not)
- * param a_this the current instance of #CRRgb
- * param a_is_transparent set to transparent or not.
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus 
 cr_rgb_set_to_transparent (CRRgb *a_this, 
@@ -395,13 +432,16 @@ cr_rgb_set_to_transparent (CRRgb *a_this,
 }
 
 /**
+ * cr_rgb_set_from_rgb:
+ * a_this: the current instance of #CRRgb.
+ * a_rgb: the rgb to "copy"
+ *
  *Sets the rgb from an other one.
- * param a_this the current instance of #CRRgb.
- * param a_rgb the rgb to "copy"
- * return CR_OK upon successful completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
-cr_rgb_set_from_rgb (CRRgb * a_this, CRRgb * a_rgb)
+cr_rgb_set_from_rgb (CRRgb * a_this, CRRgb const * a_rgb)
 {
         g_return_val_if_fail (a_this && a_rgb, CR_BAD_PARAM_ERROR);
 
@@ -410,6 +450,13 @@ cr_rgb_set_from_rgb (CRRgb * a_this, CRRgb * a_rgb)
         return CR_OK;
 }
 
+/**
+ * cr_rgb_set_from_name:
+ * @a_this: the current instance of #CRRgb
+ * @a_color_name: the color name
+ * 
+ * Returns CR_OK upon successful completion, an error code otherwise.
+ */
 enum CRStatus
 cr_rgb_set_from_name (CRRgb * a_this, const guchar * a_color_name)
 {
@@ -418,14 +465,14 @@ cr_rgb_set_from_name (CRRgb * a_this, const guchar * a_color_name)
 
         g_return_val_if_fail (a_this && a_color_name, CR_BAD_PARAM_ERROR);
 
-        for (i = 0; i < sizeof (gv_standard_colors); i++) {
-                if (!strcmp ((char *)a_color_name, gv_standard_colors[i].name)) {
+        for (i = 0; i < G_N_ELEMENTS (gv_standard_colors); i++) {
+                if (!strcmp (a_color_name, gv_standard_colors[i].name)) {
                         cr_rgb_set_from_rgb (a_this, &gv_standard_colors[i]);
                         break;
                 }
         }
 
-        if (i < sizeof (gv_standard_colors))
+        if (i < G_N_ELEMENTS (gv_standard_colors))
                 status = CR_OK;
         else
                status = CR_UNKNOWN_TYPE_ERROR;
@@ -433,6 +480,13 @@ cr_rgb_set_from_name (CRRgb * a_this, const guchar * a_color_name)
         return status;
 }
 
+/**
+ * cr_rgb_set_from_hex_str:
+ * @a_this: the current instance of #CRRgb
+ * @a_hex: the hexadecimal value to set.
+ *
+ * Returns CR_OK upon successful completion.
+ */
 enum CRStatus
 cr_rgb_set_from_hex_str (CRRgb * a_this, const guchar * a_hex)
 {
@@ -442,7 +496,7 @@ cr_rgb_set_from_hex_str (CRRgb * a_this, const guchar * a_hex)
 
         g_return_val_if_fail (a_this && a_hex, CR_BAD_PARAM_ERROR);
 
-        if (strlen ((char *)a_hex) == 3) {
+        if (strlen (a_hex) == 3) {
                 for (i = 0; i < 3; i++) {
                         if (a_hex[i] >= '0' && a_hex[i] <= '9') {
                                 colors[i] = a_hex[i] - '0';
@@ -457,7 +511,7 @@ cr_rgb_set_from_hex_str (CRRgb * a_this, const guchar * a_hex)
                                 status = CR_UNKNOWN_TYPE_ERROR;
                         }
                 }
-        } else if (strlen ((char *)a_hex) == 6) {
+        } else if (strlen (a_hex) == 6) {
                 for (i = 0; i < 6; i++) {
                         if (a_hex[i] >= '0' && a_hex[i] <= '9') {
                                 colors[i / 2] <<= 4;
@@ -488,15 +542,19 @@ cr_rgb_set_from_hex_str (CRRgb * a_this, const guchar * a_hex)
 }
 
 /**
+ * cr_rgb_set_from_term:
+ * a_this: the instance of #CRRgb to set
+ * a_value: the terminal from which to set
+ *
  *Set the rgb from a terminal symbol
- * param a_this the instance of #CRRgb to set
- * param a_value the terminal from which to set
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_rgb_set_from_term (CRRgb *a_this, const struct _CRTerm *a_value)
 {
-    enum CRStatus status = CR_OK ;
-    g_return_val_if_fail (a_this && a_value,
+        enum CRStatus status = CR_OK ;
+        g_return_val_if_fail (a_this && a_value,
                               CR_BAD_PARAM_ERROR) ;
 
 	switch(a_value->type) {
@@ -518,7 +576,7 @@ cr_rgb_set_from_term (CRRgb *a_this, const struct _CRTerm *a_value)
 			} else  {
                         	status = cr_rgb_set_from_name
                                         (a_this,
-                                         (guchar *)a_value->content.str->stryng->str) ;
+                                         a_value->content.str->stryng->str) ;
 			}
                 } else {
                         cr_utils_trace_info 
@@ -531,7 +589,7 @@ cr_rgb_set_from_term (CRRgb *a_this, const struct _CRTerm *a_value)
                     && a_value->content.str->stryng->str) {
                         status = cr_rgb_set_from_hex_str
                                 (a_this, 
-                                 (guchar *)a_value->content.str->stryng->str) ;
+                                 a_value->content.str->stryng->str) ;
                 } else {
                         cr_utils_trace_info
                                 ("a_value has NULL string value") ;
@@ -544,7 +602,7 @@ cr_rgb_set_from_term (CRRgb *a_this, const struct _CRTerm *a_value)
 }
 
 enum CRStatus 
-cr_rgb_copy (CRRgb *a_dest, CRRgb*a_src)
+cr_rgb_copy (CRRgb *a_dest, CRRgb const *a_src)
 {
         g_return_val_if_fail (a_dest && a_src,
                               CR_BAD_PARAM_ERROR) ;
@@ -554,9 +612,11 @@ cr_rgb_copy (CRRgb *a_dest, CRRgb*a_src)
 }
 
 /**
- *Destructor of #CRRgb.
- * param a_this the "this pointer" of the
+ * cr_rgb_destroy:
+ * a_this: the "this pointer" of the
  *current instance of #CRRgb.
+ *
+ *Destructor of #CRRgb.
  */
 void
 cr_rgb_destroy (CRRgb * a_this)
@@ -566,13 +626,16 @@ cr_rgb_destroy (CRRgb * a_this)
 }
 
 /**
+ * cr_rgb_parse_from_buf:
+ * a_str: a string that contains a color description
+ * a_enc: the encoding of a_str
+ *
  *Parses a text buffer that contains a rgb color
  *
- * param a_str a string that contains a color description
- * param a_enc the encoding of a_str
- * return the parsed color, or NULL in case of error
+ *Returns the parsed color, or NULL in case of error
  */
-CRRgb *cr_rgb_parse_from_buf (const guchar *a_str,
+CRRgb *
+cr_rgb_parse_from_buf (const guchar *a_str,
                               enum CREncoding a_enc)
 {
 	enum CRStatus status = CR_OK ;
@@ -582,7 +645,7 @@ CRRgb *cr_rgb_parse_from_buf (const guchar *a_str,
 	
 	g_return_val_if_fail (a_str, NULL);
 	
-	parser = cr_parser_new_from_buf ((guchar *)a_str, strlen ((char *)a_str), 
+	parser = cr_parser_new_from_buf ((guchar*)a_str, strlen (a_str), 
                                          a_enc, FALSE) ;
 
 	g_return_val_if_fail (parser, NULL);
@@ -612,6 +675,4 @@ cleanup:
 	}
 	return result ;
 }
-	  
 
-	
diff --git a/src/cr-rgb.h b/src/cr-rgb.h
index 50cec94..a127a44 100644
--- a/src/cr-rgb.h
+++ b/src/cr-rgb.h
@@ -39,12 +39,12 @@ struct _CRRgb
          *Either NO_UNIT (integer) or 
          *UNIT_PERCENTAGE (percentage).
          */
-        const gchar *name ;
+        const guchar *name ;
         glong red ;
         glong green ;
         glong blue ;
         gboolean is_percentage ;
-	    gboolean inherit ;
+	gboolean inherit ;
         gboolean is_transparent ;
         CRParsingLocation location ;
 } ;
@@ -63,17 +63,17 @@ enum CRStatus cr_rgb_set (CRRgb *a_this, gulong a_red,
                           gulong a_green, gulong a_blue,
                           gboolean a_is_percentage) ;
 
-enum CRStatus cr_rgb_copy (CRRgb *a_dest, CRRgb*a_src) ;
+enum CRStatus cr_rgb_copy (CRRgb *a_dest, CRRgb const *a_src) ;
 
 enum CRStatus  cr_rgb_set_to_inherit (CRRgb *a_this, gboolean a_inherit) ;
 
-gboolean cr_rgb_is_set_to_inherit (CRRgb *a_this) ;
+gboolean cr_rgb_is_set_to_inherit (CRRgb const *a_this) ;
 
-gboolean cr_rgb_is_set_to_transparent (CRRgb *a_this) ;
+gboolean cr_rgb_is_set_to_transparent (CRRgb const *a_this) ;
 
 enum CRStatus cr_rgb_set_to_transparent (CRRgb *a_this, 
                                          gboolean a_is_transparent) ;
-enum CRStatus cr_rgb_set_from_rgb (CRRgb *a_this, CRRgb *a_rgb) ;
+enum CRStatus cr_rgb_set_from_rgb (CRRgb *a_this, CRRgb const *a_rgb) ;
 
 enum CRStatus cr_rgb_set_from_name (CRRgb *a_this, const guchar *a_color_name) ;
 
@@ -83,9 +83,9 @@ struct _CRTerm;
 
 enum CRStatus cr_rgb_set_from_term (CRRgb *a_this, const struct _CRTerm *a_value);
 
-guchar * cr_rgb_to_string (CRRgb *a_this) ;
+guchar * cr_rgb_to_string (CRRgb const *a_this) ;
 
-void cr_rgb_dump (CRRgb *a_this, FILE *a_fp) ;
+void cr_rgb_dump (CRRgb const *a_this, FILE *a_fp) ;
 
 void cr_rgb_destroy (CRRgb *a_this) ;
 
diff --git a/src/cr-sel-eng.h b/src/cr-sel-eng.h
index 1b025d8..e64d133 100644
--- a/src/cr-sel-eng.h
+++ b/src/cr-sel-eng.h
@@ -30,9 +30,9 @@
 #include "cr-style.h"
 #include "cr-prop-list.h"
 
-//#ifdef CROCO_HAVE_LIBXML2
+#ifdef CROCO_HAVE_LIBXML2
  #include <libxml/tree.h>
-//#endif
+#endif
 
 
 
diff --git a/src/cr-selector.c b/src/cr-selector.c
index d85b3ef..a3603e3 100644
--- a/src/cr-selector.c
+++ b/src/cr-selector.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
 
 /*
  * This file is part of The Croco Library
@@ -25,16 +25,22 @@
 #include "cr-parser.h"
 
 /**
- *Creates a new instance of #CRSelector.
- * param a_simple_sel the initial simple selector list
+ * cr_selector_new:
+ *
+ * a_simple_sel: the initial simple selector list
  *of the current instance of #CRSelector.
- * return the newly built instance of #CRSelector, or
+ *
+ *Creates a new instance of #CRSelector.
+ *
+ *Returns the newly built instance of #CRSelector, or
  *NULL in case of failure.
  */
 CRSelector *
 cr_selector_new (CRSimpleSel * a_simple_sel)
 {
-        CRSelector *result = (CRSelector *)g_try_malloc (sizeof (CRSelector));
+        CRSelector *result = NULL;
+
+        result = g_try_malloc (sizeof (CRSelector));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
@@ -51,8 +57,7 @@ cr_selector_parse_from_buf (const guchar * a_char_buf, enum CREncoding a_enc)
 
         g_return_val_if_fail (a_char_buf, NULL);
 
-        parser = cr_parser_new_from_buf ((guchar*)a_char_buf,
-		                                 strlen ((char *)a_char_buf),
+        parser = cr_parser_new_from_buf ((guchar*)a_char_buf, strlen (a_char_buf),
                                          a_enc, FALSE);
         g_return_val_if_fail (parser, NULL);
 
@@ -60,10 +65,14 @@ cr_selector_parse_from_buf (const guchar * a_char_buf, enum CREncoding a_enc)
 }
 
 /**
+ * cr_selector_append:
+ *
+ * a_this: the current instance of #CRSelector.
+ * a_new: the instance of #CRSelector to be appended.
+ *
  *Appends a new instance of #CRSelector to the current selector list.
- * param a_this the current instance of #CRSelector.
- * param a_new the instance of #CRSelector to be appended.
- * return the new list.
+ *
+ *Returns the new list.
  */
 CRSelector *
 cr_selector_append (CRSelector * a_this, CRSelector * a_new)
@@ -84,10 +93,14 @@ cr_selector_append (CRSelector * a_this, CRSelector * a_new)
 }
 
 /**
+ * cr_selector_prepend:
+ *
+ * a_this: the current instance of #CRSelector list.
+ * a_new: the instance of #CRSelector.
+ *
  *Prepends an element to the #CRSelector list.
- * param a_this the current instance of #CRSelector list.
- * param a_new the instance of #CRSelector.
- * return the new list.
+ * 
+ *Returns the new list.
  */
 CRSelector *
 cr_selector_prepend (CRSelector * a_this, CRSelector * a_new)
@@ -103,10 +116,14 @@ cr_selector_prepend (CRSelector * a_this, CRSelector * a_new)
 }
 
 /**
+ * cr_selector_append_simple_sel:
+ *
+ * a_this: the current instance of #CRSelector.
+ * a_simple_sel: the simple selector to append.
+ *
  *append a simple selector to the current #CRSelector list.
- * param a_this the current instance of #CRSelector.
- * param a_simple_sel the simple selector to append.
- * return the new list or NULL in case of failure.
+ *
+ *Returns the new list or NULL in case of failure.
  */
 CRSelector *
 cr_selector_append_simple_sel (CRSelector * a_this,
@@ -121,15 +138,16 @@ cr_selector_append_simple_sel (CRSelector * a_this,
 }
 
 guchar *
-cr_selector_to_string (CRSelector * a_this)
+cr_selector_to_string (CRSelector const * a_this)
 {
         guchar *result = NULL;
+        GString *str_buf = NULL;
 
-        GString *str_buf = (GString *)g_string_new (NULL);
+        str_buf = g_string_new (NULL);
         g_return_val_if_fail (str_buf, NULL);
 
         if (a_this) {
-                CRSelector *cur = NULL;
+                CRSelector const *cur = NULL;
 
                 for (cur = a_this; cur; cur = cur->next) {
                         if (cur->simple_sel) {
@@ -143,7 +161,7 @@ cr_selector_to_string (CRSelector * a_this)
                                                 g_string_append (str_buf, 
 								 ", ");
 
-                                        g_string_append (str_buf, (gchar *)tmp_str);
+                                        g_string_append (str_buf, tmp_str);
 
                                         g_free (tmp_str);
                                         tmp_str = NULL;
@@ -153,7 +171,7 @@ cr_selector_to_string (CRSelector * a_this)
         }
 
         if (str_buf) {
-                result = (guchar *)str_buf->str;
+                result = str_buf->str;
                 g_string_free (str_buf, FALSE);
                 str_buf = NULL;
         }
@@ -162,12 +180,15 @@ cr_selector_to_string (CRSelector * a_this)
 }
 
 /**
+ * cr_selector_dump:
+ *
+ * a_this: the current instance of #CRSelector.
+ * a_fp: the destination file.
+ *
  *Serializes the current instance of #CRSelector to a file.
- * param a_this the current instance of #CRSelector.
- * param a_fp the destination file.
  */
 void
-cr_selector_dump (CRSelector * a_this, FILE * a_fp)
+cr_selector_dump (CRSelector const * a_this, FILE * a_fp)
 {
         guchar *tmp_buf = NULL;
 
@@ -182,9 +203,12 @@ cr_selector_dump (CRSelector * a_this, FILE * a_fp)
 }
 
 /**
+ * cr_selector_ref:
+ *
+ * a_this: the current instance of #CRSelector.
+ *
  *Increments the ref count of the current instance
  *of #CRSelector.
- * param a_this the current instance of #CRSelector.
  */
 void
 cr_selector_ref (CRSelector * a_this)
@@ -195,12 +219,16 @@ cr_selector_ref (CRSelector * a_this)
 }
 
 /**
+ * cr_selector_unref:
+ *
+ * a_this: the current instance of #CRSelector.
+ *
  *Decrements the ref count of the current instance of
  *#CRSelector.
  *If the ref count reaches zero, the current instance of
  *#CRSelector is destroyed.
- * param a_this the current instance of #CRSelector.
- * return TRUE if this function destroyed the current instance
+ *
+ *Returns TRUE if this function destroyed the current instance
  *of #CRSelector, FALSE otherwise.
  */
 gboolean
@@ -221,8 +249,11 @@ cr_selector_unref (CRSelector * a_this)
 }
 
 /**
+ * cr_selector_destroy:
+ *
+ * a_this: the current instance of #CRSelector.
+ *
  *Destroys the selector list.
- * param a_this the current instance of #CRSelector.
  */
 void
 cr_selector_destroy (CRSelector * a_this)
diff --git a/src/cr-selector.h b/src/cr-selector.h
index 6bf7697..dd6a7f7 100644
--- a/src/cr-selector.h
+++ b/src/cr-selector.h
@@ -1,4 +1,4 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
 
 /*
  * This file is part of The Croco Library
@@ -80,9 +80,9 @@ CRSelector* cr_selector_append_simple_sel (CRSelector *a_this,
 
 CRSelector* cr_selector_prepend (CRSelector *a_this, CRSelector *a_new) ;
 
-guchar * cr_selector_to_string (CRSelector *a_this) ;
+guchar * cr_selector_to_string (CRSelector const *a_this) ;
 
-void cr_selector_dump (CRSelector *a_this, FILE *a_fp) ;
+void cr_selector_dump (CRSelector const *a_this, FILE *a_fp) ;
 
 void cr_selector_ref (CRSelector *a_this) ;
 
diff --git a/src/cr-simple-sel.c b/src/cr-simple-sel.c
index 18dd340..e8d57af 100644
--- a/src/cr-simple-sel.c
+++ b/src/cr-simple-sel.c
@@ -26,14 +26,18 @@
 #include "cr-simple-sel.h"
 
 /**
+ * cr_simple_sel_new:
+ *
  *The constructor of #CRSimpleSel.
  *
- * return the new instance of #CRSimpleSel.
+ *Returns the new instance of #CRSimpleSel.
  */
 CRSimpleSel *
 cr_simple_sel_new (void)
 {
-        CRSimpleSel *result = (CRSimpleSel *)g_try_malloc (sizeof (CRSimpleSel));
+        CRSimpleSel *result = NULL;
+
+        result = g_try_malloc (sizeof (CRSimpleSel));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
@@ -44,11 +48,14 @@ cr_simple_sel_new (void)
 }
 
 /**
+ * cr_simple_sel_append_simple_sel:
+ *
  *Appends a simpe selector to the current list of simple selector.
  *
- * param a_this the this pointer of the current instance of #CRSimpleSel.
- * param a_sel the simple selector to append.
- * return the new list upon successfull completion, an error code otherwise.
+ * a_this: the this pointer of the current instance of #CRSimpleSel.
+ * a_sel: the simple selector to append.
+ *
+ *Returns: the new list upon successfull completion, an error code otherwise.
  */
 CRSimpleSel *
 cr_simple_sel_append_simple_sel (CRSimpleSel * a_this, CRSimpleSel * a_sel)
@@ -69,10 +76,14 @@ cr_simple_sel_append_simple_sel (CRSimpleSel * a_this, CRSimpleSel * a_sel)
 }
 
 /**
+ * cr_simple_sel_prepend_simple_sel:
+ *
+ * a_this: the this pointer of the current instance of #CRSimpleSel.
+ * a_sel: the simple selector to prepend.
+ *
  *Prepends a simple selector to the current list of simple selectors.
- * param a_this the this pointer of the current instance of #CRSimpleSel.
- * param a_sel the simple selector to prepend.
- * return the new list upon successfull completion, an error code otherwise.
+ *
+ *Returns the new list upon successfull completion, an error code otherwise.
  */
 CRSimpleSel *
 cr_simple_sel_prepend_simple_sel (CRSimpleSel * a_this, CRSimpleSel * a_sel)
@@ -89,19 +100,19 @@ cr_simple_sel_prepend_simple_sel (CRSimpleSel * a_this, CRSimpleSel * a_sel)
 }
 
 guchar *
-cr_simple_sel_to_string (CRSimpleSel * a_this)
+cr_simple_sel_to_string (CRSimpleSel const * a_this)
 {
         GString *str_buf = NULL;
         guchar *result = NULL;
 
-        CRSimpleSel *cur = NULL;
+        CRSimpleSel const *cur = NULL;
 
         g_return_val_if_fail (a_this, NULL);
 
         str_buf = g_string_new (NULL);
         for (cur = a_this; cur; cur = cur->next) {
                 if (cur->name) {
-                        gchar *str = g_strndup (cur->name->stryng->str,
+                        guchar *str = g_strndup (cur->name->stryng->str,
                                                  cur->name->stryng->len);
 
                         if (str) {
@@ -129,8 +140,9 @@ cr_simple_sel_to_string (CRSimpleSel * a_this)
                 }
 
                 if (cur->add_sel) {
+                        guchar *tmp_str = NULL;
 
-                        gchar *tmp_str = (gchar *)cr_additional_sel_to_string (cur->add_sel);
+                        tmp_str = cr_additional_sel_to_string (cur->add_sel);
                         if (tmp_str) {
                                 g_string_append (str_buf, tmp_str);
                                 g_free (tmp_str);
@@ -140,7 +152,7 @@ cr_simple_sel_to_string (CRSimpleSel * a_this)
         }
 
         if (str_buf) {
-                result = (guchar *)str_buf->str;
+                result = str_buf->str;
                 g_string_free (str_buf, FALSE);
                 str_buf = NULL;
         }
@@ -150,7 +162,7 @@ cr_simple_sel_to_string (CRSimpleSel * a_this)
 
 
 guchar *
-cr_simple_sel_one_to_string (CRSimpleSel * a_this)
+cr_simple_sel_one_to_string (CRSimpleSel const * a_this)
 {
         GString *str_buf = NULL;
         guchar *result = NULL;
@@ -159,7 +171,7 @@ cr_simple_sel_one_to_string (CRSimpleSel * a_this)
 
         str_buf = g_string_new (NULL);
         if (a_this->name) {
-                gchar *str = g_strndup (a_this->name->stryng->str,
+                guchar *str = g_strndup (a_this->name->stryng->str,
                                          a_this->name->stryng->len);
 
                 if (str) {
@@ -170,8 +182,9 @@ cr_simple_sel_one_to_string (CRSimpleSel * a_this)
         }
 
         if (a_this->add_sel) {
+                guchar *tmp_str = NULL;
 
-                gchar *tmp_str = (gchar *)cr_additional_sel_to_string (a_this->add_sel);
+                tmp_str = cr_additional_sel_to_string (a_this->add_sel);
                 if (tmp_str) {
                         g_string_append_printf
                                 (str_buf, "%s", tmp_str);
@@ -181,7 +194,7 @@ cr_simple_sel_one_to_string (CRSimpleSel * a_this)
         }
 
         if (str_buf) {
-                result = (guchar *)str_buf->str;
+                result = str_buf->str;
                 g_string_free (str_buf, FALSE);
                 str_buf = NULL;
         }
@@ -190,16 +203,18 @@ cr_simple_sel_one_to_string (CRSimpleSel * a_this)
 }
 
 /**
+ * cr_simple_sel_dump:
+ * a_this: the current instance of #CRSimpleSel.
+ * a_fp: the destination file pointer.
+ *
  *Dumps the selector to a file.
  *TODO: add the support of unicode in the dump.
  *
- * param a_this the current instance of #CRSimpleSel.
- * param a_fp the destination file pointer.
- * return CR_OK upon successfull completion, an error code
+ *Returns CR_OK upon successfull completion, an error code
  *otherwise.
  */
 enum CRStatus
-cr_simple_sel_dump (CRSimpleSel * a_this, FILE * a_fp)
+cr_simple_sel_dump (CRSimpleSel const * a_this, FILE * a_fp)
 {
         guchar *tmp_str = NULL;
 
@@ -218,16 +233,20 @@ cr_simple_sel_dump (CRSimpleSel * a_this, FILE * a_fp)
 }
 
 /**
+ * cr_simple_sel_compute_specificity:
+ *
+ * a_this: the current instance of #CRSimpleSel
+ *
  *Computes the selector (combinator separated list of simple selectors)
  *as defined in the css2 spec in chapter 6.4.3
- * param a_this the current instance of #CRSimpleSel
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successfull completion, an error code otherwise.
  */
 enum CRStatus
 cr_simple_sel_compute_specificity (CRSimpleSel * a_this)
 {
-        CRAdditionalSel *cur_add_sel = NULL;
-        CRSimpleSel *cur_sel = NULL;
+        CRAdditionalSel const *cur_add_sel = NULL;
+        CRSimpleSel const *cur_sel = NULL;
         gulong a = 0,
                 b = 0,
                 c = 0;
@@ -274,10 +293,12 @@ cr_simple_sel_compute_specificity (CRSimpleSel * a_this)
 }
 
 /**
+ * cr_simple_sel_destroy:
+ *
+ * a_this: the this pointer of the current instance of #CRSimpleSel.
+ *
  *The destructor of the current instance of
  *#CRSimpleSel.
- * param a_this the this pointer of the current instance of #CRSimpleSel.
- *
  */
 void
 cr_simple_sel_destroy (CRSimpleSel * a_this)
diff --git a/src/cr-simple-sel.h b/src/cr-simple-sel.h
index 29033af..d8edc00 100644
--- a/src/cr-simple-sel.h
+++ b/src/cr-simple-sel.h
@@ -40,9 +40,9 @@ G_BEGIN_DECLS
 enum Combinator
 {
         NO_COMBINATOR,
-        COMB_WS,/*whitesape*/
-        COMB_PLUS,
-        COMB_GT/*greater than*/
+        COMB_WS,/*whitespace: descendent*/
+        COMB_PLUS,/*'+': preceded by*/
+        COMB_GT/*greater than ('>'): child*/
 } ;
 
 enum SimpleSelectorType
@@ -112,13 +112,13 @@ CRSimpleSel * cr_simple_sel_append_simple_sel (CRSimpleSel *a_this,
 CRSimpleSel * cr_simple_sel_prepend_simple_sel (CRSimpleSel *a_this, 
                                                 CRSimpleSel *a_sel) ;
 
-guchar * cr_simple_sel_to_string (CRSimpleSel *a_this) ;
+guchar * cr_simple_sel_to_string (CRSimpleSel const *a_this) ;
 
-guchar * cr_simple_sel_one_to_string (CRSimpleSel * a_this) ;
+guchar * cr_simple_sel_one_to_string (CRSimpleSel const * a_this) ;
 
-enum CRStatus cr_simple_sel_dump (CRSimpleSel *a_this, FILE *a_fp) ;
+enum CRStatus cr_simple_sel_dump (CRSimpleSel const *a_this, FILE *a_fp) ;
 
-enum CRStatus cr_simple_sel_dump_attr_sel_list (CRSimpleSel *a_this) ;
+enum CRStatus cr_simple_sel_dump_attr_sel_list (CRSimpleSel const *a_this) ;
 
 enum CRStatus cr_simple_sel_compute_specificity (CRSimpleSel *a_this) ;
 
diff --git a/src/cr-statement.c b/src/cr-statement.c
index 40df498..a1b8259 100644
--- a/src/cr-statement.c
+++ b/src/cr-statement.c
@@ -25,8 +25,6 @@
 #include "cr-statement.h"
 #include "cr-parser.h"
 
-#define UNUSED(_param) ((void)(_param))
-
 /**
  * file
  *Definition of the #CRStatement class.
@@ -38,13 +36,11 @@ static void cr_statement_clear (CRStatement * a_this);
 
 static void  
 parse_font_face_start_font_face_cb (CRDocHandler * a_this,
-                                    CRParsingLocation * a_location)
+                                    CRParsingLocation *a_location)
 {
         CRStatement *stmt = NULL;
         enum CRStatus status = CR_OK;
 
-        UNUSED(a_location);
-
         stmt = cr_statement_new_at_font_face_rule (NULL, NULL);
         g_return_if_fail (stmt);
 
@@ -86,8 +82,6 @@ parse_font_face_property_cb (CRDocHandler * a_this,
         CRStatement *stmt = NULL;
         CRStatement **stmtptr = NULL;
 
-        UNUSED(a_important);
-
         g_return_if_fail (a_this && a_name);
 
 	stmtptr = &stmt;
@@ -144,14 +138,12 @@ static void
 parse_page_start_page_cb (CRDocHandler * a_this,
                           CRString * a_name, 
                           CRString * a_pseudo_page,
-                          CRParsingLocation * a_location)
+                          CRParsingLocation *a_location)
 {
         CRStatement *stmt = NULL;
         enum CRStatus status = CR_OK;
         CRString *page_name = NULL, *pseudo_name = NULL ;
 
-        UNUSED(a_location);
-
         if (a_name)
                 page_name = cr_string_dup (a_name) ;
         if (a_pseudo_page)
@@ -225,9 +217,6 @@ parse_page_end_page_cb (CRDocHandler * a_this,
         CRStatement *stmt = NULL;
         CRStatement **stmtptr = NULL;
 
-        UNUSED(a_name);
-        UNUSED(a_pseudo_page);
-
 	stmtptr = &stmt;
         status = cr_doc_handler_get_ctxt (a_this, (gpointer *) stmtptr);
         g_return_if_fail (status == CR_OK && stmt);
@@ -240,14 +229,12 @@ parse_page_end_page_cb (CRDocHandler * a_this,
 static void
 parse_at_media_start_media_cb (CRDocHandler * a_this, 
                                GList * a_media_list,
-                               CRParsingLocation * a_location)
+                               CRParsingLocation *a_location)
 {
         enum CRStatus status = CR_OK;
         CRStatement *at_media = NULL;
         GList *media_list = NULL;
 
-        UNUSED(a_location);
-
         g_return_if_fail (a_this && a_this->priv);
 
         if (a_media_list) {
@@ -380,8 +367,6 @@ parse_at_media_end_media_cb (CRDocHandler * a_this,
         CRStatement *at_media = NULL;
         CRStatement **at_media_ptr = NULL;
 
-        UNUSED(a_media_list);
-
         g_return_if_fail (a_this && a_this->priv);
 
 	at_media_ptr = &at_media;
@@ -590,27 +575,32 @@ cr_statement_clear (CRStatement * a_this)
 }
 
 /**
+ * cr_statement_ruleset_to_string:
+ *
+ * a_this: the current instance of #CRStatement
+ * a_indent: the number of whitespace to use for indentation
+ *
  *Serializes the ruleset statement into a string
- * param a_this the current instance of #CRStatement
- * param a_indent the number of whitespace to use for indentation
- * return the newly allocated serialised string. Must be freed
+ *
+ *Returns the newly allocated serialised string. Must be freed
  *by the caller, using g_free().
  */
 static gchar *
-cr_statement_ruleset_to_string (CRStatement * a_this, glong a_indent)
+cr_statement_ruleset_to_string (CRStatement const * a_this, glong a_indent)
 {
+        GString *stringue = NULL;
         gchar *tmp_str = NULL,
                 *result = NULL;
 
         g_return_val_if_fail (a_this && a_this->type == RULESET_STMT, NULL);
 
-        GString *stringue = (GString *)g_string_new (NULL);
+        stringue = g_string_new (NULL);
 
         if (a_this->kind.ruleset->sel_list) {
                 if (a_indent)
                         cr_utils_dump_n_chars2 (' ', stringue, a_indent);
 
-                tmp_str = (gchar *)
+                tmp_str =
                         cr_selector_to_string (a_this->kind.ruleset->
                                                sel_list);
                 if (tmp_str) {
@@ -621,7 +611,7 @@ cr_statement_ruleset_to_string (CRStatement * a_this, glong a_indent)
         }
         g_string_append (stringue, " {\n");
         if (a_this->kind.ruleset->decl_list) {
-                tmp_str = (gchar *)cr_declaration_list_to_string2
+                tmp_str = cr_declaration_list_to_string2
                         (a_this->kind.ruleset->decl_list,
                          a_indent + DECLARATION_INDENT_NB, TRUE);
                 if (tmp_str) {
@@ -648,15 +638,19 @@ cr_statement_ruleset_to_string (CRStatement * a_this, glong a_indent)
 
 
 /**
- *Serializes a font face rule statement into a string.
- * param a_this the current instance of #CRStatement to consider
+ * cr_statement_font_face_rule_to_string:
+ *
+ * a_this: the current instance of #CRStatement to consider
  *It must be a font face rule statement.
- * param a_indent the number of white spaces of indentation.
- * return the serialized string. Must be deallocated by the caller
+ * a_indent: the number of white spaces of indentation.
+ *
+ *Serializes a font face rule statement into a string.
+ *
+ *Returns the serialized string. Must be deallocated by the caller
  *using g_free().
  */
 static gchar *
-cr_statement_font_face_rule_to_string (CRStatement * a_this, 
+cr_statement_font_face_rule_to_string (CRStatement const * a_this,
                                        glong a_indent)
 {
         gchar *result = NULL, *tmp_str = NULL ;
@@ -667,13 +661,13 @@ cr_statement_font_face_rule_to_string (CRStatement * a_this,
                               NULL);
 
         if (a_this->kind.font_face_rule->decl_list) {
-                stringue = (GString *)g_string_new (NULL) ;
+                stringue = g_string_new (NULL) ;
                 g_return_val_if_fail (stringue, NULL) ;
                 if (a_indent)
                         cr_utils_dump_n_chars2 (' ', stringue, 
                                         a_indent);
                 g_string_append (stringue, "@font-face {\n");
-                tmp_str = (gchar *)cr_declaration_list_to_string2 
+                tmp_str = cr_declaration_list_to_string2 
                         (a_this->kind.font_face_rule->decl_list,
                          a_indent + DECLARATION_INDENT_NB, TRUE) ;
                 if (tmp_str) {
@@ -694,13 +688,17 @@ cr_statement_font_face_rule_to_string (CRStatement * a_this,
 
 
 /**
- *Serialises an @charset statement into a string.
- * param a_this the statement to serialize.
- * return the serialized charset statement. Must be
+ * cr_statement_charset_to_string:
+ *
+ *Serialises an \ charset statement into a string.
+ * a_this: the statement to serialize.
+ * a_indent: the number of indentation spaces
+ *
+ *Returns the serialized charset statement. Must be
  *freed by the caller using g_free().
  */
 static gchar *
-cr_statement_charset_to_string (CRStatement *a_this, 
+cr_statement_charset_to_string (CRStatement const *a_this,
                                 gulong a_indent)
 {
         gchar *str = NULL ;
@@ -736,18 +734,22 @@ cr_statement_charset_to_string (CRStatement *a_this,
 
 
 /**
+ * cr_statement_at_page_rule_to_string:
+ *
  *Serialises the at page rule statement into a string
- * param a_this the current instance of #CRStatement. Must
- *be an "@page" rule statement.
- * return the serialized string. Must be freed by the caller
+ * a_this: the current instance of #CRStatement. Must
+ *be an "\ page" rule statement.
+ *
+ *Returns the serialized string. Must be freed by the caller
  */
 static gchar *
-cr_statement_at_page_rule_to_string (CRStatement *a_this,
+cr_statement_at_page_rule_to_string (CRStatement const *a_this,
                                      gulong a_indent)
 {
+        GString *stringue = NULL;
         gchar *result = NULL ;
 
-        GString *stringue = (GString *)g_string_new (NULL) ;
+        stringue = g_string_new (NULL) ;
 
         cr_utils_dump_n_chars2 (' ', stringue, a_indent) ;
         g_string_append (stringue, "@page");
@@ -768,7 +770,7 @@ cr_statement_at_page_rule_to_string (CRStatement *a_this,
         if (a_this->kind.page_rule->decl_list) {
                 gchar *str = NULL ;
                 g_string_append (stringue, " {\n");
-                str = (gchar *)cr_declaration_list_to_string2
+                str = cr_declaration_list_to_string2
                         (a_this->kind.page_rule->decl_list,
                          a_indent + DECLARATION_INDENT_NB, TRUE) ;
                 if (str) {
@@ -786,33 +788,33 @@ cr_statement_at_page_rule_to_string (CRStatement *a_this,
 
 
 /**
- *Serializes an @media statement.
+ *Serializes an \ media statement.
  * param a_this the current instance of #CRStatement
  * param a_indent the number of spaces of indentation.
- * return the serialized @media statement. Must be freed
+ * return the serialized \ media statement. Must be freed
  *by the caller using g_free().
  */
 static gchar *
-cr_statement_media_rule_to_string (CRStatement *a_this,
+cr_statement_media_rule_to_string (CRStatement const *a_this,
                                    gulong a_indent)
 {
         gchar *str = NULL ;
         GString *stringue = NULL ;
-        GList *cur = NULL;
+        GList const *cur = NULL;
 
         g_return_val_if_fail (a_this->type == AT_MEDIA_RULE_STMT,
                               NULL);
 
         if (a_this->kind.media_rule) {
-                stringue = (GString *)g_string_new (NULL) ;                
+                stringue = g_string_new (NULL) ;                
                 cr_utils_dump_n_chars2 (' ', stringue, a_indent);
                 g_string_append (stringue, "@media");
 
                 for (cur = a_this->kind.media_rule->media_list; cur;
                      cur = cur->next) {
                         if (cur->data) {
-                                gchar *str = cr_string_dup2
-                                        ((CRString *) cur->data);
+                                guchar *str = cr_string_dup2
+                                        ((CRString const *) cur->data);
 
                                 if (str) {
                                         if (cur->prev) {
@@ -848,11 +850,11 @@ cr_statement_media_rule_to_string (CRStatement *a_this,
 
 
 static gchar *
-cr_statement_import_rule_to_string (CRStatement *a_this,
+cr_statement_import_rule_to_string (CRStatement const *a_this,
                                     gulong a_indent)
 {
         GString *stringue = NULL ;
-        gchar *str = NULL;
+        guchar *str = NULL;
 
         g_return_val_if_fail (a_this
                               && a_this->type == AT_IMPORT_RULE_STMT
@@ -861,7 +863,7 @@ cr_statement_import_rule_to_string (CRStatement *a_this,
 
         if (a_this->kind.import_rule->url
             && a_this->kind.import_rule->url->stryng) { 
-                stringue = (GString *)g_string_new (NULL) ;
+                stringue = g_string_new (NULL) ;
                 g_return_val_if_fail (stringue, NULL) ;
                 str = g_strndup (a_this->kind.import_rule->url->stryng->str,
                                  a_this->kind.import_rule->url->stryng->len);
@@ -876,12 +878,12 @@ cr_statement_import_rule_to_string (CRStatement *a_this,
                         return NULL;
 
                 if (a_this->kind.import_rule->media_list) {
-                        GList *cur = NULL;
+                        GList const *cur = NULL;
 
                         for (cur = a_this->kind.import_rule->media_list;
                              cur; cur = cur->next) {
                                 if (cur->data) {
-                                        CRString *crstr = (CRString *)cur->data;
+                                        CRString const *crstr = cur->data;
 
                                         if (cur->prev) {
                                                 g_string_append 
@@ -914,12 +916,16 @@ cr_statement_import_rule_to_string (CRStatement *a_this,
  ******************/
 
 /**
+ * cr_statement_does_buf_parses_against_core:
+ *
+ * a_buf: the buffer to parse.
+ * a_encoding: the character encoding of a_buf.
+ *
  *Tries to parse a buffer and says whether if the content of the buffer
  *is a css statement as defined by the "Core CSS Grammar" (chapter 4 of the
  *css spec) or not.
- * param a_buf the buffer to parse.
- * param a_encoding the character encoding of a_buf.
- * return TRUE if the buffer parses against the core grammar, false otherwise.
+ *
+ *Returns TRUE if the buffer parses against the core grammar, false otherwise.
  */
 gboolean
 cr_statement_does_buf_parses_against_core (const guchar * a_buf,
@@ -929,8 +935,7 @@ cr_statement_does_buf_parses_against_core (const guchar * a_buf,
         enum CRStatus status = CR_OK;
         gboolean result = FALSE;
 
-        parser = cr_parser_new_from_buf ((guchar*)a_buf,
-		                                 strlen ((char *)a_buf),
+        parser = cr_parser_new_from_buf ((guchar*)a_buf, strlen (a_buf),
                                          a_encoding, FALSE);
         g_return_val_if_fail (parser, FALSE);
 
@@ -953,13 +958,17 @@ cr_statement_does_buf_parses_against_core (const guchar * a_buf,
 }
 
 /**
+ * cr_statement_parse_from_buf:
+ *
+ * a_buf: the buffer to parse.
+ * a_encoding: the character encoding of a_buf.
+ *
  *Parses a buffer that contains a css statement and returns 
- *an instance of #CRStatement in case of successfull parsing.
- *TODO: at support of "@import" rules.
- * param a_buf the buffer to parse.
- * param a_encoding the character encoding of a_buf.
- * return the newly built instance of #CRStatement in case
- *of successfull parsing, NULL otherwise.
+ *an instance of #CRStatement in case of successful parsing.
+ *TODO: at support of "\ import" rules.
+ *
+ *Returns the newly built instance of #CRStatement in case
+ *of successful parsing, NULL otherwise.
  */
 CRStatement *
 cr_statement_parse_from_buf (const guchar * a_buf, enum CREncoding a_encoding)
@@ -968,7 +977,7 @@ cr_statement_parse_from_buf (const guchar * a_buf, enum CREncoding a_encoding)
 
         /*
          *The strategy of this function is "brute force".
-         *It tries to parse all the types of #CRStatement it knows about.
+         *It tries to parse all the types of CRStatement it knows about.
          *I could do this a smarter way but I don't have the time now.
          *I think I will revisit this when time of performances and
          *pull based incremental parsing comes.
@@ -1023,11 +1032,15 @@ cr_statement_parse_from_buf (const guchar * a_buf, enum CREncoding a_encoding)
 }
 
 /**
- *Parses a buffer that contains a ruleset statement and instanciates
+ * cr_statement_ruleset_parse_from_buf:
+ *
+ * a_buf: the buffer to parse.
+ * a_enc: the character encoding of a_buf.
+ *
+ *Parses a buffer that contains a ruleset statement an instanciates
  *a #CRStatement of type RULESET_STMT.
- * param a_buf the buffer to parse.
- * param a_enc the character encoding of a_buf.
- * param the newly built instance of #CRStatement in case of successful parsing,
+ *
+ *Returns the newly built instance of #CRStatement in case of successful parsing,
  *NULL otherwise.
  */
 CRStatement *
@@ -1042,14 +1055,13 @@ cr_statement_ruleset_parse_from_buf (const guchar * a_buf,
 
         g_return_val_if_fail (a_buf, NULL);
 
-        parser = cr_parser_new_from_buf ((guchar*)a_buf,
-		                                 strlen ((char *)a_buf), 
+        parser = cr_parser_new_from_buf ((guchar*)a_buf, strlen (a_buf), 
                                          a_enc, FALSE);
 
         g_return_val_if_fail (parser, NULL);
 
         sac_handler = cr_doc_handler_new ();
-        g_return_val_if_fail (sac_handler, NULL);
+        g_return_val_if_fail (parser, NULL);
 
         sac_handler->start_selector = parse_ruleset_start_selector_cb;
         sac_handler->end_selector = parse_ruleset_end_selector_cb;
@@ -1088,15 +1100,19 @@ cr_statement_ruleset_parse_from_buf (const guchar * a_buf,
 }
 
 /**
- *Creates a new instance of #CRStatement of type
- *#CRRulSet.
- * param a_sel_list the list of #CRSimpleSel (selectors)
+ * cr_statement_new_ruleset:
+ *
+ * a_sel_list: the list of #CRSimpleSel (selectors)
  *the rule applies to.
- * param a_decl_list the list of instances of #CRDeclaration
+ * a_decl_list: the list of instances of #CRDeclaration
  *that composes the ruleset.
- * param a_media_types a list of instances of GString that
+ * a_media_types: a list of instances of GString that
  *describe the media list this ruleset applies to.
- * return the new instance of #CRStatement or NULL if something
+ *
+ *Creates a new instance of #CRStatement of type
+ *#CRRulSet.
+ *
+ *Returns the new instance of #CRStatement or NULL if something
  *went wrong.
  */
 CRStatement *
@@ -1105,6 +1121,8 @@ cr_statement_new_ruleset (CRStyleSheet * a_sheet,
                           CRDeclaration * a_decl_list,
                           CRStatement * a_parent_media_rule)
 {
+        CRStatement *result = NULL;
+
         g_return_val_if_fail (a_sel_list, NULL);
 
         if (a_parent_media_rule) {
@@ -1115,7 +1133,7 @@ cr_statement_new_ruleset (CRStyleSheet * a_sheet,
                                       NULL);
         }
 
-        CRStatement *result = (CRStatement *)g_try_malloc (sizeof (CRStatement));
+        result = g_try_malloc (sizeof (CRStatement));
 
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
@@ -1124,7 +1142,7 @@ cr_statement_new_ruleset (CRStyleSheet * a_sheet,
 
         memset (result, 0, sizeof (CRStatement));
         result->type = RULESET_STMT;
-        result->kind.ruleset = (CRRuleSet *)g_try_malloc (sizeof (CRRuleSet));
+        result->kind.ruleset = g_try_malloc (sizeof (CRRuleSet));
 
         if (!result->kind.ruleset) {
                 cr_utils_trace_info ("Out of memory");
@@ -1153,11 +1171,15 @@ cr_statement_new_ruleset (CRStyleSheet * a_sheet,
 }
 
 /**
- *Parses a buffer that contains an "@media" declaration
- *and builds an @media css statement.
- * param a_buf the input to parse.
- * param a_enc the encoding of the buffer.
- * return the @media statement, or NULL if the buffer could not
+ * cr_statement_at_media_rule_parse_from_buf:
+ *
+ * a_buf: the input to parse.
+ * a_enc: the encoding of the buffer.
+ *
+ *Parses a buffer that contains an "\ media" declaration
+ *and builds an \ media css statement.
+ *
+ *Returns the \ media statement, or NULL if the buffer could not
  *be successfully parsed.
  */
 CRStatement *
@@ -1170,8 +1192,7 @@ cr_statement_at_media_rule_parse_from_buf (const guchar * a_buf,
         CRDocHandler *sac_handler = NULL;
         enum CRStatus status = CR_OK;
 
-        parser = cr_parser_new_from_buf ((guchar*)a_buf,
-		                                 strlen ((char *)a_buf), 
+        parser = cr_parser_new_from_buf ((guchar*)a_buf, strlen (a_buf), 
                                          a_enc, FALSE);
         if (!parser) {
                 cr_utils_trace_info ("Instanciation of the parser failed");
@@ -1227,22 +1248,27 @@ cr_statement_at_media_rule_parse_from_buf (const guchar * a_buf,
 }
 
 /**
+ * cr_statement_new_at_media_rule:
+ *
+ * a_ruleset: the ruleset statements contained
+ *in the \ media rule.
+ * a_media: the media string list. A list of GString pointers.
+ *
  *Instanciates an instance of #CRStatement of type
- *AT_MEDIA_RULE_STMT (@media ruleset).
- * param a_ruleset the ruleset statements contained
- *in the @media rule.
- * param a_media, the media string list. A list of GString pointers.
+ *AT_MEDIA_RULE_STMT (\ media ruleset).
+ *
  */
 CRStatement *
 cr_statement_new_at_media_rule (CRStyleSheet * a_sheet,
                                 CRStatement * a_rulesets, GList * a_media)
 {
-        CRStatement *cur = NULL;
+        CRStatement *result = NULL,
+                *cur = NULL;
 
         if (a_rulesets)
                 g_return_val_if_fail (a_rulesets->type == RULESET_STMT, NULL);
 
-        CRStatement *result = (CRStatement *)g_try_malloc (sizeof (CRStatement));
+        result = g_try_malloc (sizeof (CRStatement));
 
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
@@ -1252,7 +1278,7 @@ cr_statement_new_at_media_rule (CRStyleSheet * a_sheet,
         memset (result, 0, sizeof (CRStatement));
         result->type = AT_MEDIA_RULE_STMT;
 
-        result->kind.media_rule = (CRAtMediaRule *)g_try_malloc (sizeof (CRAtMediaRule));
+        result->kind.media_rule = g_try_malloc (sizeof (CRAtMediaRule));
         if (!result->kind.media_rule) {
                 cr_utils_trace_info ("Out of memory");
                 g_free (result);
@@ -1282,12 +1308,16 @@ cr_statement_new_at_media_rule (CRStyleSheet * a_sheet,
 }
 
 /**
+ * cr_statement_new_at_import_rule:
+ *
+ * a_url: the url to connect to the get the file
+ *to be imported.
+ * a_sheet: the imported parsed stylesheet.
+ *
  *Creates a new instance of #CRStatment of type
  *#CRAtImportRule.
- * param a_url the url to connect to the get the file
- *to be imported.
- * param a_sheet the imported parsed stylesheet.
- * return the newly built instance of #CRStatement.
+ *
+ *Returns the newly built instance of #CRStatement.
  */
 CRStatement *
 cr_statement_new_at_import_rule (CRStyleSheet * a_container_sheet,
@@ -1295,7 +1325,9 @@ cr_statement_new_at_import_rule (CRStyleSheet * a_container_sheet,
                                  GList * a_media_list,
                                  CRStyleSheet * a_imported_sheet)
 {
-        CRStatement *result = (CRStatement *)g_try_malloc (sizeof (CRStatement));
+        CRStatement *result = NULL;
+
+        result = g_try_malloc (sizeof (CRStatement));
 
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
@@ -1305,7 +1337,7 @@ cr_statement_new_at_import_rule (CRStyleSheet * a_container_sheet,
         memset (result, 0, sizeof (CRStatement));
         result->type = AT_IMPORT_RULE_STMT;
 
-        result->kind.import_rule = (CRAtImportRule *)g_try_malloc (sizeof (CRAtImportRule));
+        result->kind.import_rule = g_try_malloc (sizeof (CRAtImportRule));
 
         if (!result->kind.import_rule) {
                 cr_utils_trace_info ("Out of memory");
@@ -1324,12 +1356,16 @@ cr_statement_new_at_import_rule (CRStyleSheet * a_container_sheet,
 }
 
 /**
- *Parses a buffer that contains an "@import" rule and
+ * cr_statement_at_import_rule_parse_from_buf:
+ *
+ * a_buf: the buffer to parse.
+ * a_encoding: the encoding of a_buf.
+ *
+ *Parses a buffer that contains an "\ import" rule and
  *instanciate a #CRStatement of type AT_IMPORT_RULE_STMT
- * param a_buf the buffer to parse.
- * param a_encoding the encoding of a_buf.
- * return the newly built instance of #CRStatement in case of 
- *a successfull parsing, NULL otherwise.
+ *
+ *Returns the newly built instance of #CRStatement in case of 
+ *a successful parsing, NULL otherwise.
  */
 CRStatement *
 cr_statement_at_import_rule_parse_from_buf (const guchar * a_buf,
@@ -1340,10 +1376,9 @@ cr_statement_at_import_rule_parse_from_buf (const guchar * a_buf,
         CRStatement *result = NULL;
         GList *media_list = NULL;
         CRString *import_string = NULL;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
-        parser = cr_parser_new_from_buf ((guchar*)a_buf,
-		                                 strlen ((char *)a_buf),
+        parser = cr_parser_new_from_buf ((guchar*)a_buf, strlen (a_buf),
                                          a_encoding, FALSE);
         if (!parser) {
                 cr_utils_trace_info ("Instanciation of parser failed.");
@@ -1397,13 +1432,17 @@ cr_statement_at_import_rule_parse_from_buf (const guchar * a_buf,
 }
 
 /**
- *Creates a new instance of #CRStatement of type
- *#CRAtPageRule.
- * param a_decl_list a list of instances of #CRDeclarations
+ * cr_statement_new_at_page_rule:
+ *
+ * a_decl_list: a list of instances of #CRDeclarations
  *which is actually the list of declarations that applies to
  *this page rule.
- * param a_selector the page rule selector.
- * return the newly built instance of #CRStatement or NULL
+ * a_selector: the page rule selector.
+ *
+ *Creates a new instance of #CRStatement of type
+ *#CRAtPageRule.
+ *
+ *Returns the newly built instance of #CRStatement or NULL
  *in case of error.
  */
 CRStatement *
@@ -1411,7 +1450,9 @@ cr_statement_new_at_page_rule (CRStyleSheet * a_sheet,
                                CRDeclaration * a_decl_list,
                                CRString * a_name, CRString * a_pseudo)
 {
-        CRStatement *result = (CRStatement *)g_try_malloc (sizeof (CRStatement));
+        CRStatement *result = NULL;
+
+        result = g_try_malloc (sizeof (CRStatement));
 
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
@@ -1421,7 +1462,7 @@ cr_statement_new_at_page_rule (CRStyleSheet * a_sheet,
         memset (result, 0, sizeof (CRStatement));
         result->type = AT_PAGE_RULE_STMT;
 
-        result->kind.page_rule = (CRAtPageRule *)g_try_malloc (sizeof (CRAtPageRule));
+        result->kind.page_rule = g_try_malloc (sizeof (CRAtPageRule));
 
         if (!result->kind.page_rule) {
                 cr_utils_trace_info ("Out of memory");
@@ -1443,11 +1484,15 @@ cr_statement_new_at_page_rule (CRStyleSheet * a_sheet,
 }
 
 /**
- *Parses a buffer that contains an "@page" production and,
+ * cr_statement_at_page_rule_parse_from_buf:
+ *
+ * a_buf: the character buffer to parse.
+ * a_encoding: the character encoding of a_buf.
+ *
+ *Parses a buffer that contains an "\ page" production and,
  *if the parsing succeeds, builds the page statement.
- * param a_buf the character buffer to parse.
- * param a_encoding the character encoding of a_buf.
- * return the newly built at page statement in case of successfull parsing,
+ *
+ *Returns the newly built at page statement in case of successful parsing,
  *NULL otherwise.
  */
 CRStatement *
@@ -1455,14 +1500,14 @@ cr_statement_at_page_rule_parse_from_buf (const guchar * a_buf,
                                           enum CREncoding a_encoding)
 {
         enum CRStatus status = CR_OK;
+        CRParser *parser = NULL;
         CRDocHandler *sac_handler = NULL;
         CRStatement *result = NULL;
         CRStatement **resultptr = NULL;
 
         g_return_val_if_fail (a_buf, NULL);
 
-        CRParser *parser = cr_parser_new_from_buf ((guchar*)a_buf, 
-		                                 strlen ((char *)a_buf),
+        parser = cr_parser_new_from_buf ((guchar*)a_buf, strlen (a_buf),
                                          a_encoding, FALSE);
         if (!parser) {
                 cr_utils_trace_info ("Instanciation of the parser failed.");
@@ -1512,21 +1557,27 @@ cr_statement_at_page_rule_parse_from_buf (const guchar * a_buf,
 }
 
 /**
- *Creates a new instance of #CRStatement of type
- *#CRAtCharsetRule.
- * param a_charset the string representing the charset.
+ * cr_statement_new_at_charset_rule:
+ *
+ * a_charset: the string representing the charset.
  *Note that the newly built instance of #CRStatement becomes
  *the owner of a_charset. The caller must not free a_charset !!!.
- * return the newly built instance of #CRStatement or NULL
+ *
+ *Creates a new instance of #CRStatement of type
+ *#CRAtCharsetRule.
+ *
+ *Returns the newly built instance of #CRStatement or NULL
  *if an error arises.
  */
 CRStatement *
 cr_statement_new_at_charset_rule (CRStyleSheet * a_sheet, 
                                   CRString * a_charset)
 {
+        CRStatement *result = NULL;
+
         g_return_val_if_fail (a_charset, NULL);
 
-        CRStatement *result = (CRStatement *)g_try_malloc (sizeof (CRStatement));
+        result = g_try_malloc (sizeof (CRStatement));
 
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
@@ -1536,7 +1587,7 @@ cr_statement_new_at_charset_rule (CRStyleSheet * a_sheet,
         memset (result, 0, sizeof (CRStatement));
         result->type = AT_CHARSET_RULE_STMT;
 
-        result->kind.charset_rule = (CRAtCharsetRule *)g_try_malloc (sizeof (CRAtCharsetRule));
+        result->kind.charset_rule = g_try_malloc (sizeof (CRAtCharsetRule));
 
         if (!result->kind.charset_rule) {
                 cr_utils_trace_info ("Out of memory");
@@ -1551,24 +1602,28 @@ cr_statement_new_at_charset_rule (CRStyleSheet * a_sheet,
 }
 
 /**
- *Parses a buffer that contains an '@charset' rule and
+ * cr_statement_at_charset_rule_parse_from_buf:
+ *
+ * a_buf: the buffer to parse.
+ * a_encoding: the character encoding of the buffer.
+ *
+ *Parses a buffer that contains an '\ charset' rule and
  *creates an instance of #CRStatement of type AT_CHARSET_RULE_STMT.
- * param a_buf the buffer to parse.
- * param the character encoding of the buffer.
- * return the newly built instance of #CRStatement.
+ *
+ *Returns the newly built instance of #CRStatement.
  */
 CRStatement *
 cr_statement_at_charset_rule_parse_from_buf (const guchar * a_buf,
                                              enum CREncoding a_encoding)
 {
         enum CRStatus status = CR_OK;
+        CRParser *parser = NULL;
         CRStatement *result = NULL;
         CRString *charset = NULL;
 
         g_return_val_if_fail (a_buf, NULL);
 
-        CRParser *parser = cr_parser_new_from_buf ((guchar*)a_buf,
-		                                 strlen ((char *)a_buf),
+        parser = cr_parser_new_from_buf ((guchar*)a_buf, strlen (a_buf),
                                          a_encoding, FALSE);
         if (!parser) {
                 cr_utils_trace_info ("Instanciation of the parser failed.");
@@ -1601,16 +1656,22 @@ cr_statement_at_charset_rule_parse_from_buf (const guchar * a_buf,
 }
 
 /**
- *Creates an instance of #CRStatement of type #CRAtFontFaceRule.
- * param a_font_decls a list of instances of #CRDeclaration. Each declaration
+ * cr_statement_new_at_font_face_rule:
+ *
+ * a_font_decls: a list of instances of #CRDeclaration. Each declaration
  *is actually a font declaration.
- * return the newly built instance of #CRStatement.
+ *
+ *Creates an instance of #CRStatement of type #CRAtFontFaceRule.
+ *
+ *Returns the newly built instance of #CRStatement.
  */
 CRStatement *
 cr_statement_new_at_font_face_rule (CRStyleSheet * a_sheet,
                                     CRDeclaration * a_font_decls)
 {
-        CRStatement *result = (CRStatement *)g_try_malloc (sizeof (CRStatement));
+        CRStatement *result = NULL;
+
+        result = g_try_malloc (sizeof (CRStatement));
 
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
@@ -1619,7 +1680,7 @@ cr_statement_new_at_font_face_rule (CRStyleSheet * a_sheet,
         memset (result, 0, sizeof (CRStatement));
         result->type = AT_FONT_FACE_RULE_STMT;
 
-        result->kind.font_face_rule = (CRAtFontFaceRule *)g_try_malloc
+        result->kind.font_face_rule = g_try_malloc
                 (sizeof (CRAtFontFaceRule));
 
         if (!result->kind.font_face_rule) {
@@ -1637,11 +1698,16 @@ cr_statement_new_at_font_face_rule (CRStyleSheet * a_sheet,
 }
 
 /**
- *Parses a buffer that contains an "@font-face" rule and builds
+ * cr_statement_font_face_rule_parse_from_buf:
+ *
+ *
+ * a_buf: the buffer to parse.
+ * a_encoding: the character encoding of a_buf.
+ *
+ *Parses a buffer that contains an "\ font-face" rule and builds
  *an instance of #CRStatement of type AT_FONT_FACE_RULE_STMT out of it.
- * param a_buf the buffer to parse.
- * param a_encoding the character encoding of a_buf.
- * return the newly built instance of #CRStatement in case of successufull
+ *
+ *Returns the newly built instance of #CRStatement in case of successufull
  *parsing, NULL otherwise.
  */
 CRStatement *
@@ -1650,12 +1716,11 @@ cr_statement_font_face_rule_parse_from_buf (const guchar * a_buf,
 {
         CRStatement *result = NULL;
         CRStatement **resultptr = NULL;
+        CRParser *parser = NULL;
         CRDocHandler *sac_handler = NULL;
         enum CRStatus status = CR_OK;
 
-        CRParser *parser = (CRParser *)cr_parser_new_from_buf (
-		                                 (guchar*)a_buf,
-										 strlen ((char *)a_buf),
+        parser = cr_parser_new_from_buf ((guchar*)a_buf, strlen (a_buf),
                                          a_encoding, FALSE);
         if (!parser)
                 goto cleanup;
@@ -1709,10 +1774,14 @@ cr_statement_font_face_rule_parse_from_buf (const guchar * a_buf,
 }
 
 /**
+ * cr_statement_set_parent_sheet:
+ *
+ * a_this: the current instance of #CRStatement.
+ * a_sheet: the sheet that contains the current statement.
+ *
  *Sets the container stylesheet.
- * param a_this the current instance of #CRStatement.
- * param a_sheet the sheet that contains the current statement.
- * return CR_OK upon successfull completion, an errror code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_set_parent_sheet (CRStatement * a_this, CRStyleSheet * a_sheet)
@@ -1723,10 +1792,14 @@ cr_statement_set_parent_sheet (CRStatement * a_this, CRStyleSheet * a_sheet)
 }
 
 /**
+ * cr_statement_get_parent_sheet:
+ *
+ * a_this: the current #CRStatement.
+ * a_sheet: out parameter. A pointer to the sheets that
+ *
  *Gets the sheets that contains the current statement.
- * param a_this the current #CRStatement.
- * param a_sheet out parameter. A pointer to the sheets that
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_get_parent_sheet (CRStatement * a_this, CRStyleSheet ** a_sheet)
@@ -1737,10 +1810,14 @@ cr_statement_get_parent_sheet (CRStatement * a_this, CRStyleSheet ** a_sheet)
 }
 
 /**
+ * cr_statement_append:
+ *
+ * a_this: the current instance of the statement list.
+ * a_new: a_new the new instance of #CRStatement to append.
+ *
  *Appends a new statement to the statement list.
- * param a_this the current instance of the statement list.
- * param a_this a_new the new instance of #CRStatement to append.
- * return the new list statement list, or NULL in cas of failure.
+ *
+ *Returns the new list statement list, or NULL in cas of failure.
  */
 CRStatement *
 cr_statement_append (CRStatement * a_this, CRStatement * a_new)
@@ -1763,11 +1840,15 @@ cr_statement_append (CRStatement * a_this, CRStatement * a_new)
 }
 
 /**
+ * cr_statement_prepend:
+ *
+ * a_this: the current instance of #CRStatement.
+ * a_new: the new statement to prepend.
+ *
  *Prepends the an instance of #CRStatement to
  *the current statement list.
- * param a_this the current instance of #CRStatement.
- * param a_new the new statement to prepend.
- * return the new list with the new statement prepended,
+ *
+ *Returns the new list with the new statement prepended,
  *or NULL in case of an error.
  */
 CRStatement *
@@ -1790,10 +1871,14 @@ cr_statement_prepend (CRStatement * a_this, CRStatement * a_new)
 }
 
 /**
+ * cr_statement_unlink:
+ *
+ * a_this: the current statements list.
+ * a_to_unlink: the statement to unlink from the list.
+ *
  *Unlinks a statement from the statements list.
- * param a_this the current statements list.
- * param a_to_unlink the statement to unlink from the list.
- * return the new list where a_to_unlink has been unlinked
+ *
+ *Returns the new list where a_to_unlink has been unlinked
  *from, or NULL in case of error.
  */
 CRStatement *
@@ -1837,14 +1922,18 @@ cr_statement_unlink (CRStatement * a_stmt)
 }
 
 /**
- *Return the number of rules in the statement list;
- * param a_this the current instance of #CRStatement.
- * return number of rules in the statement list.
+ * cr_statement_nr_rules:
+ *
+ * a_this: the current instance of #CRStatement.
+ *
+ *Gets the number of rules in the statement list;
+ *
+ *Returns number of rules in the statement list.
  */
 gint
-cr_statement_nr_rules (CRStatement * a_this)
+cr_statement_nr_rules (CRStatement const * a_this)
 {
-        CRStatement *cur = NULL;
+        CRStatement const *cur = NULL;
         int nr = 0;
 
         g_return_val_if_fail (a_this, -1);
@@ -1855,10 +1944,14 @@ cr_statement_nr_rules (CRStatement * a_this)
 }
 
 /**
+ * cr_statement_get_from_list:
+ *
+ * a_this: the current instance of #CRStatement.
+ * itemnr: the index into the statement list.
+ *
  *Use an index to get a CRStatement from the statement list.
- * param a_this the current instance of #CRStatement.
- * param itemnr the index into the statement list.
- * return CRStatement at position itemnr, if itemnr > number of statements - 1,
+ *
+ *Returns CRStatement at position itemnr, if itemnr > number of statements - 1,
  *it will return NULL.
  */
 CRStatement *
@@ -1876,13 +1969,17 @@ cr_statement_get_from_list (CRStatement * a_this, int itemnr)
 }
 
 /**
- *Sets a selector list to a ruleset statement.
- * param a_this the current ruleset statement.
- * param a_sel_list the selector list to set. Note
+ * cr_statement_ruleset_set_sel_list:
+ *
+ * a_this: the current ruleset statement.
+ * a_sel_list: the selector list to set. Note
  *that this function increments the ref count of a_sel_list.
  *The sel list will be destroyed at the destruction of the
  *current instance of #CRStatement.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Sets a selector list to a ruleset statement.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_ruleset_set_sel_list (CRStatement * a_this,
@@ -1903,12 +2000,16 @@ cr_statement_ruleset_set_sel_list (CRStatement * a_this,
 }
 
 /**
+ * cr_statement_ruleset_get_declarations:
+ *
+ * a_this: the current instance of #CRStatement.
+ * a_decl_list: out parameter. A pointer to the the returned
+ *list of declaration. Must not be NULL.
+ *
  *Gets a pointer to the list of declaration contained
  *in the ruleset statement.
- * param a_this the current instance of #CRStatement.
- * a_decl_list out parameter. A pointer to the the returned
- *list of declaration. Must not be NULL.
- * return CR_OK upon successfull completion, an error code if something
+ *
+ *Returns CR_OK upon successful completion, an error code if something
  *bad happened.
  */
 enum CRStatus
@@ -1926,15 +2027,19 @@ cr_statement_ruleset_get_declarations (CRStatement * a_this,
 }
 
 /**
+ * cr_statement_ruleset_get_sel_list:
+ *
+ * a_this: the current ruleset statement.
+ * a_list: out parameter. The returned selector list,
+ *if and only if the function returned CR_OK.
+ *
  *Gets a pointer to the selector list contained in
  *the current ruleset statement.
- * param a_this the current ruleset statement.
- * param a_list out parameter. The returned selector list,
- *if and only if the function returned CR_OK.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
-cr_statement_ruleset_get_sel_list (CRStatement * a_this, CRSelector ** a_list)
+cr_statement_ruleset_get_sel_list (CRStatement const * a_this, CRSelector ** a_list)
 {
         g_return_val_if_fail (a_this && a_this->type == RULESET_STMT
                               && a_this->kind.ruleset, CR_BAD_PARAM_ERROR);
@@ -1945,11 +2050,15 @@ cr_statement_ruleset_get_sel_list (CRStatement * a_this, CRSelector ** a_list)
 }
 
 /**
- *Sets a declaration list to the current ruleset statement.
- * param a_this the current ruleset statement.
- * param a_list the declaration list to be added to the current
+ * cr_statement_ruleset_set_decl_list:
+ *
+ * a_this: the current ruleset statement.
+ * a_list: the declaration list to be added to the current
  *ruleset statement.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Sets a declaration list to the current ruleset statement.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_ruleset_set_decl_list (CRStatement * a_this,
@@ -1971,11 +2080,15 @@ cr_statement_ruleset_set_decl_list (CRStatement * a_this,
 }
 
 /**
+ * cr_statement_ruleset_append_decl2:
+ *
+ * a_this: the current statement.
+ * a_prop: the property of the declaration.
+ * a_value: the value of the declaration.
+ *
  *Appends a declaration to the current ruleset statement.
- * param a_this the current statement.
- * param a_prop the property of the declaration.
- * param a_value the value of the declaration.
- * return CR_OK uppon successfull completion, an error code
+ *
+ *Returns CR_OK upon successful completion, an error code
  *otherwise.
  */
 enum CRStatus
@@ -1998,10 +2111,14 @@ cr_statement_ruleset_append_decl2 (CRStatement * a_this,
 }
 
 /**
+ * cr_statement_ruleset_append_decl:
+ *
  *Appends a declaration to the current statement.
- * param a_this the current statement.
- * param a_declaration the declaration to append.
- * return CR_OK upon sucessfull completion, an error code
+ *
+ * a_this: the current statement.
+ * a_declaration: the declaration to append.
+ *
+ *Returns CR_OK upon sucessful completion, an error code
  *otherwise.
  */
 enum CRStatus
@@ -2022,13 +2139,16 @@ cr_statement_ruleset_append_decl (CRStatement * a_this,
 }
 
 /**
- *Sets a stylesheet to the current @import rule.
- * param a_this the current @import rule.
- * param a_sheet the stylesheet. The stylesheet is owned
+ * cr_statement_at_import_rule_set_imported_sheet:
+ *
+ *Sets a stylesheet to the current \ import rule.
+ * a_this: the current \ import rule.
+ * a_sheet: the stylesheet. The stylesheet is owned
  *by the current instance of #CRStatement, that is, the 
  *stylesheet will be destroyed when the current instance
- *of #CRStatement will be destroyed.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *of #CRStatement is destroyed.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_at_import_rule_set_imported_sheet (CRStatement * a_this,
@@ -2045,11 +2165,14 @@ cr_statement_at_import_rule_set_imported_sheet (CRStatement * a_this,
 }
 
 /**
- *Gets the stylesheet contained by the @import rule statement.
- * param a_this the current @import rule statement.
- * param a_sheet out parameter. The returned stylesheet if and
+ * cr_statement_at_import_rule_get_imported_sheet:
+ *
+ * a_this: the current \ import rule statement.
+ * a_sheet: out parameter. The returned stylesheet if and
  *only if the function returns CR_OK.
- * return CR_OK upon sucessfull completion, an error code otherwise.
+ *
+ *Gets the stylesheet contained by the \ import rule statement.
+ *Returns CR_OK upon sucessful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_at_import_rule_get_imported_sheet (CRStatement * a_this,
@@ -2065,10 +2188,14 @@ cr_statement_at_import_rule_get_imported_sheet (CRStatement * a_this,
 }
 
 /**
- *Sets an url to the current @import rule statement.
- * param a_this the current @import rule statement.
- * param a_url the url to set.
- * return CR_OK upon successfull completion, an error code otherwise.
+ * cr_statement_at_import_rule_set_url:
+ *
+ * a_this: the current \ import rule statement.
+ * a_url: the url to set.
+ *
+ *Sets an url to the current \ import rule statement.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_at_import_rule_set_url (CRStatement * a_this, 
@@ -2089,13 +2216,17 @@ cr_statement_at_import_rule_set_url (CRStatement * a_this,
 }
 
 /**
- *Gets the url of the @import rule statement.
- * param the current @import rule statement.
- * param a_url out parameter. The returned url if
+ * cr_statement_at_import_rule_get_url:
+ *
+ * a_this: the current \ import rule statement.
+ * a_url: out parameter. The returned url if
  *and only if the function returned CR_OK.
+ *
+ *Gets the url of the \ import rule statement.
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
-cr_statement_at_import_rule_get_url (CRStatement * a_this, 
+cr_statement_at_import_rule_get_url (CRStatement const * a_this,
                                      CRString ** a_url)
 {
         g_return_val_if_fail (a_this
@@ -2109,12 +2240,14 @@ cr_statement_at_import_rule_get_url (CRStatement * a_this,
 }
 
 /**
- *Return the number of rules in the media rule;
- * param a_this the current instance of #CRStatement.
- * return number of rules in the media rule.
+ * cr_statement_at_media_nr_rules:
+ *
+ * a_this: the current instance of #CRStatement.
+ *
+ *Returns the number of rules in the media rule;
  */
 int
-cr_statement_at_media_nr_rules (CRStatement * a_this)
+cr_statement_at_media_nr_rules (CRStatement const * a_this)
 {
         g_return_val_if_fail (a_this
                               && a_this->type == AT_MEDIA_RULE_STMT
@@ -2124,10 +2257,14 @@ cr_statement_at_media_nr_rules (CRStatement * a_this)
 }
 
 /**
+ * cr_statement_at_media_get_from_list:
+ *
+ * a_this: the current instance of #CRStatement.
+ * itemnr: the index into the media rule list of rules.
+ *
  *Use an index to get a CRStatement from the media rule list of rules.
- * param a_this the current instance of #CRStatement.
- * param itemnr the index into the media rule list of rules.
- * return CRStatement at position itemnr, if itemnr > number of rules - 1,
+ *
+ *Returns CRStatement at position itemnr, if itemnr > number of rules - 1,
  *it will return NULL.
  */
 CRStatement *
@@ -2142,11 +2279,15 @@ cr_statement_at_media_get_from_list (CRStatement * a_this, int itemnr)
 }
 
 /**
- *Sets a declaration list to the current @page rule statement.
- * param a_this the current @page rule statement.
- * param a_decl_list the declaration list to add. Will be freed
+ * cr_statement_at_page_rule_set_declarations:
+ *
+ * a_this: the current \ page rule statement.
+ * a_decl_list: the declaration list to add. Will be freed
  *by the current instance of #CRStatement when it is destroyed.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Sets a declaration list to the current \ page rule statement.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_at_page_rule_set_declarations (CRStatement * a_this,
@@ -2170,11 +2311,15 @@ cr_statement_at_page_rule_set_declarations (CRStatement * a_this,
 }
 
 /**
- *Gets the declaration list associated to the current @page rule
+ * cr_statement_at_page_rule_get_declarations:
+ *
+ * a_this: the current \ page rule statement.
+ * a_decl_list: out parameter. The returned declaration list.
+ *
+ *Gets the declaration list associated to the current \ page rule
  *statement.
- * param a_this the current  @page rule statement.
- * param a_decl_list out parameter. The returned declaration list.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_at_page_rule_get_declarations (CRStatement * a_this,
@@ -2190,10 +2335,15 @@ cr_statement_at_page_rule_get_declarations (CRStatement * a_this,
 }
 
 /**
- *Sets the charset of the current @charset rule statement.
- * param a_this the current @charset rule statement.
- * param a_charset the charset to set.
- * return CR_OK upon successfull completion, an error code otherwise.
+ * cr_statement_at_charset_rule_set_charset:
+ *
+ *
+ * a_this: the current \ charset rule statement.
+ * a_charset: the charset to set.
+ *
+ *Sets the charset of the current \ charset rule statement.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_at_charset_rule_set_charset (CRStatement * a_this,
@@ -2212,14 +2362,18 @@ cr_statement_at_charset_rule_set_charset (CRStatement * a_this,
 }
 
 /**
- *Gets the charset string associated to the current
- * charset rule statement.
- * param a_this the current @charset rule statement.
- * param a_charset out parameter. The returned charset string if
+ * cr_statement_at_charset_rule_get_charset:
+ * a_this: the current \ charset rule statement.
+ * a_charset: out parameter. The returned charset string if
  *and only if the function returned CR_OK.
+ *
+ *Gets the charset string associated to the current
+ *\ charset rule statement.
+ *
+ * Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
-cr_statement_at_charset_rule_get_charset (CRStatement * a_this,
+cr_statement_at_charset_rule_get_charset (CRStatement const * a_this,
                                           CRString ** a_charset)
 {
         g_return_val_if_fail (a_this
@@ -2233,10 +2387,14 @@ cr_statement_at_charset_rule_get_charset (CRStatement * a_this,
 }
 
 /**
- *Sets a declaration list to the current @font-face rule statement.
- * param a_this the current @font-face rule statement.
- * param a_decls the declarations list to set.
- * return CR_OK upon successfull completion, an error code otherwise.
+ * cr_statement_at_font_face_rule_set_decls:
+ *
+ * a_this: the current \ font-face rule statement.
+ * a_decls: the declarations list to set.
+ *
+ *Sets a declaration list to the current \ font-face rule statement.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_at_font_face_rule_set_decls (CRStatement * a_this,
@@ -2258,12 +2416,16 @@ cr_statement_at_font_face_rule_set_decls (CRStatement * a_this,
 }
 
 /**
- *Gets the declaration list associated to the current instance
- *of @font-face rule statement.
- * param a_this the current @font-face rule statement.
- * param a_decls out parameter. The returned declaration list if
+ * cr_statement_at_font_face_rule_get_decls:
+ *
+ * a_this: the current \ font-face rule statement.
+ * a_decls: out parameter. The returned declaration list if
  *and only if this function returns CR_OK.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Gets the declaration list associated to the current instance
+ *of \ font-face rule statement.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_at_font_face_rule_get_decls (CRStatement * a_this,
@@ -2280,12 +2442,16 @@ cr_statement_at_font_face_rule_get_decls (CRStatement * a_this,
 }
 
 /**
- *Adds a declaration to the current @font-face rule
+ * cr_statement_at_font_face_rule_add_decl:
+ *
+ * a_this: the current \ font-face rule statement.
+ * a_prop: the property of the declaration.
+ * a_value: the value of the declaration.
+ *
+ *Adds a declaration to the current \ font-face rule
  *statement.
- * param a_this the current @font-face rule statement.
- * param a_prop the property of the declaration.
- * param a_value the value of the declaration.
- * return CR_OK upon successfull completion, an error code otherwise.
+ *
+ *Returns CR_OK upon successful completion, an error code otherwise.
  */
 enum CRStatus
 cr_statement_at_font_face_rule_add_decl (CRStatement * a_this,
@@ -2312,15 +2478,20 @@ cr_statement_at_font_face_rule_add_decl (CRStatement * a_this,
         return CR_OK;
 }
 
+
 /**
+ * cr_statement_to_string:
+ *
+ * a_this: the current statement to serialize
+ * a_indent: the number of white space of indentation.
+ *
  *Serializes a css statement into a string
- * param a_this the current statement to serialize
- * param a_indent the number of white space of indentation.
- * return the serialized statement. Must be freed by the caller
+ *
+ *Returns the serialized statement. Must be freed by the caller
  *using g_free().
  */
 gchar *
-cr_statement_to_string (CRStatement * a_this, gulong a_indent)
+cr_statement_to_string (CRStatement const * a_this, gulong a_indent)
 {
         gchar *str = NULL ;
 
@@ -2366,9 +2537,9 @@ cr_statement_to_string (CRStatement * a_this, gulong a_indent)
 }
 
 gchar*
-cr_statement_list_to_string (CRStatement *a_this, gulong a_indent)
+cr_statement_list_to_string (CRStatement const *a_this, gulong a_indent)
 {
-        CRStatement *cur_stmt = NULL ;
+        CRStatement const *cur_stmt = NULL ;
         GString *stringue = NULL ;
         gchar *str = NULL ;
 
@@ -2399,13 +2570,16 @@ cr_statement_list_to_string (CRStatement *a_this, gulong a_indent)
 }
 
 /**
+ * cr_statement_dump:
+ *
+ * a_this: the current css2 statement.
+ * a_fp: the destination file pointer.
+ * a_indent: the number of white space indentation characters.
+ *
  *Dumps the css2 statement to a file.
- * param a_this the current css2 statement.
- * param a_fp the destination file pointer.
- * param a_indent the number of white space indentation characters.
  */
 void
-cr_statement_dump (CRStatement * a_this, FILE * a_fp, gulong a_indent)
+cr_statement_dump (CRStatement const * a_this, FILE * a_fp, gulong a_indent)
 {
         gchar *str = NULL ;
 
@@ -2421,31 +2595,39 @@ cr_statement_dump (CRStatement * a_this, FILE * a_fp, gulong a_indent)
 }
 
 /**
+ * cr_statement_dump_ruleset:
+ *
+ * a_this: the current instance of #CRStatement.
+ * a_fp: the destination file pointer.
+ * a_indent: the number of indentation white spaces to add.
+ *
  *Dumps a ruleset statement to a file.
- * param a_this the current instance of #CRStatement.
- * param a_fp the destination file pointer.
- * param a_indent the number of indentation white spaces to add.
  */
 void
-cr_statement_dump_ruleset (CRStatement * a_this, FILE * a_fp, glong a_indent)
+cr_statement_dump_ruleset (CRStatement const * a_this, FILE * a_fp, glong a_indent)
 {
+        guchar *str = NULL;
+
         g_return_if_fail (a_fp && a_this);
-        gchar *str = cr_statement_ruleset_to_string (a_this, a_indent);
+        str = cr_statement_ruleset_to_string (a_this, a_indent);
         if (str) {
-                fprintf (a_fp, "%s", str);
+                fprintf (a_fp, str);
                 g_free (str);
                 str = NULL;
         }
 }
 
 /**
+ * cr_statement_dump_font_face_rule:
+ *
+ * a_this: the current instance of font face rule statement.
+ * a_fp: the destination file pointer.
+ * a_indent: the number of white space indentation.
+ *
  *Dumps a font face rule statement to a file.
- * param a_this the current instance of font face rule statement.
- * param a_fp the destination file pointer.
- * param a_indent the number of white space indentation.
  */
 void
-cr_statement_dump_font_face_rule (CRStatement * a_this, FILE * a_fp,
+cr_statement_dump_font_face_rule (CRStatement const * a_this, FILE * a_fp,
                                   glong a_indent)
 {
         gchar *str = NULL ;
@@ -2462,20 +2644,25 @@ cr_statement_dump_font_face_rule (CRStatement * a_this, FILE * a_fp,
 }
 
 /**
- *Dumps an @charset rule statement to a file.
- * param a_this the current instance of the @charset rule statement.
- * param a_fp the destination file pointer.
- * param a_indent the number of indentation white spaces.
+ * cr_statement_dump_charset:
+ *
+ * a_this: the current instance of the \ charset rule statement.
+ * a_fp: the destination file pointer.
+ * a_indent: the number of indentation white spaces.
+ *
+ *Dumps an \ charset rule statement to a file.
  */
 void
-cr_statement_dump_charset (CRStatement * a_this, FILE * a_fp, gulong a_indent)
+cr_statement_dump_charset (CRStatement const * a_this, FILE * a_fp, gulong a_indent)
 {
+        guchar *str = NULL;
+
         g_return_if_fail (a_this && a_this->type == AT_CHARSET_RULE_STMT);
 
-        gchar *str = cr_statement_charset_to_string (a_this,
+        str = cr_statement_charset_to_string (a_this,
                                               a_indent) ;
         if (str) {
-                fprintf (a_fp, "%s", str) ;
+                fprintf (a_fp, str) ;
                 g_free (str) ;
                 str = NULL ;
         }
@@ -2483,21 +2670,26 @@ cr_statement_dump_charset (CRStatement * a_this, FILE * a_fp, gulong a_indent)
 
 
 /**
- *Dumps an @page rule statement on stdout.
- * param a_this the statement to dump on stdout.
- * param a_fp the destination file pointer.
- * param a_indent the number of indentation white spaces.
+ * cr_statement_dump_page:
+ *
+ * a_this: the statement to dump on stdout.
+ * a_fp: the destination file pointer.
+ * a_indent: the number of indentation white spaces.
+ *
+ *Dumps an \ page rule statement on stdout.
  */
 void
-cr_statement_dump_page (CRStatement * a_this, FILE * a_fp, gulong a_indent)
+cr_statement_dump_page (CRStatement const * a_this, FILE * a_fp, gulong a_indent)
 {
+        guchar *str = NULL;
+
         g_return_if_fail (a_this
                           && a_this->type == AT_PAGE_RULE_STMT
                           && a_this->kind.page_rule);
 
-        gchar *str = cr_statement_at_page_rule_to_string (a_this, a_indent) ;
+        str = cr_statement_at_page_rule_to_string (a_this, a_indent) ;
         if (str) {
-                fprintf (a_fp, "%s", str);
+                fprintf (a_fp, str);
                 g_free (str) ;
                 str = NULL ; 
         }
@@ -2505,13 +2697,16 @@ cr_statement_dump_page (CRStatement * a_this, FILE * a_fp, gulong a_indent)
 
 
 /**
- *Dumps an @media rule statement to a file.
- * param a_this the statement to dump.
- * param a_fp the destination file pointer
- * param a_indent the number of white spaces indentation.
+ * cr_statement_dump_media_rule:
+ *
+ * a_this: the statement to dump.
+ * a_fp: the destination file pointer
+ * a_indent: the number of white spaces indentation.
+ *
+ *Dumps an \ media rule statement to a file.
  */
 void
-cr_statement_dump_media_rule (CRStatement * a_this, 
+cr_statement_dump_media_rule (CRStatement const * a_this,
                               FILE * a_fp,
                               gulong a_indent)
 {
@@ -2520,19 +2715,22 @@ cr_statement_dump_media_rule (CRStatement * a_this,
 
         str = cr_statement_media_rule_to_string (a_this, a_indent) ;
         if (str) {
-                fprintf (a_fp, "%s", str) ;
+                fprintf (a_fp, str) ;
                 g_free (str) ;
                 str = NULL ;
         }
 }
 
 /**
- *Dumps an @import rule statement to a file.
- * param a_fp the destination file pointer.
- * param a_indent the number of white space indentations.
+ * cr_statement_dump_import_rule:
+ *
+ * a_fp: the destination file pointer.
+ * a_indent: the number of white space indentations.
+ *
+ *Dumps an \ import rule statement to a file.
  */
 void
-cr_statement_dump_import_rule (CRStatement * a_this, FILE * a_fp,
+cr_statement_dump_import_rule (CRStatement const * a_this, FILE * a_fp,
                                gulong a_indent)
 {
         gchar *str = NULL ;
@@ -2543,13 +2741,17 @@ cr_statement_dump_import_rule (CRStatement * a_this, FILE * a_fp,
 
         str = cr_statement_import_rule_to_string (a_this, a_indent) ;
         if (str) {
-                fprintf (a_fp, "%s", str) ;
+                fprintf (a_fp, str) ;
                 g_free (str) ;
                 str = NULL ;
         }
 }
 
 /**
+ * cr_statement_destroy:
+ *
+ * @a_this: the current instance of #CRStatement.
+ *
  *Destructor of #CRStatement.
  */
 void
diff --git a/src/cr-statement.h b/src/cr-statement.h
index 5639ab7..74a2330 100644
--- a/src/cr-statement.h
+++ b/src/cr-statement.h
@@ -84,7 +84,7 @@ struct _CRStyleSheet ;
 typedef struct _CRStyleSheet CRStyleSheet;
 
 
-/**The @import rule abstraction.*/
+/**The \ import rule abstraction.*/
 typedef struct _CRAtImportRule CRAtImportRule ;
 struct _CRAtImportRule
 {
@@ -102,7 +102,7 @@ struct _CRAtImportRule
 };
 
 
-/**abstraction of an @media rule*/
+/**abstraction of an \ media rule*/
 struct _CRAtMediaRule
 {
 	GList *media_list ;
@@ -111,7 +111,7 @@ struct _CRAtMediaRule
 
 
 typedef struct _CRAtPageRule CRAtPageRule ;
-/**The @page rule abstraction*/
+/**The \ page rule abstraction*/
 struct _CRAtPageRule
 {
 	/**a list of instances of #CRDeclaration*/
@@ -122,14 +122,14 @@ struct _CRAtPageRule
 	CRString *pseudo ;
 } ;
 
-/**The @charset rule abstraction*/
+/**The \ charset rule abstraction*/
 typedef struct _CRAtCharsetRule CRAtCharsetRule ;
 struct _CRAtCharsetRule
 {
 	CRString * charset ;
 };
 
-/**The abstaction of the @font-face rule.*/
+/**The abstaction of the \ font-face rule.*/
 typedef struct _CRAtFontFaceRule CRAtFontFaceRule ;
 struct _CRAtFontFaceRule
 {
@@ -176,8 +176,8 @@ enum CRStatementType
  *The abstraction of css statement as defined
  *in the chapter 4 and appendix D.1 of the css2 spec.
  *A statement is actually a double chained list of
- *statements.A statement can be a ruleset, an @import
- *rule, an @page rule etc ...
+ *statements.A statement can be a ruleset, an \ import
+ *rule, an \ page rule etc ...
  */
 struct _CRStatement
 {
@@ -314,7 +314,7 @@ cr_statement_ruleset_set_sel_list (CRStatement *a_this,
 				   CRSelector *a_sel_list) ;
 
 enum CRStatus
-cr_statement_ruleset_get_sel_list (CRStatement *a_this,
+cr_statement_ruleset_get_sel_list (CRStatement const *a_this,
 				   CRSelector **a_list) ;
 
 enum CRStatus
@@ -346,11 +346,11 @@ cr_statement_at_import_rule_set_url (CRStatement *a_this,
 				     CRString *a_url) ;
 
 enum CRStatus
-cr_statement_at_import_rule_get_url (CRStatement *a_this,
+cr_statement_at_import_rule_get_url (CRStatement const *a_this,
 				     CRString **a_url) ;
 
 gint
-cr_statement_at_media_nr_rules (CRStatement *a_this) ;
+cr_statement_at_media_nr_rules (CRStatement const *a_this) ;
 
 CRStatement *
 cr_statement_at_media_get_from_list (CRStatement *a_this, int itemnr) ;
@@ -360,7 +360,7 @@ cr_statement_at_page_rule_set_sel (CRStatement *a_this,
 				   CRSelector *a_sel) ;
 
 enum CRStatus
-cr_statement_at_page_rule_get_sel (CRStatement *a_this,
+cr_statement_at_page_rule_get_sel (CRStatement const *a_this,
 				   CRSelector **a_sel) ;
 
 enum CRStatus
@@ -376,7 +376,7 @@ cr_statement_at_charset_rule_set_charset (CRStatement *a_this,
 					  CRString *a_charset) ;
 
 enum CRStatus
-cr_statement_at_charset_rule_get_charset (CRStatement *a_this,
+cr_statement_at_charset_rule_get_charset (CRStatement const *a_this,
 					  CRString **a_charset) ;
 
 enum CRStatus
@@ -393,41 +393,41 @@ cr_statement_at_font_face_rule_add_decl (CRStatement *a_this,
 					 CRTerm *a_value) ;
 
 gchar *
-cr_statement_to_string (CRStatement * a_this, gulong a_indent) ;
+cr_statement_to_string (CRStatement const * a_this, gulong a_indent) ;
 
 gchar*
-cr_statement_list_to_string (CRStatement *a_this, gulong a_indent) ;
+cr_statement_list_to_string (CRStatement const *a_this, gulong a_indent) ;
 
 void
-cr_statement_dump (CRStatement *a_this, FILE *a_fp, gulong a_indent) ;
+cr_statement_dump (CRStatement const *a_this, FILE *a_fp, gulong a_indent) ;
 
 void
-cr_statement_dump_ruleset (CRStatement * a_this, FILE * a_fp, 
+cr_statement_dump_ruleset (CRStatement const * a_this, FILE * a_fp,
                            glong a_indent) ;
 
 void
-cr_statement_dump_font_face_rule (CRStatement * a_this, 
+cr_statement_dump_font_face_rule (CRStatement const * a_this,
                                   FILE * a_fp,
                                   glong a_indent) ;
 
 void
-cr_statement_dump_page (CRStatement * a_this, FILE * a_fp, 
+cr_statement_dump_page (CRStatement const * a_this, FILE * a_fp,
                         gulong a_indent) ;
 
 
 void
-cr_statement_dump_media_rule (CRStatement * a_this, 
+cr_statement_dump_media_rule (CRStatement const * a_this,
                               FILE * a_fp,
                               gulong a_indent) ;
 
 void
-cr_statement_dump_import_rule (CRStatement * a_this, FILE * a_fp,
+cr_statement_dump_import_rule (CRStatement const * a_this, FILE * a_fp,
                                gulong a_indent) ; 
 void
-cr_statement_dump_charset (CRStatement * a_this, FILE * a_fp, 
+cr_statement_dump_charset (CRStatement const * a_this, FILE * a_fp,
                            gulong a_indent) ;
 gint
-cr_statement_nr_rules (CRStatement *a_this) ;
+cr_statement_nr_rules (CRStatement const *a_this) ;
 
 CRStatement *
 cr_statement_get_from_list (CRStatement *a_this, int itemnr) ;
diff --git a/src/cr-string.c b/src/cr-string.c
index 7c656f5..633fcab 100644
--- a/src/cr-string.c
+++ b/src/cr-string.c
@@ -32,7 +32,9 @@
 CRString *
 cr_string_new (void)
 {
-	CRString *result = (CRString *)g_try_malloc (sizeof (CRString)) ;
+	CRString *result = NULL ;
+
+	result = g_try_malloc (sizeof (CRString)) ;
 	if (!result) {
 		cr_utils_trace_info ("Out of memory") ;
 		return NULL ;
@@ -51,7 +53,9 @@ cr_string_new (void)
 CRString  *
 cr_string_new_from_string (const gchar * a_string)
 {
-	CRString *result = cr_string_new () ;
+	CRString *result = NULL ;
+
+	result = cr_string_new () ;
 	if (!result) {
 		cr_utils_trace_info ("Out of memory") ;
 		return NULL ;
@@ -68,9 +72,11 @@ cr_string_new_from_string (const gchar * a_string)
  * return the newly instanciated #CRString.
  */
 CRString *
-cr_string_new_from_gstring (GString *a_string)
+cr_string_new_from_gstring (GString const *a_string)
 {
-	CRString *result = cr_string_new () ;
+	CRString *result = NULL ;
+
+	result = cr_string_new () ;
 	if (!result) {
 		cr_utils_trace_info ("Out of memory") ;
 		return NULL ;
@@ -85,11 +91,12 @@ cr_string_new_from_gstring (GString *a_string)
 }
 
 CRString *
-cr_string_dup (CRString *a_this)
+cr_string_dup (CRString const *a_this)
 {
+	CRString *result = NULL ;
 	g_return_val_if_fail (a_this, NULL) ;
 
-	CRString *result = cr_string_new_from_gstring (a_this->stryng) ;
+	result = cr_string_new_from_gstring (a_this->stryng) ;
 	if (!result) {
 		cr_utils_trace_info ("Out of memory") ;
 		return NULL ;
@@ -100,7 +107,7 @@ cr_string_dup (CRString *a_this)
 }
 
 gchar *
-cr_string_dup2 (CRString *a_this)
+cr_string_dup2 (CRString const *a_this)
 {
         gchar *result = NULL ;
 
@@ -121,7 +128,7 @@ cr_string_dup2 (CRString *a_this)
  * param a_this the current instance of #CRString
  */
 const gchar *
-cr_string_peek_raw_str (CRString *a_this)
+cr_string_peek_raw_str (CRString const *a_this)
 {
         g_return_val_if_fail (a_this, NULL) ;
         
@@ -138,7 +145,7 @@ cr_string_peek_raw_str (CRString *a_this)
  *of -1 if no length can be returned.
  */
 gint
-cr_string_peek_raw_str_len (CRString *a_this)
+cr_string_peek_raw_str_len (CRString const *a_this)
 {
         g_return_val_if_fail (a_this && a_this->stryng,
                               -1) ;
diff --git a/src/cr-string.h b/src/cr-string.h
index 2564534..2700f0e 100644
--- a/src/cr-string.h
+++ b/src/cr-string.h
@@ -64,11 +64,11 @@ struct _CRString {
 CRString * cr_string_new (void) ;
 
 CRString  *cr_string_new_from_string (const gchar * a_string) ;
-CRString * cr_string_new_from_gstring (GString *a_string) ;
-CRString *cr_string_dup (CRString *a_this) ;
-gchar *cr_string_dup2 (CRString *a_this) ;
-const gchar *cr_string_peek_raw_str (CRString *a_this) ;
-gint cr_string_peek_raw_str_len (CRString *a_this) ;
+CRString * cr_string_new_from_gstring (GString const *a_string) ;
+CRString *cr_string_dup (CRString const *a_this) ;
+gchar *cr_string_dup2 (CRString const *a_this) ;
+const gchar *cr_string_peek_raw_str (CRString const *a_this) ;
+gint cr_string_peek_raw_str_len (CRString const *a_this) ;
 void cr_string_destroy (CRString *a_this) ;
 
 G_END_DECLS
diff --git a/src/cr-style.c b/src/cr-style.c
index e0abba8..fa3306a 100644
--- a/src/cr-style.c
+++ b/src/cr-style.c
@@ -92,7 +92,7 @@ enum CRPropertyID {
 typedef struct _CRPropertyDesc CRPropertyDesc;
 
 struct _CRPropertyDesc {
-        const gchar *name;
+        const guchar *name;
         enum CRPropertyID prop_id;
 };
 
@@ -140,9 +140,9 @@ static CRPropertyDesc gv_prop_table[] = {
         {"font-size", PROP_ID_FONT_SIZE},
         {"font-style", PROP_ID_FONT_STYLE},
         {"font-weight", PROP_ID_FONT_WEIGHT},
-	    {"white-space", PROP_ID_WHITE_SPACE},
+	{"white-space", PROP_ID_WHITE_SPACE},
         /*must be the last one */
-        {NULL, (enum CRPropertyID)0}
+        {NULL, 0}
 };
 
 /**
@@ -185,7 +185,7 @@ static struct CRNumPropEnumDumpInfo gv_num_props_dump_infos[] = {
         {NUM_PROP_MARGIN_BOTTOM, "margin-bottom"},
         {NUM_PROP_MARGIN_LEFT, "margin-left"},
         {NUM_PROP_WIDTH, "width"},
-        {(enum CRNumProp)0, NULL}
+        {0, NULL}
 };
 
 struct CRRgbPropEnumDumpInfo {
@@ -200,7 +200,7 @@ static struct CRRgbPropEnumDumpInfo gv_rgb_props_dump_infos[] = {
         {RGB_PROP_BORDER_LEFT_COLOR, "left-color"},
         {RGB_PROP_COLOR, "color"},
         {RGB_PROP_BACKGROUND_COLOR, "background-color"},
-        {(enum CRRgbProp)0, NULL}
+        {0, NULL}
 };
 
 struct CRBorderStylePropEnumDumpInfo {
@@ -215,7 +215,7 @@ static struct CRBorderStylePropEnumDumpInfo gv_border_style_props_dump_infos[]
         {BORDER_STYLE_PROP_RIGHT, "border-style-right"},
         {BORDER_STYLE_PROP_BOTTOM, "boder-style-bottom"},
         {BORDER_STYLE_PROP_LEFT, "border-style-left"},
-        {(enum CRBorderStyleProp)0, NULL}
+        {0, NULL}
 };
 
 static enum CRStatus
@@ -319,9 +319,9 @@ set_prop_font_weight_from_value (CRStyle * a_style, CRTerm * a_value);
 static const gchar *
 num_prop_code_to_string (enum CRNumProp a_code)
 {
-        int len = sizeof (gv_num_props_dump_infos) /
+        gint len = sizeof (gv_num_props_dump_infos) /
                 sizeof (struct CRNumPropEnumDumpInfo);
-        if ((int)a_code >= len) {
+        if (a_code >= len) {
                 cr_utils_trace_info ("A field has been added "
                                      "to 'enum CRNumProp' and no matching"
                                      " entry has been "
@@ -342,10 +342,10 @@ num_prop_code_to_string (enum CRNumProp a_code)
 static const gchar *
 rgb_prop_code_to_string (enum CRRgbProp a_code)
 {
-        int len = sizeof (gv_rgb_props_dump_infos) /
+        gint len = sizeof (gv_rgb_props_dump_infos) /
                 sizeof (struct CRRgbPropEnumDumpInfo);
 
-        if ((int)a_code >= len) {
+        if (a_code >= len) {
                 cr_utils_trace_info ("A field has been added "
                                      "to 'enum CRRgbProp' and no matching"
                                      " entry has been "
@@ -366,10 +366,10 @@ rgb_prop_code_to_string (enum CRRgbProp a_code)
 static const gchar *
 border_style_prop_code_to_string (enum CRBorderStyleProp a_code)
 {
-        int len = sizeof (gv_border_style_props_dump_infos) /
+        gint len = sizeof (gv_border_style_props_dump_infos) /
                 sizeof (struct CRBorderStylePropEnumDumpInfo);
 
-        if ((int)a_code >= len) {
+        if (a_code >= len) {
                 cr_utils_trace_info ("A field has been added "
                                      "to 'enum CRBorderStyleProp' and no matching"
                                      " entry has been "
@@ -421,11 +421,11 @@ cr_style_get_prop_id (const guchar * a_prop)
                 cr_style_init_properties ();
         }
 
-        raw_id = (gpointer *)g_hash_table_lookup (gv_prop_hash, a_prop);
+        raw_id = g_hash_table_lookup (gv_prop_hash, a_prop);
         if (!raw_id) {
                 return PROP_ID_NOT_KNOWN;
         }
-        return (enum CRPropertyID)GPOINTER_TO_INT (raw_id);
+        return GPOINTER_TO_INT (raw_id);
 }
 
 static enum CRStatus
@@ -465,7 +465,7 @@ set_prop_padding_x_from_value (CRStyle * a_style,
                 if (a_value->content.str
                     && a_value->content.str->stryng
 		    && a_value->content.str->stryng->str
-                    && !strncmp ("inherit",
+                    && !strncmp ((guchar *) "inherit",
                                  a_value->content.str->stryng->str,
                                  sizeof ("inherit")-1)) {
 			status = cr_num_set (num_val, 0.0, NUM_INHERIT);
@@ -569,17 +569,19 @@ static enum CRStatus
 set_prop_border_width_from_value (CRStyle *a_style,
                                   CRTerm *a_value)
 {
+        CRTerm *cur_term = NULL ;
+        enum CRDirection direction = DIR_TOP ;
+
         g_return_val_if_fail (a_style && a_value,
                               CR_BAD_PARAM_ERROR) ;
-        CRTerm *cur_term = a_value ;
+        cur_term = a_value ;
 
         if (!cur_term)
                 return CR_ERROR ;
 
-        int dir;
-        for (dir = (int) DIR_TOP ; dir < (int)NB_DIRS ; dir++) {
-                 enum CRDirection direction = (enum CRDirection)dir;
-                 set_prop_border_x_width_from_value (a_style, 
+        for (direction = DIR_TOP ; 
+             direction < NB_DIRS ; direction ++) {
+                set_prop_border_x_width_from_value (a_style, 
                                                     cur_term,
                                                     direction) ;
         }
@@ -696,17 +698,20 @@ static enum CRStatus
 set_prop_border_style_from_value (CRStyle *a_style,
                                   CRTerm *a_value)
 {
+        CRTerm *cur_term = NULL ;
+        enum CRDirection direction = DIR_TOP ;
+
         g_return_val_if_fail (a_style && a_value, 
                               CR_BAD_PARAM_ERROR) ;
 
-        CRTerm *cur_term = a_value ;
+        cur_term = a_value ;
         if (!cur_term || cur_term->type != TERM_IDENT) {
                 return CR_ERROR ;
         }
         
-        int dir;
-        for (dir = (int)DIR_TOP ; dir < (int)NB_DIRS ; dir++) { 
-                enum CRDirection direction = (enum CRDirection)dir;
+        for (direction = DIR_TOP ; 
+             direction < NB_DIRS ;
+             direction ++) {
                 set_prop_border_x_style_from_value (a_style, 
                                                     cur_term,
                                                     direction) ;
@@ -799,7 +804,7 @@ set_prop_margin_x_from_value (CRStyle * a_style, CRTerm * a_value,
 }
 
 struct CRPropDisplayValPair {
-        const gchar *prop_name;
+        const guchar *prop_name;
         enum CRDisplayType type;
 };
 
@@ -860,7 +865,7 @@ set_prop_display_from_value (CRStyle * a_style, CRTerm * a_value)
 }
 
 struct CRPropPositionValPair {
-        const gchar *name;
+        const guchar *name;
         enum CRPositionType type;
 };
 
@@ -1115,11 +1120,11 @@ set_prop_border_x_color_from_value (CRStyle * a_style, CRTerm * a_value,
                     && a_value->content.str->stryng->str) {
                         status = cr_rgb_set_from_name
                                 (rgb_color, 
-                                 (guchar *)a_value->content.str->stryng->str);
+                                 a_value->content.str->stryng->str);
 
                 }
                 if (status != CR_OK) {
-                        cr_rgb_set_from_name (rgb_color, (guchar *)"black");
+                        cr_rgb_set_from_name (rgb_color, "black");
                 }
         } else if (a_value->type == TERM_RGB) {
                 if (a_value->content.rgb) {
@@ -1161,13 +1166,14 @@ set_prop_border_x_from_value (CRStyle * a_style, CRTerm * a_value,
 static enum CRStatus
 set_prop_border_from_value (CRStyle * a_style, CRTerm * a_value)
 {
+        enum CRDirection direction = 0;
+
         g_return_val_if_fail (a_style && a_value, CR_BAD_PARAM_ERROR);
 
-        int dir;
-        for (dir = 0; dir < (int)NB_DIRS; dir++) {
+        for (direction = 0; direction < NB_DIRS; direction++) {
                 set_prop_border_x_from_value (a_style, 
                                               a_value, 
-                                              (enum CRDirection)dir);
+                                              direction);
         }
 
         return CR_OK;
@@ -1177,6 +1183,7 @@ static enum CRStatus
 set_prop_padding_from_value (CRStyle * a_style, CRTerm * a_value)
 {
         CRTerm *cur_term = NULL;
+        enum CRDirection direction = 0;
         enum CRStatus status = CR_OK;
         
         g_return_val_if_fail (a_style && a_value, CR_BAD_PARAM_ERROR);
@@ -1190,10 +1197,8 @@ set_prop_padding_from_value (CRStyle * a_style, CRTerm * a_value)
         if (!cur_term)
                 return CR_ERROR ;
 
-        int dir;
-        for (dir = 0; dir < (int)NB_DIRS; dir++) {
-                set_prop_padding_x_from_value (a_style,
-				            cur_term, (enum CRDirection)dir);
+        for (direction = 0; direction < NB_DIRS; direction++) {
+                set_prop_padding_x_from_value (a_style, cur_term, direction);
         }
         cur_term = cur_term->next;
 
@@ -1229,6 +1234,7 @@ static enum CRStatus
 set_prop_margin_from_value (CRStyle * a_style, CRTerm * a_value)
 {
         CRTerm *cur_term = NULL;
+        enum CRDirection direction = 0;
         enum CRStatus status = CR_OK;
 
         g_return_val_if_fail (a_style && a_value, CR_BAD_PARAM_ERROR);
@@ -1242,10 +1248,8 @@ set_prop_margin_from_value (CRStyle * a_style, CRTerm * a_value)
         if (!cur_term)
                 return CR_OK;
 
-        int dir;
-        for (dir = 0; dir < (int)NB_DIRS; dir++) {
-                set_prop_margin_x_from_value(a_style,
-				        cur_term, (enum CRDirection)dir);
+        for (direction = 0; direction < NB_DIRS; direction++) {
+                set_prop_margin_x_from_value (a_style, cur_term, direction);
         }
         cur_term = cur_term->next;
 
@@ -1354,7 +1358,7 @@ set_prop_font_family_from_value (CRStyle * a_style, CRTerm * a_value)
                                     && cur_term->content.str->stryng->str) {
                                         cur_ff = cr_font_family_new
                                                 (FONT_FAMILY_NON_GENERIC,
-                                                 (guchar *)cur_term->content.str->stryng->str);
+                                                 cur_term->content.str->stryng->str);
                                 }
                         }
                         break;
@@ -1672,7 +1676,7 @@ set_prop_white_space_from_value (CRStyle * a_style, CRTerm * a_value)
 				a_style->white_space = WHITE_SPACE_NORMAL;
 			} else if (!strcmp (a_value->content.str->stryng->str, 
                                             "pre")) {
-				a_style->white_space = WHITE_SPACE_PRE;
+				a_style->font_weight = WHITE_SPACE_PRE;
 			} else if (!strcmp (a_value->content.str->stryng->str,
                                             "nowrap")) {
 				a_style->white_space = WHITE_SPACE_NOWRAP;
@@ -1707,7 +1711,9 @@ set_prop_white_space_from_value (CRStyle * a_style, CRTerm * a_value)
 CRStyle *
 cr_style_new (gboolean a_set_props_to_initial_values)
 {
-        CRStyle *result = (CRStyle *)g_try_malloc (sizeof (CRStyle));
+        CRStyle *result = NULL;
+
+        result = g_try_malloc (sizeof (CRStyle));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
@@ -2018,7 +2024,7 @@ cr_style_set_style_from_decl (CRStyle * a_this, CRDeclaration * a_decl)
                               CR_BAD_PARAM_ERROR);
 
         prop_id = cr_style_get_prop_id
-                ((guchar *)a_decl->property->stryng->str);
+                (a_decl->property->stryng->str);
 
         value = a_decl->value;
         switch (prop_id) {
@@ -2676,7 +2682,7 @@ cr_style_to_string (CRStyle * a_this, GString ** a_str, guint a_nb_indent)
                  *before outputing it value
                  */
                 cr_utils_dump_n_chars2 (' ', str, indent);
-                tmp_str = (gchar *) num_prop_code_to_string ((enum CRNumProp)i);
+                tmp_str = (gchar *) num_prop_code_to_string (i);
                 if (tmp_str) {
                         g_string_append_printf (str, "%s: ", tmp_str);
                 } else {
@@ -2690,7 +2696,7 @@ cr_style_to_string (CRStyle * a_this, GString ** a_str, guint a_nb_indent)
         }
         /*loop over the rgb_props and to_string() them all */
         for (i = RGB_PROP_BORDER_TOP_COLOR; i < NB_RGB_PROPS; i++) {
-                tmp_str = (gchar *) rgb_prop_code_to_string ((enum CRRgbProp)i);
+                tmp_str = (gchar *) rgb_prop_code_to_string (i);
                 cr_utils_dump_n_chars2 (' ', str, indent);
                 if (tmp_str) {
                         g_string_append_printf (str, "%s: ", tmp_str);
@@ -2705,8 +2711,7 @@ cr_style_to_string (CRStyle * a_this, GString ** a_str, guint a_nb_indent)
         }
         /*loop over the border_style_props and to_string() them */
         for (i = BORDER_STYLE_PROP_TOP; i < NB_BORDER_STYLE_PROPS; i++) {
-                tmp_str = (gchar *) 
-				    border_style_prop_code_to_string ((enum CRBorderStyleProp)i);
+                tmp_str = (gchar *) border_style_prop_code_to_string (i);
                 cr_utils_dump_n_chars2 (' ', str, indent);
                 if (tmp_str) {
                         g_string_append_printf (str, "%s: ", tmp_str);
@@ -2741,7 +2746,7 @@ cr_style_to_string (CRStyle * a_this, GString ** a_str, guint a_nb_indent)
 
         cr_utils_dump_n_chars2 (' ', str, indent);
         g_string_append (str, "font-family: ");
-        tmp_str = (gchar *)cr_font_family_to_string (a_this->font_family, TRUE);
+        tmp_str = cr_font_family_to_string (a_this->font_family, TRUE);
         if (tmp_str) {
                 g_string_append (str, tmp_str);
                 g_free (tmp_str);
diff --git a/src/cr-style.h b/src/cr-style.h
index 9abdef6..18aeaad 100644
--- a/src/cr-style.h
+++ b/src/cr-style.h
@@ -80,7 +80,7 @@ enum CRPositionType
         POSITION_RELATIVE,
         POSITION_ABSOLUTE,
         POSITION_FIXED,
-        POSITION_INHERIT,
+        POSITION_INHERIT
 } ;
 
 enum CRFloatType
diff --git a/src/cr-stylesheet.c b/src/cr-stylesheet.c
index 06b27fc..69909da 100644
--- a/src/cr-stylesheet.c
+++ b/src/cr-stylesheet.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; indent-tabs-mode: ni; c-basic-offset: 8 -*- */
+/* -*- Mode: C; indent-tabs-mode: nil; c-basic-offset: 8 -*- */
 
 /*
  * This file is part of The Croco Library
@@ -36,7 +36,9 @@
 CRStyleSheet *
 cr_stylesheet_new (CRStatement * a_stmts)
 {
-        CRStyleSheet *result = (CRStyleSheet *)g_try_malloc (sizeof (CRStyleSheet));
+        CRStyleSheet *result;
+
+        result = g_try_malloc (sizeof (CRStyleSheet));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
@@ -55,11 +57,11 @@ cr_stylesheet_new (CRStatement * a_stmts)
  * return the serialized stylesheet.
  */
 gchar *
-cr_stylesheet_to_string (CRStyleSheet *a_this)
+cr_stylesheet_to_string (CRStyleSheet const *a_this)
 {
 	gchar *str = NULL;
 	GString *stringue = NULL;
-	CRStatement *cur_stmt = NULL;
+	CRStatement const *cur_stmt = NULL;
 
         g_return_val_if_fail (a_this, NULL);
 
@@ -93,7 +95,7 @@ cr_stylesheet_to_string (CRStyleSheet *a_this)
  * param a_fp the destination file
  */
 void
-cr_stylesheet_dump (CRStyleSheet * a_this, FILE * a_fp)
+cr_stylesheet_dump (CRStyleSheet const * a_this, FILE * a_fp)
 {
 	gchar *str = NULL ;
 
@@ -113,7 +115,7 @@ cr_stylesheet_dump (CRStyleSheet * a_this, FILE * a_fp)
  * return number of rules in the stylesheet.
  */
 gint
-cr_stylesheet_nr_rules (CRStyleSheet * a_this)
+cr_stylesheet_nr_rules (CRStyleSheet const * a_this)
 {
         g_return_val_if_fail (a_this, -1);
 
diff --git a/src/cr-stylesheet.h b/src/cr-stylesheet.h
index 3766a28..f35c94e 100644
--- a/src/cr-stylesheet.h
+++ b/src/cr-stylesheet.h
@@ -84,10 +84,10 @@ struct _CRStyleSheet
 
 CRStyleSheet * cr_stylesheet_new (CRStatement *a_stmts) ;
 
-gchar * cr_stylesheet_to_string (CRStyleSheet *a_this) ;
-void cr_stylesheet_dump (CRStyleSheet *a_this, FILE *a_fp) ;
+gchar * cr_stylesheet_to_string (CRStyleSheet const *a_this) ;
+void cr_stylesheet_dump (CRStyleSheet const *a_this, FILE *a_fp) ;
 
-gint cr_stylesheet_nr_rules (CRStyleSheet *a_this) ;
+gint cr_stylesheet_nr_rules (CRStyleSheet const *a_this) ;
 
 CRStatement * cr_stylesheet_statement_get_from_list (CRStyleSheet *a_this, int itemnr) ;
 
diff --git a/src/cr-term.c b/src/cr-term.c
index 63b3927..d6db51a 100644
--- a/src/cr-term.c
+++ b/src/cr-term.c
@@ -84,7 +84,9 @@ cr_term_clear (CRTerm * a_this)
 CRTerm *
 cr_term_new (void)
 {
-        CRTerm *result = (CRTerm *)g_try_malloc (sizeof (CRTerm));
+        CRTerm *result = NULL;
+
+        result = g_try_malloc (sizeof (CRTerm));
         if (!result) {
                 cr_utils_trace_info ("Out of memory");
                 return NULL;
@@ -104,15 +106,14 @@ CRTerm *
 cr_term_parse_expression_from_buf (const guchar * a_buf,
                                    enum CREncoding a_encoding)
 {
+        CRParser *parser = NULL;
         CRTerm *result = NULL;
         enum CRStatus status = CR_OK;
 
         g_return_val_if_fail (a_buf, NULL);
 
-        CRParser *parser = cr_parser_new_from_buf (
-		                                 (guchar*)a_buf,
-										  strlen ((char *)a_buf),
-                                          a_encoding, FALSE);
+        parser = cr_parser_new_from_buf ((guchar*)a_buf, strlen (a_buf),
+                                         a_encoding, FALSE);
         g_return_val_if_fail (parser, NULL);
 
         status = cr_parser_try_to_skip_spaces_and_comments (parser);
@@ -275,12 +276,12 @@ cr_term_prepend_term (CRTerm * a_this, CRTerm * a_new_term)
  *form of #CRTerm. MUST BE FREED BY THE CALLER using g_free().
  */
 guchar *
-cr_term_to_string (CRTerm * a_this)
+cr_term_to_string (CRTerm const * a_this)
 {
         GString *str_buf = NULL;
-        CRTerm *cur = NULL;
-        guchar *result = NULL;
-        gchar *content = NULL;
+        CRTerm const *cur = NULL;
+        guchar *result = NULL,
+                *content = NULL;
 
         g_return_val_if_fail (a_this, NULL);
 
@@ -329,7 +330,7 @@ cr_term_to_string (CRTerm * a_this)
                 switch (cur->type) {
                 case TERM_NUMBER:
                         if (cur->content.num) {
-                                content = (gchar *)cr_num_to_string (cur->content.num);
+                                content = cr_num_to_string (cur->content.num);
                         }
 
                         if (content) {
@@ -360,7 +361,7 @@ cr_term_to_string (CRTerm * a_this)
 
                                         if (tmp_str) {
                                                 g_string_append (str_buf, 
-								                    (gchar *)tmp_str);
+								 tmp_str);
                                                 g_free (tmp_str);
                                                 tmp_str = NULL;
                                         }
@@ -405,8 +406,8 @@ cr_term_to_string (CRTerm * a_this)
                 case TERM_URI:
                         if (cur->content.str) {
                                 content = g_strndup
-                                          (cur->content.str->stryng->str,
-                                           cur->content.str->stryng->len);
+                                        (cur->content.str->stryng->str,
+                                         cur->content.str->stryng->len);
                         }
 
                         if (content) {
@@ -425,7 +426,7 @@ cr_term_to_string (CRTerm * a_this)
                                 tmp_str = cr_rgb_to_string (cur->content.rgb);
 
                                 if (tmp_str) {
-                                        g_string_append (str_buf, (gchar *)tmp_str);
+                                        g_string_append (str_buf, tmp_str);
                                         g_free (tmp_str);
                                         tmp_str = NULL;
                                 }
@@ -463,7 +464,7 @@ cr_term_to_string (CRTerm * a_this)
         }
 
         if (str_buf) {
-                result = (guchar *)str_buf->str;
+                result = str_buf->str;
                 g_string_free (str_buf, FALSE);
                 str_buf = NULL;
         }
@@ -472,11 +473,11 @@ cr_term_to_string (CRTerm * a_this)
 }
 
 guchar *
-cr_term_one_to_string (CRTerm * a_this)
+cr_term_one_to_string (CRTerm const * a_this)
 {
         GString *str_buf = NULL;
-        guchar *result = NULL;
-        gchar *content = NULL;
+        guchar *result = NULL,
+                *content = NULL;
 
         g_return_val_if_fail (a_this, NULL);
 
@@ -524,7 +525,7 @@ cr_term_one_to_string (CRTerm * a_this)
         switch (a_this->type) {
         case TERM_NUMBER:
                 if (a_this->content.num) {
-                        content = (gchar *)cr_num_to_string (a_this->content.num);
+                        content = cr_num_to_string (a_this->content.num);
                 }
 
                 if (content) {
@@ -615,9 +616,10 @@ cr_term_one_to_string (CRTerm * a_this)
 
         case TERM_RGB:
                 if (a_this->content.rgb) {
+                        guchar *tmp_str = NULL;
 
                         g_string_append_printf (str_buf, "rgb(");
-                        gchar *tmp_str = (gchar *)cr_rgb_to_string (a_this->content.rgb);
+                        tmp_str = cr_rgb_to_string (a_this->content.rgb);
 
                         if (tmp_str) {
                                 g_string_append (str_buf, tmp_str);
@@ -658,7 +660,7 @@ cr_term_one_to_string (CRTerm * a_this)
         }
 
         if (str_buf) {
-                result = (guchar *)str_buf->str;
+                result = str_buf->str;
                 g_string_free (str_buf, FALSE);
                 str_buf = NULL;
         }
@@ -675,7 +677,7 @@ cr_term_one_to_string (CRTerm * a_this)
  * param a_fp the destination file pointer.
  */
 void
-cr_term_dump (CRTerm * a_this, FILE * a_fp)
+cr_term_dump (CRTerm const * a_this, FILE * a_fp)
 {
         guchar *content = NULL;
 
@@ -695,9 +697,9 @@ cr_term_dump (CRTerm * a_this, FILE * a_fp)
  * return number of terms in the expression.
  */
 int
-cr_term_nr_values (CRTerm *a_this)
+cr_term_nr_values (CRTerm const *a_this)
 {
-	CRTerm *cur = NULL ;
+	CRTerm const *cur = NULL ;
 	int nr = 0;
 
 	g_return_val_if_fail (a_this, -1) ;
diff --git a/src/cr-term.h b/src/cr-term.h
index ae8b234..0f22dda 100644
--- a/src/cr-term.h
+++ b/src/cr-term.h
@@ -35,7 +35,7 @@ G_BEGIN_DECLS
 
 /**
  * file
- *Declaration of the #CRTerm class.
+ *Declaration of the #CRTem class.
  */
 
 enum CRTermType
@@ -169,13 +169,13 @@ CRTerm * cr_term_append_term (CRTerm *a_this, CRTerm *a_new_term) ;
 
 CRTerm * cr_term_prepend_term (CRTerm *a_this, CRTerm *a_new_term) ;
 
-guchar * cr_term_to_string (CRTerm *a_this) ;
+guchar * cr_term_to_string (CRTerm const *a_this) ;
 
-guchar * cr_term_one_to_string (CRTerm * a_this) ;
+guchar * cr_term_one_to_string (CRTerm const * a_this) ;
 
-void cr_term_dump (CRTerm *a_this, FILE *a_fp) ;
+void cr_term_dump (CRTerm const *a_this, FILE *a_fp) ;
 
-int cr_term_nr_values (CRTerm *a_this) ;
+int cr_term_nr_values (CRTerm const *a_this) ;
 
 CRTerm * cr_term_get_from_list (CRTerm *a_this, int itemnr) ;
 
diff --git a/src/cr-tknzr.c b/src/cr-tknzr.c
index 859b6c5..64924ed 100644
--- a/src/cr-tknzr.c
+++ b/src/cr-tknzr.c
@@ -195,7 +195,7 @@ CHECK_PARSING_STATUS (status, TRUE) ;
  */
 #define SKIP_CHARS(a_tknzr, a_nb_chars) \
 { \
-gulong nb_chars = a_nb_chars ; \
+glong nb_chars = a_nb_chars ; \
 status = cr_input_consume_chars \
      (PRIVATE (a_tknzr)->input,0, &nb_chars) ; \
 CHECK_PARSING_STATUS (status, TRUE) ; \
@@ -408,7 +408,7 @@ cr_tknzr_try_to_skip_spaces (CRTknzr * a_this)
         }
 
         if (cr_utils_is_white_space (cur_char) == TRUE) {
-                gulong nb_chars = -1; /*consume all spaces */
+                glong nb_chars = -1; /*consume all spaces */
 
                 status = cr_input_consume_white_spaces
                         (PRIVATE (a_this)->input, &nb_chars);
@@ -434,7 +434,7 @@ cr_tknzr_parse_comment (CRTknzr * a_this,
         CRInputPos init_pos;
         guint32 cur_char = 0, next_char= 0;
         CRString *comment = NULL;
-        CRParsingLocation loc = {0,0,0} ;
+        CRParsingLocation loc = {0} ;
 
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && PRIVATE (a_this)->input, 
@@ -448,38 +448,49 @@ cr_tknzr_parse_comment (CRTknzr * a_this,
         READ_NEXT_CHAR (a_this, &cur_char);
         ENSURE_PARSING_COND (cur_char == '*');
         comment = cr_string_new ();
-        for (;;) {
+        for (;;) { /* [^*]* */
+                PEEK_NEXT_CHAR (a_this, &next_char);
+                if (next_char == '*')
+                        break;
                 READ_NEXT_CHAR (a_this, &cur_char);
-
-                /*make sure there are no nested comments */
-                if (cur_char == '/') {
+                g_string_append_unichar (comment->stryng, cur_char);
+        }
+        /* Stop condition: next_char == '*' */
+        for (;;) { /* \*+ */
+                READ_NEXT_CHAR(a_this, &cur_char);
+                ENSURE_PARSING_COND (cur_char == '*');
+                g_string_append_unichar (comment->stryng, cur_char);
+                PEEK_NEXT_CHAR (a_this, &next_char);
+                if (next_char != '*')
+                        break;
+        }
+        /* Stop condition: next_char != '*' */
+        for (;;) { /* ([^/][^*]*\*+)* */
+                if (next_char == '/')
+                        break;
+                READ_NEXT_CHAR(a_this, &cur_char);
+                g_string_append_unichar (comment->stryng, cur_char);
+                for (;;) { /* [^*]* */
+                        PEEK_NEXT_CHAR (a_this, &next_char);
+                        if (next_char == '*')
+                                break;
                         READ_NEXT_CHAR (a_this, &cur_char);
-                        ENSURE_PARSING_COND (cur_char != '*');
-                        g_string_append_c (comment->stryng, '/');
-                        g_string_append_unichar (comment->stryng, 
-                                                 cur_char);
-                        continue;
+                        g_string_append_unichar (comment->stryng, cur_char);
                 }
-
-                /*Detect the end of the comments region */
-                if (cur_char == '*') {
+                /* Stop condition: next_char = '*', no need to verify, because peek and read exit to error anyway */
+                for (;;) { /* \*+ */
+                        READ_NEXT_CHAR(a_this, &cur_char);
+                        ENSURE_PARSING_COND (cur_char == '*');
+                        g_string_append_unichar (comment->stryng, cur_char);
                         PEEK_NEXT_CHAR (a_this, &next_char);
-
-                        if (next_char == '/') {
-                                /*
-                                 *end of comments region
-                                 *Now, call the right SAC callback.
-                                 */
-                                SKIP_CHARS (a_this, 1) ;
-                                status = CR_OK;
+                        if (next_char != '*')
                                 break;
-                        } else {
-                                g_string_append_c (comment->stryng, 
-                                                   '*');
-                        }
                 }
-                g_string_append_unichar (comment->stryng, cur_char);
+                /* Continue condition: next_char != '*' */
         }
+        /* Stop condition: next_char == '\/' */
+        READ_NEXT_CHAR(a_this, &cur_char);
+        g_string_append_unichar (comment->stryng, cur_char);
 
         if (status == CR_OK) {
                 cr_parsing_location_copy (&comment->location, 
@@ -562,39 +573,16 @@ cr_tknzr_parse_unicode_escape (CRTknzr * a_this,
                         cur_char_val = 10 + (cur_char - 'A');
                 }
 
-                unicode = unicode * 10 + cur_char_val;
+                unicode = unicode * 16 + cur_char_val;
 
                 PEEK_NEXT_CHAR (a_this, &cur_char);
         }
 
-        if (occur == 5) {
-                /*
-                 *the unicode escape is 6 digit length
-                 */
-
-                /*
-                 *parse one space that may 
-                 *appear just after the unicode
-                 *escape.
-                 */
-                cr_tknzr_parse_w (a_this, &tmp_char_ptr1, 
-                                  &tmp_char_ptr2, NULL);
-                status = CR_OK;
-        } else {
-                /*
-                 *The unicode escape is less than
-                 *6 digit length. The character
-                 *that comes right after the escape
-                 *must be a white space.
-                 */
-                status = cr_tknzr_parse_w (a_this, &tmp_char_ptr1,
-                                           &tmp_char_ptr2, NULL);
-        }
-
-        if (status == CR_OK) {
-                *a_unicode = unicode;
-                return CR_OK;
-        }
+        /* Eat a whitespace if possible. */
+        cr_tknzr_parse_w (a_this, &tmp_char_ptr1, 
+                          &tmp_char_ptr2, NULL);
+        *a_unicode = unicode;
+        return CR_OK;
 
       error:
         /*
@@ -711,14 +699,13 @@ cr_tknzr_parse_string (CRTknzr * a_this, CRString ** a_str)
                 guchar next_chars[2] = { 0 };
 
                 PEEK_BYTE (a_this, 1, &next_chars[0]);
+                PEEK_BYTE (a_this, 2, &next_chars[1]);
 
                 if (next_chars[0] == '\\') {
                         guchar *tmp_char_ptr1 = NULL,
                                 *tmp_char_ptr2 = NULL;
                         guint32 esc_code = 0;
 
-                        PEEK_BYTE (a_this, 2, &next_chars[1]);
-
                         if (next_chars[1] == '\'' || next_chars[1] == '"') {
                                 g_string_append_unichar (str->stryng, 
                                                          next_chars[1]);
@@ -1036,7 +1023,7 @@ cr_tknzr_parse_name (CRTknzr * a_this,
         gboolean str_needs_free = FALSE,
                 is_first_nmchar=TRUE ;
         glong i = 0;
-        CRParsingLocation loc = {0,0,0} ;
+        CRParsingLocation loc = {0} ;
 
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && PRIVATE (a_this)->input
@@ -1088,7 +1075,7 @@ cr_tknzr_parse_hash (CRTknzr * a_this, CRString ** a_str)
         CRInputPos init_pos;
         enum CRStatus status = CR_OK;
         gboolean str_needs_free = FALSE;
-        CRParsingLocation loc = {0,0,0} ;
+        CRParsingLocation loc = {0} ;
 
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && PRIVATE (a_this)->input,
@@ -1141,7 +1128,7 @@ cr_tknzr_parse_uri (CRTknzr * a_this,
         enum CRStatus status = CR_PARSING_ERROR;
         guchar tab[4] = { 0 }, *tmp_ptr1 = NULL, *tmp_ptr2 = NULL;
         CRString *str = NULL;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
         g_return_val_if_fail (a_this 
                               && PRIVATE (a_this)
@@ -1266,7 +1253,7 @@ cr_tknzr_parse_rgb (CRTknzr * a_this, CRRgb ** a_rgb)
                 blue = 0,
                 i = 0;
         gboolean is_percentage = FALSE;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
         g_return_val_if_fail (a_this && PRIVATE (a_this), CR_BAD_PARAM_ERROR);
 
@@ -1293,7 +1280,7 @@ cr_tknzr_parse_rgb (CRTknzr * a_this, CRRgb ** a_rgb)
         status = cr_tknzr_parse_num (a_this, &num);
         ENSURE_PARSING_COND ((status == CR_OK) && (num != NULL));
 
-        red = (glong)num->val;
+        red = num->val;
         cr_num_destroy (num);
         num = NULL;
 
@@ -1319,9 +1306,9 @@ cr_tknzr_parse_rgb (CRTknzr * a_this, CRRgb ** a_rgb)
                 }
 
                 if (i == 0) {
-                        green = (glong)num->val;
+                        green = num->val;
                 } else if (i == 1) {
-                        blue = (glong)num->val;
+                        blue = num->val;
                 }
 
                 if (num) {
@@ -1492,7 +1479,7 @@ cr_tknzr_parse_num (CRTknzr * a_this,
                 next_char = 0;
         gdouble numerator, denominator = 1;
         CRInputPos init_pos;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && PRIVATE (a_this)->input, 
@@ -1583,7 +1570,9 @@ cr_tknzr_parse_num (CRTknzr * a_this,
 CRTknzr *
 cr_tknzr_new (CRInput * a_input)
 {
-        CRTknzr *result = (CRTknzr *)g_try_malloc (sizeof (CRTknzr));
+        CRTknzr *result = NULL;
+
+        result = g_try_malloc (sizeof (CRTknzr));
 
         if (result == NULL) {
                 cr_utils_trace_info ("Out of memory");
@@ -1592,7 +1581,7 @@ cr_tknzr_new (CRInput * a_input)
 
         memset (result, 0, sizeof (CRTknzr));
 
-        result->priv = (CRTknzrPriv *)g_try_malloc (sizeof (CRTknzrPriv));
+        result->priv = g_try_malloc (sizeof (CRTknzrPriv));
 
         if (result->priv == NULL) {
                 cr_utils_trace_info ("Out of memory");
@@ -1633,7 +1622,9 @@ cr_tknzr_new_from_uri (const guchar * a_file_uri,
                        enum CREncoding a_enc)
 {
         CRTknzr *result = NULL;
-        CRInput *input = cr_input_new_from_uri ((gchar *)a_file_uri, a_enc);
+        CRInput *input = NULL;
+
+        input = cr_input_new_from_uri (a_file_uri, a_enc);
         g_return_val_if_fail (input != NULL, NULL);
 
         result = cr_tknzr_new (input);
@@ -1906,7 +1897,7 @@ cr_tknzr_consume_chars (CRTknzr * a_this, guint32 a_char, glong * a_nb_char)
         }
 
         return cr_input_consume_chars (PRIVATE (a_this)->input,
-                                       a_char, (gulong *)a_nb_char);
+                                       a_char, a_nb_char);
 }
 
 enum CRStatus
@@ -1958,7 +1949,7 @@ cr_tknzr_get_next_token (CRTknzr * a_this, CRToken ** a_tk)
         CRInput *input = NULL;
         CRString *str = NULL;
         CRRgb *rgb = NULL;
-        CRParsingLocation location = {0,0,0} ;
+        CRParsingLocation location = {0} ;
 
         g_return_val_if_fail (a_this && PRIVATE (a_this)
                               && a_tk && *a_tk == NULL
@@ -2106,18 +2097,8 @@ cr_tknzr_get_next_token (CRTknzr * a_this, CRToken ** a_tk)
                                 }
                                 goto done;
                         }
-                } else {
-                        status = cr_tknzr_parse_ident (a_this, &str);
-                        if (status == CR_OK && str) {
-                                status = cr_token_set_ident (token, str);
-                                CHECK_PARSING_STATUS (status, TRUE);
-                                if (str) {
-                                        cr_parsing_location_copy (&token->location, 
-                                                                  &str->location) ;
-                                }
-                                goto done;
-                        }
-                }
+                } 
+                goto fallback;
                 break;
 
         case 'r':
@@ -2136,28 +2117,18 @@ cr_tknzr_get_next_token (CRTknzr * a_this, CRToken ** a_tk)
                                 goto done;
                         }
 
-                } else {
-                        status = cr_tknzr_parse_ident (a_this, &str);
-                        if (status == CR_OK) {
-                                status = cr_token_set_ident (token, str);
-                                CHECK_PARSING_STATUS (status, TRUE);
-                                if (str) {
-                                        cr_parsing_location_copy (&token->location, 
-                                                                  &str->location) ;
-                                }
-                                str = NULL;
-                                goto done;
-                        }
                 }
+                goto fallback;
                 break;
 
         case '<':
-                if (BYTE (input, 2, NULL) == '-'
-                    && BYTE (input, 3, NULL) == '-') {
+                if (BYTE (input, 2, NULL) == '!'
+                    && BYTE (input, 3, NULL) == '-'
+                    && BYTE (input, 4, NULL) == '-') {
                         SKIP_CHARS (a_this, 1);
                         cr_tknzr_get_parsing_location (a_this, 
                                                        &location) ;
-                        SKIP_CHARS (a_this, 2);
+                        SKIP_CHARS (a_this, 3);
                         status = cr_token_set_cdo (token);
                         CHECK_PARSING_STATUS (status, TRUE);
                         cr_parsing_location_copy (&token->location, 
@@ -2390,7 +2361,7 @@ cr_tknzr_get_next_token (CRTknzr * a_this, CRToken ** a_tk)
                                 next_bytes[0] = BYTE (input, 1, NULL);
                                 next_bytes[1] = BYTE (input, 2, NULL);
                                 next_bytes[2] = BYTE (input, 3, NULL);
-                                next_bytes[3] = BYTE (input, 4, NULL);
+                                next_bytes[3] = BYTE (input, 3, NULL);
 
                                 if (next_bytes[0] == 'e'
                                     && next_bytes[1] == 'm') {
@@ -2538,6 +2509,7 @@ cr_tknzr_get_next_token (CRTknzr * a_this, CRToken ** a_tk)
                 break;
 
         default:
+        fallback:
                 /*process the fallback cases here */
 
                 if (next_char == '\\'
diff --git a/src/cr-token.c b/src/cr-token.c
index af95751..e240ab8 100644
--- a/src/cr-token.c
+++ b/src/cr-token.c
@@ -46,6 +46,7 @@ cr_token_clear (CRToken * a_this)
         switch (a_this->type) {
         case S_TK:
         case CDO_TK:
+        case CDC_TK:
         case INCLUDES_TK:
         case DASHMATCH_TK:
         case PAGE_SYM_TK:
@@ -132,7 +133,9 @@ cr_token_clear (CRToken * a_this)
 CRToken *
 cr_token_new (void)
 {
-        CRToken *result = (CRToken *)g_try_malloc (sizeof (CRToken));
+        CRToken *result = NULL;
+
+        result = g_try_malloc (sizeof (CRToken));
 
         if (result == NULL) {
                 cr_utils_trace_info ("Out of memory");
diff --git a/src/cr-utils.c b/src/cr-utils.c
index 487cf4b..ed4be3e 100644
--- a/src/cr-utils.c
+++ b/src/cr-utils.c
@@ -725,7 +725,7 @@ cr_utils_utf8_str_to_ucs4 (const guchar * a_in,
 
         g_return_val_if_fail (status == CR_OK, status);
 
-        *a_out = (guint32 *) g_malloc0 (*a_out_len * sizeof (guint32));
+        *a_out = g_malloc0 (*a_out_len * sizeof (guint32));
 
         status = cr_utils_utf8_to_ucs4 (a_in, a_in_len, *a_out, a_out_len);
 
@@ -971,7 +971,7 @@ cr_utils_ucs1_str_to_utf8 (const guchar * a_in,
 
         in_len = *a_in_len;
 
-        *a_out = (guchar *) g_malloc0 (out_len);
+        *a_out = g_malloc0 (out_len);
 
         status = cr_utils_ucs1_to_utf8 (a_in, a_in_len, *a_out, &out_len);
 
@@ -1172,7 +1172,7 @@ cr_utils_utf8_str_to_ucs1 (const guchar * a_in,
 
         g_return_val_if_fail (status == CR_OK, status);
 
-        *a_out = (guchar *) g_malloc0 (*a_out_len * sizeof (guint32));
+        *a_out = g_malloc0 (*a_out_len * sizeof (guint32));
 
         status = cr_utils_utf8_to_ucs1 (a_in, a_in_len, *a_out, a_out_len);
         return status;
@@ -1299,10 +1299,10 @@ cr_utils_dump_n_chars2 (guchar a_char, GString * a_string, glong a_nb)
  * param a_list_of_strings the list of strings to be duplicated.
  */
 GList *
-cr_utils_dup_glist_of_string (GList * a_list_of_strings)
+cr_utils_dup_glist_of_string (GList const * a_list_of_strings)
 {
-        GList *cur = NULL,
-                *result = NULL;
+        GList const *cur = NULL;
+        GList *result = NULL;
 
         g_return_val_if_fail (a_list_of_strings, NULL);
 
@@ -1325,16 +1325,17 @@ cr_utils_dup_glist_of_string (GList * a_list_of_strings)
  *happened.
  */
 GList *
-cr_utils_dup_glist_of_cr_string (GList * a_list_of_strings)
+cr_utils_dup_glist_of_cr_string (GList const * a_list_of_strings)
 {
-        GList *cur = NULL, *result = NULL;
+        GList const *cur = NULL;
+        GList *result = NULL;
 
         g_return_val_if_fail (a_list_of_strings, NULL);
 
         for (cur = a_list_of_strings; cur; cur = cur->next) {
                 CRString *str = NULL;
 
-                str = cr_string_dup ((CRString *) cur->data) ;
+                str = cr_string_dup ((CRString const *) cur->data) ;
                 if (str)
                         result = g_list_append (result, str);
         }
diff --git a/src/cr-utils.h b/src/cr-utils.h
index 060842a..54aa249 100644
--- a/src/cr-utils.h
+++ b/src/cr-utils.h
@@ -26,10 +26,7 @@
 
 #include <stdio.h>
 #include <glib.h>
-/*
- * We're disabling this #include for Inkscape: see comment in libcroco.h.
-//#include "libcroco-config.h"
- */
+#include "libcroco-config.h"
 
 G_BEGIN_DECLS
 
@@ -239,10 +236,10 @@ cr_utils_dump_n_chars2 (guchar a_char,
                         GString *a_string,
                         glong a_nb) ;
 GList *
-cr_utils_dup_glist_of_string (GList *a_list) ;
+cr_utils_dup_glist_of_string (GList const *a_list) ;
 
 GList *
-cr_utils_dup_glist_of_cr_string (GList * a_list_of_strings) ;
+cr_utils_dup_glist_of_cr_string (GList const * a_list_of_strings) ;
 
 G_END_DECLS
 



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]