isl_printer_print_pw_qpolynomial_fold: print dim as set instead of map
[platform/upstream/isl.git] / isl_printer.c
index 6011dd6..42130c1 100644 (file)
@@ -13,6 +13,12 @@ static __isl_give isl_printer *file_end_line(__isl_take isl_printer *p)
        return p;
 }
 
+static __isl_give isl_printer *file_flush(__isl_take isl_printer *p)
+{
+       fflush(p->file);
+       return p;
+}
+
 static __isl_give isl_printer *file_print_str(__isl_take isl_printer *p,
        const char *s)
 {
@@ -98,6 +104,12 @@ static __isl_give isl_printer *str_end_line(__isl_take isl_printer *p)
        return p;
 }
 
+static __isl_give isl_printer *str_flush(__isl_take isl_printer *p)
+{
+       p->buf_n = 0;
+       return p;
+}
+
 static __isl_give isl_printer *str_print_str(__isl_take isl_printer *p,
        const char *s)
 {
@@ -128,7 +140,7 @@ static __isl_give isl_printer *str_print_isl_int(__isl_take isl_printer *p,
        int len;
        isl_int_print_gmp_free_t gmp_free;
 
-       s = mpz_get_str(0, 10, i);
+       s = isl_int_get_str(i);
        len = strlen(s);
        if (len < p->width)
                p = str_print_indent(p, p->width - len);
@@ -146,6 +158,7 @@ struct isl_printer_ops {
                                                isl_int i);
        __isl_give isl_printer *(*print_str)(__isl_take isl_printer *p,
                                                const char *s);
+       __isl_give isl_printer *(*flush)(__isl_take isl_printer *p);
 };
 
 static struct isl_printer_ops file_ops = {
@@ -153,7 +166,8 @@ static struct isl_printer_ops file_ops = {
        file_end_line,
        file_print_int,
        file_print_isl_int,
-       file_print_str
+       file_print_str,
+       file_flush
 };
 
 static struct isl_printer_ops str_ops = {
@@ -161,7 +175,8 @@ static struct isl_printer_ops str_ops = {
        str_end_line,
        str_print_int,
        str_print_isl_int,
-       str_print_str
+       str_print_str,
+       str_flush
 };
 
 __isl_give isl_printer *isl_printer_to_file(isl_ctx *ctx, FILE *file)
@@ -278,27 +293,42 @@ __isl_give isl_printer *isl_printer_set_output_format(__isl_take isl_printer *p,
 __isl_give isl_printer *isl_printer_print_str(__isl_take isl_printer *p,
        const char *s)
 {
+       if (!p)
+               return NULL;
+
        return p->ops->print_str(p, s);
 }
 
 __isl_give isl_printer *isl_printer_print_int(__isl_take isl_printer *p, int i)
 {
+       if (!p)
+               return NULL;
+
        return p->ops->print_int(p, i);
 }
 
 __isl_give isl_printer *isl_printer_print_isl_int(__isl_take isl_printer *p,
        isl_int i)
 {
+       if (!p)
+               return NULL;
+
        return p->ops->print_isl_int(p, i);
 }
 
 __isl_give isl_printer *isl_printer_start_line(__isl_take isl_printer *p)
 {
+       if (!p)
+               return NULL;
+
        return p->ops->start_line(p);
 }
 
 __isl_give isl_printer *isl_printer_end_line(__isl_take isl_printer *p)
 {
+       if (!p)
+               return NULL;
+
        return p->ops->end_line(p);
 }
 
@@ -308,3 +338,11 @@ char *isl_printer_get_str(__isl_keep isl_printer *printer)
                return NULL;
        return strdup(printer->buf);
 }
+
+__isl_give isl_printer *isl_printer_flush(__isl_take isl_printer *p)
+{
+       if (!p)
+               return NULL;
+
+       return p->ops->flush(p);
+}