Merge branch 'maint'
[platform/upstream/isl.git] / isl_printer.c
index 988d0c9..ae7596d 100644 (file)
@@ -213,6 +213,7 @@ __isl_give isl_printer *isl_printer_to_str(isl_ctx *ctx)
        if (!p->buf)
                goto error;
        p->buf_n = 0;
+       p->buf[0] = '\0';
        p->buf_size = 256;
        p->indent = 0;
        p->output_format = ISL_FORMAT_ISL;
@@ -235,6 +236,11 @@ void isl_printer_free(__isl_take isl_printer *p)
        free(p);
 }
 
+isl_ctx *isl_printer_get_ctx(__isl_keep isl_printer *printer)
+{
+       return printer ? printer->ctx : NULL;
+}
+
 __isl_give isl_printer *isl_printer_set_isl_int_width(__isl_take isl_printer *p,
        int width)
 {
@@ -257,6 +263,19 @@ __isl_give isl_printer *isl_printer_set_indent(__isl_take isl_printer *p,
        return p;
 }
 
+__isl_give isl_printer *isl_printer_indent(__isl_take isl_printer *p,
+       int indent)
+{
+       if (!p)
+               return NULL;
+
+       p->indent += indent;
+       if (p->indent < 0)
+               p->indent = 0;
+
+       return p;
+}
+
 __isl_give isl_printer *isl_printer_set_prefix(__isl_take isl_printer *p,
        const char *prefix)
 {
@@ -293,27 +312,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);
 }
 
@@ -326,5 +360,8 @@ char *isl_printer_get_str(__isl_keep isl_printer *printer)
 
 __isl_give isl_printer *isl_printer_flush(__isl_take isl_printer *p)
 {
+       if (!p)
+               return NULL;
+
        return p->ops->flush(p);
 }