summaryrefslogtreecommitdiff
path: root/web/noweb/src/c/columns.c
diff options
context:
space:
mode:
Diffstat (limited to 'web/noweb/src/c/columns.c')
-rw-r--r--web/noweb/src/c/columns.c37
1 files changed, 37 insertions, 0 deletions
diff --git a/web/noweb/src/c/columns.c b/web/noweb/src/c/columns.c
new file mode 100644
index 0000000000..a34b2ebff6
--- /dev/null
+++ b/web/noweb/src/c/columns.c
@@ -0,0 +1,37 @@
+#line 18 "columns.nw"
+static char rcsid[] = "$Id: columns.nw,v 2.24 2008/10/06 01:03:05 nr Exp nr $";
+static char rcsname[] = "$Name: v2_12 $";
+#include <stdio.h>
+#include "columns.h"
+
+int tabsize = 8;
+#line 25 "columns.nw"
+int columnwidth (char *s) { /* width of a string in columns */
+ (void)rcsid; /* avoid a warning */
+ (void)rcsname; /* avoid a warning */
+ return limitcolumn(s, 0);
+}
+#line 31 "columns.nw"
+int limitcolumn (char *s, int col) {
+ while (*s) {
+ col++;
+ if (*s=='\t' && tabsize > 0) while (col % tabsize != 0) col++;
+ s++;
+ }
+ return col;
+}
+#line 40 "columns.nw"
+void indent_for (int width, FILE *fp) {
+ /* write whitespace [[width]] columns wide */
+/*fprintf(fp,"<%2d>",width); if (width>4) {fprintf(fp," "); width -= 4;}*/
+ if (tabsize > 1)
+ while (width >= tabsize) {
+ putc('\t', fp);
+ width -= tabsize;
+ }
+ while (width > 0) {
+ putc(' ', fp);
+ width--;
+ }
+}
+