Beispiel #1
0
/**
 *@param a_this the current instance of #CRStyleSheet
 *@return the serialized stylesheet.
 */
gchar *
cr_stylesheet_to_string (CRStyleSheet const *a_this)
{
	gchar *str = NULL;
	GString *stringue = NULL;
	CRStatement const *cur_stmt = NULL;

        g_return_val_if_fail (a_this, NULL);

	if (a_this->statements) {
		stringue = g_string_new (NULL) ;
		g_return_val_if_fail (stringue, NULL) ;
	}
        for (cur_stmt = a_this->statements;
             cur_stmt; cur_stmt = cur_stmt->next) {
		if (cur_stmt->prev) {
			g_string_append (stringue, "\n\n") ;
		}
		str = cr_statement_to_string (cur_stmt, 0) ;
		if (str) {
			g_string_append (stringue, str) ;
			g_free (str) ;
			str = NULL ;
		}
        }
	if (stringue) {
		str = stringue->str ;
		g_string_free (stringue, FALSE) ;
		stringue = NULL ;
	}
	return str ;
}
Beispiel #2
0
SEXP
R_statement_to_string(SEXP r_stmt, SEXP r_indent)
{
    CRStatement *stmt;
    gchar *ans;

    stmt = R_GetStatementRef(r_stmt);
    ans = cr_statement_to_string(stmt, INTEGER(r_indent)[0]);
//XXX release the string!
//    free(ans);
    return(ScalarString(ans ? mkChar( ans ) : NA_STRING));
 }