aboutsummaryrefslogtreecommitdiff
path: root/gathing-eng/badroff.c
diff options
context:
space:
mode:
Diffstat (limited to 'gathing-eng/badroff.c')
-rw-r--r--gathing-eng/badroff.c50
1 files changed, 50 insertions, 0 deletions
diff --git a/gathing-eng/badroff.c b/gathing-eng/badroff.c
new file mode 100644
index 0000000..d318d40
--- /dev/null
+++ b/gathing-eng/badroff.c
@@ -0,0 +1,50 @@
+#include <stdio.h>
+#include <string.h>
+
+typedef char bool;
+#define true 1
+#define false 0
+int main(int argc, char** argv){
+ FILE* in;
+ if (argc >= 2)
+ in = fopen(argv[1], "r");
+ else
+ in = stdin;
+ if (in == NULL){
+ perror(argv[1]);
+ return 1;
+ }
+ int c;
+ bool nl = true;
+ bool cmd = false;
+ char cmds[81];
+ int cmdlen = 0;
+ while ( (c = fgetc(in)) != EOF){
+ if (c == '\n'){
+ if (cmd){
+ if (! strncmp(cmds,"CT",2)){
+ for (int i=0; i<(83-strnlen(cmds,80))/2; i++)
+ printf(" ");
+ printf("%s\n",cmds+3);
+ } else printf("%s\n",cmds);
+ cmd = false;
+ cmds[0] = '\0';
+ cmdlen = 0;
+ }
+ else printf("\n");
+ nl = true;
+ }
+ else{
+ if (c == '.' && nl)
+ cmd = true;
+ else if (cmd){
+ cmds[cmdlen] = c;
+ cmds[cmdlen+1] = '\0';
+ cmdlen++;
+ }
+ else printf("%c",c);
+ nl = false;
+ }
+ }
+ return 0;
+}