Index: p/src/rs12/Makefile
===================================================================
--- app/src/rs12/Makefile	(revision 8d3e6ab33b2b6727eb54bb3498a0ba2af9ca9ea1)
+++ 	(revision )
@@ -1,15 +1,0 @@
-PAR = -m32
-# -static
-
-main: rs12
-
-rs12: rs12.c
-	gcc $(PAR) -o rs12 rs12.c
-
-clean:
-	rm rs12
-
-copy:
-ifdef UTT_BIN_DIR
-	cp rs12 ${UTT_BIN_DIR}
-endif
Index: p/src/rs12/rs12.c
===================================================================
--- app/src/rs12/rs12.c	(revision 25ae32e4c2354e0ed6756bbe1de83f39cd814652)
+++ 	(revision )
@@ -1,48 +1,0 @@
-#include <stdio.h>
-#include <string.h>
-
-#define MAXLINE 1000
-
-main()
-{
-  char buf[MAXLINE+1], outbuf[MAXLINE+1];
-  char form[MAXLINE+1];
-  int len;
-  int curpos,nextpos=0;
-  int a,b;
-  while(fgets(buf,MAXLINE,stdin))
-  {
-    int n=sscanf(buf,"%d %d",&a,&b);
-    if(n==2)
-    {
-      nextpos=a+b;
-      fputs(buf,stdout);
-    }
-    else
-    {
-      if(n==1)
-      {
-        curpos=a;
-        sscanf(buf,"%*d %*s %s",form);
-      }
-      else
-      {
-        curpos=nextpos;
-        sscanf(buf,"%*s %s",form);
-      }
- 
-      if(*form == '*')
-        len=0;
-      else
-      {
-        char *f = form;
-        for(len=0; *f; ++f) if(*f != '\\') ++len;
-      }
-      
-      char *buf1=buf; while(!isalpha(*buf1)) ++buf1;
-      sprintf(outbuf,"%04i %02i %s", curpos, len, buf1);
-      fputs(outbuf,stdout);
-      nextpos = curpos+len;
-    }   
-  }
-}
Index: auto/output/Makefile
===================================================================
--- auto/output/Makefile	(revision 4518a0b7b6b78168b5b4cc330fc97d43cb5c9183)
+++ auto/output/Makefile	(revision b5884b3fd633a968051fc3f1574733eea13b0230)
@@ -46,5 +46,5 @@
 VPATH = ./src
 
-PROGRAMS = tok sen fla gph kot unfla grp mar ser kon rm12
+PROGRAMS = tok sen fla gph kot unfla grp mar ser kon rm12 rs12
 
 TOK_OBJ_FILES = tok.o tok_cmdline.o
@@ -93,4 +93,8 @@
 rm12: \$(RM12_SED_FILES)
 
+RS12_OBJ_FILES = rs12.o
+rs12: \$(RS12_OBJ_FILES)
+rs12.o: rs12.c
+
 CONFIG_FILES = src/config.h Makefile
 
@@ -127,4 +131,5 @@
 	\$(RM) \$(patsubst %.l,%.c,\$(SEN_FLEX_FILES))
 	\$(RM) \$(FLA_OBJ_FILES)
+	\$(RM) \$(RS12_OBJ_FILES)
 
 .PHONY: distclean
Index: src/rs12.c
===================================================================
--- src/rs12.c	(revision b5884b3fd633a968051fc3f1574733eea13b0230)
+++ src/rs12.c	(revision b5884b3fd633a968051fc3f1574733eea13b0230)
@@ -0,0 +1,66 @@
+#include <ctype.h>
+#include <stdio.h>
+#include <string.h>
+
+#define MAXLINE 1000
+
+int main()
+{
+  char buf[MAXLINE];
+  char outbuf[MAXLINE];
+  char form[MAXLINE];
+  int len;
+  int curpos;
+  int nextpos=0;
+  int a;
+  int b;
+
+  while( fgets(buf, MAXLINE, stdin) )
+  {
+    int n = sscanf(buf, "%d %d", &a, &b);
+    if( 2 == n )
+    {
+      nextpos = a + b;
+      fputs(buf, stdout);
+    }
+    else
+    {
+      if( 1 == n )
+      {
+        curpos = a;
+        sscanf(buf, "%*d %*s %s", form);
+      }
+      else
+      {
+        curpos = nextpos;
+        sscanf(buf, "%*s %s", form);
+      }
+ 
+      if( '*' == *form )
+      {
+        len = 0;
+      }
+      else
+      {
+        char *f = form;
+        for( len = 0; *f; ++f )
+        {
+          if( '\\' != *f)
+          {
+            ++len;
+          }
+        }
+      }
+      
+      char *buf1 = buf;
+      while( !isalpha(*buf1) )
+      {
+        ++buf1;
+      }
+      sprintf(outbuf, "%04i %02i %s", curpos, len, buf1);
+      fputs(outbuf, stdout);
+      nextpos = curpos + len;
+    }   
+  }
+  return 0;
+}
