994
|
1 /* join.c */
|
|
2 #include <stdio.h>
|
|
3 #include "tools.h"
|
|
4 #include "ed.h"
|
|
5
|
|
6 extern int fchanged;
|
|
7
|
|
8 int join(first, last)
|
|
9 int first, last;
|
|
10 {
|
|
11 char buf[MAXLINE];
|
|
12 char *cp = buf, *str;
|
|
13 int num;
|
|
14
|
|
15 if (first <= 0 || first > last || last > lastln) return(ERR);
|
|
16 if (first == last) {
|
|
17 curln = first;
|
|
18 return 0;
|
|
19 }
|
|
20 for (num = first; num <= last; num++) {
|
|
21 str = gettxt(num);
|
|
22
|
|
23 while (*str != NL && cp < buf + MAXLINE - 1) *cp++ = *str++;
|
|
24
|
|
25 if (cp == buf + MAXLINE - 1) {
|
|
26 printf("line too long\n");
|
|
27 return(ERR);
|
|
28 }
|
|
29 }
|
|
30 *cp++ = NL;
|
|
31 *cp = EOS;
|
|
32 del(first, last);
|
|
33 curln = first - 1;
|
|
34 ins(buf);
|
|
35 fchanged = TRUE;
|
|
36 return 0;
|
|
37 }
|
|
38
|