/* Returns the newly built instance of #CRSelEng of NULL if an error occurs.  */
CRSelEng* cr_sel_eng_new(void)
/* Returns the newly built instance of #CRSelEng of NULL if an error occurs.  */
CRSelEng* cr_sel_eng_new(void)
{
        CRSelEng *result = NULL;
        result = g_try_malloc (sizeof (CRSelEng));
        if (!result) {
                cr_utils_trace_info ("Out of memory");
                return NULL;
        }
        memset (result, 0, sizeof (CRSelEng));
        PRIVATE (result) = g_try_malloc (sizeof (CRSelEngPriv));
        if (!PRIVATE (result)) {
                cr_utils_trace_info ("Out of memory");
                g_free (result);
                return NULL;
        }
        memset (PRIVATE (result), 0, sizeof (CRSelEngPriv));
        cr_sel_eng_register_pseudo_class_sel_handler
                (result, (guchar *) "first-child",
                 IDENT_PSEUDO, (CRPseudoClassSelectorHandler)
                 first_child_pseudo_class_handler);
        cr_sel_eng_register_pseudo_class_sel_handler
                (result, (guchar *) "lang",
                 FUNCTION_PSEUDO, (CRPseudoClassSelectorHandler)
                 lang_pseudo_class_handler);
        return result;
}