diff 3rdparty/packages/ed/join.c @ 994:bef1844de0dc

The ED editor ported from Minix
author roug
date Sun, 23 Feb 2003 21:11:37 +0000
parents
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/3rdparty/packages/ed/join.c	Sun Feb 23 21:11:37 2003 +0000
@@ -0,0 +1,38 @@
+/*      join.c  */
+#include <stdio.h>
+#include "tools.h"
+#include "ed.h"
+
+extern int fchanged;
+
+int join(first, last)
+int first, last;
+{
+  char buf[MAXLINE];
+  char *cp = buf, *str;
+  int num;
+
+  if (first <= 0 || first > last || last > lastln) return(ERR);
+  if (first == last) {
+        curln = first;
+        return 0;
+  }
+  for (num = first; num <= last; num++) {
+        str = gettxt(num);
+
+        while (*str != NL && cp < buf + MAXLINE - 1) *cp++ = *str++;
+
+        if (cp == buf + MAXLINE - 1) {
+                printf("line too long\n");
+                return(ERR);
+        }
+  }
+  *cp++ = NL;
+  *cp = EOS;
+  del(first, last);
+  curln = first - 1;
+  ins(buf);
+  fchanged = TRUE;
+  return 0;
+}
+