summaryrefslogtreecommitdiffstats
path: root/auto-str.c
diff options
context:
space:
mode:
Diffstat (limited to 'auto-str.c')
-rw-r--r--auto-str.c44
1 files changed, 44 insertions, 0 deletions
diff --git a/auto-str.c b/auto-str.c
new file mode 100644
index 0000000..acc3d60
--- /dev/null
+++ b/auto-str.c
@@ -0,0 +1,44 @@
1#include "substdio.h"
2#include "readwrite.h"
3#include "exit.h"
4
5char buf1[256];
6substdio ss1 = SUBSTDIO_FDBUF(write,1,buf1,sizeof(buf1));
7
8void puts(s)
9char *s;
10{
11 if (substdio_puts(&ss1,s) == -1) _exit(111);
12}
13
14void main(argc,argv)
15int argc;
16char **argv;
17{
18 char *name;
19 char *value;
20 unsigned char ch;
21 char octal[4];
22
23 name = argv[1];
24 if (!name) _exit(100);
25 value = argv[2];
26 if (!value) _exit(100);
27
28 puts("char ");
29 puts(name);
30 puts("[] = \"\\\n");
31
32 while (ch = *value++) {
33 puts("\\");
34 octal[3] = 0;
35 octal[2] = '0' + (ch & 7); ch >>= 3;
36 octal[1] = '0' + (ch & 7); ch >>= 3;
37 octal[0] = '0' + (ch & 7);
38 puts(octal);
39 }
40
41 puts("\\\n\";\n");
42 if (substdio_flush(&ss1) == -1) _exit(111);
43 _exit(0);
44}