]> granicus.if.org Git - graphviz/commitdiff
Update with new lefty, fixing many bugs and supporting new features
authorerg <devnull@localhost>
Fri, 8 Apr 2005 20:45:34 +0000 (20:45 +0000)
committererg <devnull@localhost>
Fri, 8 Apr 2005 20:45:34 +0000 (20:45 +0000)
cmd/lefty/str.c

index a3559074e325c9d7626b91d50f00622e5aa118b1..c8c72cf58d1ff6e8089cb9329062022d8f76c241 100644 (file)
@@ -14,8 +14,7 @@
 *              AT&T Research, Florham Park NJ             *
 **********************************************************/
 
-
-/* Lefteris Koutsofios - AT&T Bell Laboratories */
+/* Lefteris Koutsofios - AT&T Labs Research */
 
 #include "common.h"
 #include "mem.h"
@@ -34,140 +33,122 @@ static int sbufi, sbufn;
 #define SBUFINCR 1000
 #define SBUFSIZE sizeof (char)
 
-static void scalarstr(Tobj);
-static void codestr(Tobj, int);
-static void appends(char *);
-static void appendi(long);
-static void appendd(double);
-static void appendnl(void);
-static void growsbuf(int);
-static char *copysbuf(void);
+static void scalarstr (Tobj);
+static void codestr (Tobj, int);
+static void appends (char *);
+static void appendi (long);
+static void appendd (double);
+static void appendnl (void);
+static void growsbuf (int);
+static char *copysbuf (void);
 
-void Sinit(void)
-{
-    if (!(sbufp = malloc(SBUFINCR * SBUFSIZE)))
-       panic(POS, "Sinit", "sbuf malloc failed");
+void Sinit (void) {
+    if (!(sbufp = malloc (SBUFINCR * SBUFSIZE)))
+        panic (POS, "Sinit", "sbuf malloc failed");
     sbufi = 0;
     sbufn = SBUFINCR;
     indent = 0;
     highci = -1;
 }
 
-void Sterm(void)
-{
+void Sterm (void) {
     indent = 0;
-    free(sbufp), sbufp = NULL;
+    free (sbufp), sbufp = NULL;
     sbufn = sbufi = 0;
 }
 
-char *Spath(char *path, Tobj ko)
-{
+char *Spath (char *path, Tobj ko) {
     sbufp[(sbufi = 0)] = '\000';
-    appends((path) ? path : "");
-    scalarstr(ko);
-    return copysbuf();
+    appends ((path) ? path : "");
+    scalarstr (ko);
+    return copysbuf ();
 }
 
-char *Sseen(Tobj ko, char *path)
-{
+char *Sseen (Tobj ko, char *path) {
     sbufp[(sbufi = 0)] = '\000';
-    scalarstr(ko), appends(" = "), appends(path), appends(";");
-    return copysbuf();
+    scalarstr (ko), appends (" = "), appends (path), appends (";");
+    return copysbuf ();
 }
 
-char *Sabstract(Tobj ko, Tobj vo)
-{
+char *Sabstract (Tobj ko, Tobj vo) {
     sbufp[(sbufi = 0)] = '\000';
-    scalarstr(ko), appends(" = ");
-    switch (Tgettype(vo)) {
+    scalarstr (ko), appends (" = ");
+    switch (Tgettype (vo)) {
     case T_STRING:
     case T_INTEGER:
     case T_REAL:
-       scalarstr(vo);
-       break;
+        scalarstr (vo);
+        break;
     case T_CODE:
-       appends("function (...) { ... }");
-       break;
+        appends ("function (...) { ... }");
+        break;
     case T_TABLE:
-       appends("[ ... ]");
-       break;
-    case T_SIZE:
-       break;
+        appends ("[ ... ]");
+        break;
     }
-    appends(";");
-    return copysbuf();
+    appends (";");
+    return copysbuf ();
 }
 
-char *Stfull(Tobj ko)
-{
+char *Stfull (Tobj ko) {
     sbufp[(sbufi = 0)] = '\000';
-    scalarstr(ko), appends(" = [");
-    return copysbuf();
+    scalarstr (ko), appends (" = [");
+    return copysbuf ();
 }
 
-char *Ssfull(Tobj ko, Tobj vo)
-{
+char *Ssfull (Tobj ko, Tobj vo) {
     sbufp[(sbufi = 0)] = '\000';
     if (ko)
-       scalarstr(ko), appends(" = ");
-    switch (Tgettype(vo)) {
+        scalarstr (ko), appends (" = ");
+    switch (Tgettype (vo)) {
     case T_STRING:
     case T_INTEGER:
     case T_REAL:
     case T_CODE:
-       scalarstr(vo);
-       break;
-    case T_TABLE:
-    case T_SIZE:
-       break;
+        scalarstr (vo);
+        break;
     }
-    appends(";");
-    return copysbuf();
+    appends (";");
+    return copysbuf ();
 }
 
-char *Scfull(Tobj co, int ci, int mci)
-{
+char *Scfull (Tobj co, int ci, int mci) {
     sbufp[(sbufi = 0)] = '\000';
     highci = mci;
-    codestr(co, ci);
+    codestr (co, ci);
     highci = -1;
-    return copysbuf();
+    return copysbuf ();
 }
 
-static void scalarstr(Tobj to)
-{
-    switch (Tgettype(to)) {
+static void scalarstr (Tobj to) {
+    switch (Tgettype (to)) {
     case T_INTEGER:
-       appendi(Tgetinteger(to));
-       break;
+        appendi (Tgetinteger (to));
+        break;
     case T_REAL:
-       appendd(Tgetreal(to));
-       break;
+        appendd (Tgetreal (to));
+        break;
     case T_STRING:
-       appends("\""), appends(Tgetstring(to)), appends("\"");
-       break;
+        appends ("\""), appends (Tgetstring (to)), appends ("\"");
+        break;
     case T_CODE:
-       codestr(to, 0);
-       break;
-    case T_TABLE:
-    case T_SIZE:
-       break;
+        codestr (to, 0);
+        break;
     }
 }
 
-static void codestr(Tobj co, int ci)
-{
-    Ctype_t ct, ct1;
+static void codestr (Tobj co, int ci) {
+    int ct, ct1;
     int ci1, ci2;
 
     if (highci == ci)
-       appends(" >> ");
-    switch ((ct = TCgettype(co, ci))) {
+        appends (" >> ");
+    switch ((ct = TCgettype (co, ci))) {
     case C_ASSIGN:
-       codestr(co, (ci1 = TCgetfp(co, ci)));
-       appends(" = ");
-       codestr(co, TCgetnext(co, ci1));
-       break;
+        codestr (co, (ci1 = TCgetfp (co, ci)));
+        appends (" = ");
+        codestr (co, TCgetnext (co, ci1));
+        break;
     case C_OR:
     case C_AND:
     case C_EQ:
@@ -181,374 +162,342 @@ static void codestr(Tobj co, int ci)
     case C_MUL:
     case C_DIV:
     case C_MOD:
-       codestr(co, (ci1 = TCgetfp(co, ci)));
-       switch (ct) {
-       case C_OR:
-           appends(" | ");
-           break;
-       case C_AND:
-           appends(" & ");
-           break;
-       case C_EQ:
-           appends(" == ");
-           break;
-       case C_NE:
-           appends(" ~= ");
-           break;
-       case C_LT:
-           appends(" < ");
-           break;
-       case C_LE:
-           appends(" <= ");
-           break;
-       case C_GT:
-           appends(" > ");
-           break;
-       case C_GE:
-           appends(" >= ");
-           break;
-       case C_PLUS:
-           appends(" + ");
-           break;
-       case C_MINUS:
-           appends(" - ");
-           break;
-       case C_MUL:
-           appends(" * ");
-           break;
-       case C_DIV:
-           appends(" / ");
-           break;
-       case C_MOD:
-           appends(" % ");
-           break;
-       default:
-           break;
-       }
-       codestr(co, TCgetnext(co, ci1));
-       break;
+        codestr (co, (ci1 = TCgetfp (co, ci)));
+        switch (ct) {
+        case C_OR:    appends (" | ");  break;
+        case C_AND:   appends (" & ");  break;
+        case C_EQ:    appends (" == "); break;
+        case C_NE:    appends (" ~= "); break;
+        case C_LT:    appends (" < ");  break;
+        case C_LE:    appends (" <= "); break;
+        case C_GT:    appends (" > ");  break;
+        case C_GE:    appends (" >= "); break;
+        case C_PLUS:  appends (" + ");  break;
+        case C_MINUS: appends (" - ");  break;
+        case C_MUL:   appends (" * ");  break;
+        case C_DIV:   appends (" / ");  break;
+        case C_MOD:   appends (" % ");  break;
+        }
+        codestr (co, TCgetnext (co, ci1));
+        break;
     case C_NOT:
-       appends("~");
-       codestr(co, TCgetfp(co, ci));
-       break;
+        appends ("~");
+        codestr (co, TCgetfp (co, ci));
+        break;
     case C_UMINUS:
-       appends("-");
-       codestr(co, TCgetfp(co, ci));
-       break;
+        appends ("-");
+        codestr (co, TCgetfp (co, ci));
+        break;
     case C_PEXPR:
-       appends("(");
-       codestr(co, TCgetfp(co, ci));
-       appends(")");
-       break;
+        appends ("(");
+        codestr (co, TCgetfp (co, ci));
+        appends (")");
+        break;
     case C_FCALL:
-       codestr(co, (ci1 = TCgetfp(co, ci)));
-       appends(" (");
-       codestr(co, TCgetnext(co, ci1));
-       appends(")");
-       break;
+        codestr (co, (ci1 = TCgetfp (co, ci)));
+        appends (" (");
+        codestr (co, TCgetnext (co, ci1));
+        appends (")");
+        break;
     case C_INTEGER:
-       appendi(TCgetinteger(co, ci));
-       break;
+        appendi (TCgetinteger (co, ci));
+        break;
     case C_REAL:
-       appendd(TCgetreal(co, ci));
-       break;
+        appendd (TCgetreal (co, ci));
+        break;
     case C_STRING:
-       appends("\""), appends(TCgetstring(co, ci)), appends("\"");
-       break;
+        appends ("\""), appends (TCgetstring (co, ci)), appends ("\"");
+        break;
     case C_GVAR:
     case C_LVAR:
-       ci1 = TCgetfp(co, ci);
-       appends(TCgetstring(co, ci1));
-       if (ct == C_LVAR)
-           ci1 = TCgetnext(co, ci1);
-       for (ci1 = TCgetnext(co, ci1); ci1 != C_NULL;
-            ci1 = TCgetnext(co, ci1)) {
-           switch (TCgettype(co, ci1)) {
-           case C_STRING:
-               appends("."), appends(TCgetstring(co, ci1));
-               break;
-           case C_INTEGER:
-               appends("[");
-               appendi(TCgetinteger(co, ci1));
-               appends("]");
-               break;
-           case C_REAL:
-               appends("[");
-               appendd(TCgetreal(co, ci1));
-               appends("]");
-               break;
-           default:
-               appends("[");
-               codestr(co, ci1);
-               appends("]");
-           }
-       }
-       break;
+        ci1 = TCgetfp (co, ci);
+        appends (TCgetstring (co, ci1));
+        if (ct == C_LVAR)
+            ci1 = TCgetnext (co, ci1);
+        for (
+            ci1 = TCgetnext (co, ci1); ci1 != C_NULL;
+            ci1 = TCgetnext (co, ci1)
+        ) {
+            switch (TCgettype (co, ci1)) {
+            case C_STRING:
+                appends ("."), appends (TCgetstring (co, ci1));
+                break;
+            case C_INTEGER:
+                appends ("[");
+                appendi (TCgetinteger (co, ci1));
+                appends ("]");
+                break;
+            case C_REAL:
+                appends ("[");
+                appendd (TCgetreal (co, ci1));
+                appends ("]");
+                break;
+            default:
+                appends ("[");
+                codestr (co, ci1);
+                appends ("]");
+            }
+        }
+        break;
     case C_PVAR:
-       appends("<var>");
-       break;
+        appends ("<var>");
+        break;
     case C_FUNCTION:
-       ci1 = TCgetnext(co, TCgetnext(co, TCgetfp(co, ci)));
-       appends("function (");
-       codestr(co, ci1);
-       ci1 = TCgetnext(co, ci1);
-       if (TCgettype(co, ci1) == C_INTERNAL) {
-           appends(") internal \"");
-           appends(Ifuncs[TCgetinteger(co, TCgetfp(co, ci1))].name);
-           appends("\"");
-       } else {
-           appends(") {");
-           INDINC(2);
-           for (; ci1 != C_NULL; ci1 = TCgetnext(co, ci1)) {
-               appendnl();
-               if (TCgettype(co, ci1) == C_DECL)
-                   appends("local "), codestr(co, ci1), appends(";");
-               else
-                   codestr(co, ci1);
-           }
-           INDDEC(2);
-           appendnl();
-           appends("}");
-       }
-       break;
+        ci1 = TCgetnext (co, TCgetnext (co, TCgetfp (co, ci)));
+        appends ("function (");
+        codestr (co, ci1);
+        ci1 = TCgetnext (co, ci1);
+        if (TCgettype (co, ci1) == C_INTERNAL) {
+            appends (") internal \"");
+            appends (Ifuncs[TCgetinteger (co, TCgetfp (co, ci1))].name);
+            appends ("\"");
+        } else {
+            appends (") {");
+            INDINC (2);
+            for (; ci1 != C_NULL; ci1 = TCgetnext (co, ci1)) {
+                appendnl ();
+                if (TCgettype (co, ci1) == C_DECL)
+                    appends ("local "), codestr (co, ci1), appends (";");
+                else
+                    codestr (co, ci1);
+            }
+            INDDEC (2);
+            appendnl ();
+            appends ("}");
+        }
+        break;
     case C_TCONS:
-       appends("[");
-       INDINC(2);
-       ci1 = TCgetfp(co, ci);
-       while (ci1 != C_NULL) {
-           appendnl();
-           codestr(co, ci1);
-           appends(" = ");
-           ci1 = TCgetnext(co, ci1);
-           codestr(co, ci1);
-           appends(";");
-           ci1 = TCgetnext(co, ci1);
-       }
-       INDDEC(2);
-       appendnl();
-       appends("]");
-       break;
+        appends ("[");
+        INDINC (2);
+        ci1 = TCgetfp (co, ci);
+        while (ci1 != C_NULL) {
+            appendnl ();
+            codestr (co, ci1);
+            appends (" = ");
+            ci1 = TCgetnext (co, ci1);
+            codestr (co, ci1);
+            appends (";");
+            ci1 = TCgetnext (co, ci1);
+        }
+        INDDEC (2);
+        appendnl ();
+        appends ("]");
+        break;
     case C_DECL:
-       ci1 = TCgetfp(co, ci);
-       while (ci1 != C_NULL) {
-           appends(TCgetstring(co, ci1));
-           ci1 = TCgetnext(co, ci1);
-           if (ci1 != C_NULL)
-               appends(", ");
-       }
-       break;
+        ci1 = TCgetfp (co, ci);
+        while (ci1 != C_NULL) {
+            appends (TCgetstring (co, ci1));
+            ci1 = TCgetnext (co, ci1);
+            if (ci1 != C_NULL)
+                appends (", ");
+        }
+        break;
     case C_STMT:
-       ci1 = TCgetfp(co, ci);
-       if (ci1 == C_NULL) {
-           appends(";");
-           break;
-       }
-       if (TCgetnext(co, ci1) == C_NULL) {
-           codestr(co, ci1);
-           ct1 = TCgettype(co, ci1);
-           if (!C_ISSTMT(ct1))
-               appends(";");
-       } else {
-           appends(" {");
-           INDINC(2);
-           for (; ci1 != C_NULL; ci1 = TCgetnext(co, ci1)) {
-               appendnl();
-               codestr(co, ci1);
-           }
-           INDDEC(2);
-           appendnl();
-           appends("}");
-       }
-       break;
+        ci1 = TCgetfp (co, ci);
+        if (ci1 == C_NULL) {
+            appends (";");
+            break;
+        }
+        if (TCgetnext (co, ci1) == C_NULL) {
+            codestr (co, ci1);
+            ct1 = TCgettype (co, ci1);
+            if (!C_ISSTMT (ct1))
+                appends (";");
+        } else {
+            appends (" {");
+            INDINC (2);
+            for (; ci1 != C_NULL; ci1 = TCgetnext (co, ci1)) {
+                appendnl ();
+                codestr (co, ci1);
+            }
+            INDDEC (2);
+            appendnl ();
+            appends ("}");
+        }
+        break;
     case C_IF:
-       ci1 = TCgetfp(co, ci);
-       appends("if (");
-       codestr(co, ci1);
-       appends(")");
-       ci1 = TCgetnext(co, ci1);
-       ci2 = TCgetfp(co, ci1);
-       if (ci2 == C_NULL || TCgetnext(co, ci2) == C_NULL) {
-           INDINC(2);
-           appendnl();
-           codestr(co, ci1);
-           INDDEC(2);
-       } else {
-           codestr(co, ci1);
-       }
-       ci1 = TCgetnext(co, ci1);
-       if (ci1 == C_NULL)
-           break;
-       if (ci2 == C_NULL || TCgetnext(co, ci2) == C_NULL) {
-           appendnl();
-           appends("else");
-       } else {
-           appends(" else");
-       }
-       ci2 = TCgetfp(co, ci1);
-       if (ci2 == C_NULL || TCgetnext(co, ci2) == C_NULL) {
-           INDINC(2);
-           appendnl();
-           codestr(co, ci1);
-           INDDEC(2);
-       } else {
-           codestr(co, ci1);
-       }
-       break;
+        ci1 = TCgetfp (co, ci);
+        appends ("if (");
+        codestr (co, ci1);
+        appends (")");
+        ci1 = TCgetnext (co, ci1);
+        ci2 = TCgetfp (co, ci1);
+        if (ci2 == C_NULL || TCgetnext (co, ci2) == C_NULL) {
+            INDINC (2);
+            appendnl ();
+            codestr (co, ci1);
+            INDDEC (2);
+        } else {
+            codestr (co, ci1);
+        }
+        ci1 = TCgetnext (co, ci1);
+        if (ci1 == C_NULL)
+            break;
+        if (ci2 == C_NULL || TCgetnext (co, ci2) == C_NULL) {
+            appendnl ();
+            appends ("else");
+        } else {
+            appends (" else");
+        }
+        ci2 = TCgetfp (co, ci1);
+        if (ci2 == C_NULL || TCgetnext (co, ci2) == C_NULL) {
+            INDINC (2);
+            appendnl ();
+            codestr (co, ci1);
+            INDDEC (2);
+        } else {
+            codestr (co, ci1);
+        }
+        break;
     case C_WHILE:
-       ci1 = TCgetfp(co, ci);
-       appends("while (");
-       codestr(co, ci1);
-       ci1 = TCgetnext(co, ci1);
-       ci2 = TCgetfp(co, ci1);
-       if (ci2 == C_NULL || TCgetnext(co, ci2) == C_NULL) {
-           appends(")");
-           INDINC(2);
-           appendnl();
-           codestr(co, ci1);
-           INDDEC(2);
-       } else {
-           appends(")");
-           codestr(co, ci1);
-       }
-       break;
+        ci1 = TCgetfp (co, ci);
+        appends ("while (");
+        codestr (co, ci1);
+        ci1 = TCgetnext (co, ci1);
+        ci2 = TCgetfp (co, ci1);
+        if (ci2 == C_NULL || TCgetnext (co, ci2) == C_NULL) {
+            appends (")");
+            INDINC (2);
+            appendnl ();
+            codestr (co, ci1);
+            INDDEC (2);
+        } else {
+            appends (")");
+            codestr (co, ci1);
+        }
+        break;
     case C_FOR:
-       ci1 = TCgetfp(co, ci);
-       appends("for (");
-       codestr(co, ci1);
-       appends("; ");
-       ci1 = TCgetnext(co, ci1);
-       codestr(co, ci1);
-       appends("; ");
-       ci1 = TCgetnext(co, ci1);
-       codestr(co, ci1);
-       ci1 = TCgetnext(co, ci1);
-       ci2 = TCgetfp(co, ci1);
-       if (ci2 == C_NULL || TCgetnext(co, ci2) == C_NULL) {
-           appends(")");
-           INDINC(2);
-           appendnl();
-           codestr(co, ci1);
-           INDDEC(2);
-       } else {
-           appends(")");
-           codestr(co, ci1);
-       }
-       break;
+        ci1 = TCgetfp (co, ci);
+        appends ("for (");
+        codestr (co, ci1);
+        appends ("; ");
+        ci1 = TCgetnext (co, ci1);
+        codestr (co, ci1);
+        appends ("; ");
+        ci1 = TCgetnext (co, ci1);
+        codestr (co, ci1);
+        ci1 = TCgetnext (co, ci1);
+        ci2 = TCgetfp (co, ci1);
+        if (ci2 == C_NULL || TCgetnext (co, ci2) == C_NULL) {
+            appends (")");
+            INDINC (2);
+            appendnl ();
+            codestr (co, ci1);
+            INDDEC (2);
+        } else {
+            appends (")");
+            codestr (co, ci1);
+        }
+        break;
     case C_FORIN:
-       ci1 = TCgetfp(co, ci);
-       appends("for (");
-       codestr(co, ci1);
-       appends(" in ");
-       ci1 = TCgetnext(co, ci1);
-       codestr(co, ci1);
-       ci1 = TCgetnext(co, ci1);
-       ci2 = TCgetfp(co, ci1);
-       if (ci2 == C_NULL || TCgetnext(co, ci2) == C_NULL) {
-           appends(")");
-           INDINC(2);
-           appendnl();
-           codestr(co, ci1);
-           INDDEC(2);
-       } else {
-           appends(")");
-           codestr(co, ci1);
-       }
-       break;
+        ci1 = TCgetfp (co, ci);
+        appends ("for (");
+        codestr (co, ci1);
+        appends (" in ");
+        ci1 = TCgetnext (co, ci1);
+        codestr (co, ci1);
+        ci1 = TCgetnext (co, ci1);
+        ci2 = TCgetfp (co, ci1);
+        if (ci2 == C_NULL || TCgetnext (co, ci2) == C_NULL) {
+            appends (")");
+            INDINC (2);
+            appendnl ();
+            codestr (co, ci1);
+            INDDEC (2);
+        } else {
+            appends (")");
+            codestr (co, ci1);
+        }
+        break;
     case C_BREAK:
-       appends("break;");
-       break;
+        appends ("break;");
+        break;
     case C_CONTINUE:
-       appends("continue;");
-       break;
+        appends ("continue;");
+        break;
     case C_RETURN:
-       ci1 = TCgetfp(co, ci);
-       appends("return");
-       if (ci1 != C_NULL) {
-           appends(" ");
-           codestr(co, ci1);
-       }
-       appends(";");
-       break;
+        ci1 = TCgetfp (co, ci);
+        appends ("return");
+        if (ci1 != C_NULL) {
+            appends (" ");
+            codestr (co, ci1);
+        }
+        appends (";");
+        break;
     case C_ARGS:
-       ci1 = TCgetfp(co, ci);
-       while (ci1 != C_NULL) {
-           codestr(co, ci1);
-           ci1 = TCgetnext(co, ci1);
-           if (ci1 != C_NULL)
-               appends(", ");
-       }
-       break;
+        ci1 = TCgetfp (co, ci);
+        while (ci1 != C_NULL) {
+            codestr (co, ci1);
+            ci1 = TCgetnext (co, ci1);
+            if (ci1 != C_NULL)
+                appends (", ");
+        }
+        break;
     default:
-       panic(POS, "codestr", "bad object type: %d", ct);
+        panic (POS, "codestr", "bad object type: %d", ct);
     }
 }
 
-static void appends(char *s)
-{
+static void appends (char *s) {
     int n;
 
-    n = strlen(s) + 1;
+    n = strlen (s) + 1;
     if (sbufi + n > sbufn)
-       growsbuf(n);
-    strcpy(&sbufp[sbufi], s);
+        growsbuf (n);
+    strcpy (&sbufp[sbufi], s);
     sbufi += (n - 1);
 }
 
-static void appendi(long i)
-{
+static void appendi (long i) {
     char buf[40];
     int n;
 
-    sprintf(buf, "%ld", i);
-    n = strlen(buf) + 1;
+    sprintf (buf, "%ld", i);
+    n = strlen (buf) + 1;
     if (sbufi + n > sbufn)
-       growsbuf(n);
-    strcpy(&sbufp[sbufi], buf);
+        growsbuf (n);
+    strcpy (&sbufp[sbufi], buf);
     sbufi += (n - 1);
 }
 
-static void appendd(double d)
-{
+static void appendd (double d) {
     char buf[40];
     int n;
 
-    sprintf(buf, "%f", d);
-    n = strlen(buf) + 1;
+    sprintf (buf, "%lf", d);
+    n = strlen (buf) + 1;
     if (sbufi + n > sbufn)
-       growsbuf(n);
-    strcpy(&sbufp[sbufi], buf);
+        growsbuf (n);
+    strcpy (&sbufp[sbufi], buf);
     sbufi += (n - 1);
 }
 
-static void appendnl(void)
-{
+static void appendnl (void) {
     int i, n;
 
     n = indent + 1;
     if (sbufi + n > sbufn)
-       growsbuf(n);
+        growsbuf (n);
     sbufp[sbufi++] = '\n';
     for (i = 0; i < indent; i++)
-       sbufp[sbufi++] = ' ';
+        sbufp[sbufi++] = ' ';
 }
 
-static void growsbuf(int ssize)
-{
+static void growsbuf (int ssize) {
     int nsize;
 
     nsize = ((sbufn + ssize) / SBUFINCR + 1) * SBUFINCR;
-    if (!(sbufp = realloc(sbufp, nsize * SBUFSIZE)))
-       panic(POS, "growsbuf", "sbuf realloc failed");
+    if (!(sbufp = realloc (sbufp, nsize * SBUFSIZE)))
+        panic (POS, "growsbuf", "sbuf realloc failed");
     sbufn = nsize;
 }
 
-static char *copysbuf(void)
-{
+static char *copysbuf (void) {
     char *newsbufp;
 
     sbufp[sbufi++] = '\000';
-    if (!(newsbufp = malloc(sbufi * sizeof(char))))
-       panic(POS, "copysbuf", "newsbuf malloc failed");
-    strcpy(newsbufp, sbufp);
+    if (!(newsbufp = malloc (sbufi * sizeof (char))))
+        panic (POS, "copysbuf", "newsbuf malloc failed");
+    strcpy (newsbufp, sbufp);
     return newsbufp;
 }