aboutsummaryrefslogtreecommitdiff
path: root/bin
diff options
context:
space:
mode:
authorAndrew Moore <alm@FreeBSD.org>1993-07-02 06:16:28 +0000
committerAndrew Moore <alm@FreeBSD.org>1993-07-02 06:16:28 +0000
commit95c745afb27165c9a60a7f3bd0fb337c2dd168e8 (patch)
tree273115a0902cdaf8962fa45cde6551f054acb914 /bin
parent24cd262d1a963bcda8de9feb15cf130e99135c4c (diff)
downloadsrc-95c745afb27165c9a60a7f3bd0fb337c2dd168e8.tar.gz
src-95c745afb27165c9a60a7f3bd0fb337c2dd168e8.zip
Consolidate mark code - no functional changes or fixes.
Notes
Notes: svn path=/head/; revision=87
Diffstat (limited to 'bin')
-rw-r--r--bin/ed/buf.c38
-rw-r--r--bin/ed/ed.h5
2 files changed, 41 insertions, 2 deletions
diff --git a/bin/ed/buf.c b/bin/ed/buf.c
index 1d74cb827f4a..7c92e5586269 100644
--- a/bin/ed/buf.c
+++ b/bin/ed/buf.c
@@ -49,13 +49,13 @@ static char sccsid[] = "@(#)buf.c 5.5 (Berkeley) 3/28/93";
#include "ed.h"
extern char errmsg[];
-extern line_t line0;
FILE *sfp; /* scratch file pointer */
char *sfbuf = NULL; /* scratch file input buffer */
int sfbufsz = 0; /* scratch file input buffer size */
off_t sfseek; /* scratch file position */
int seek_write; /* seek before writing */
+line_t line0; /* initial node of line queue */
/* gettxt: get a line of text from the scratch file; return pointer
to the text */
@@ -248,3 +248,39 @@ quit(n)
}
exit(n);
}
+
+
+unsigned char ctab[256]; /* character translation table */
+
+/* init_buf: open scratch buffer; initialize line queue */
+void
+init_buf()
+{
+ int i = 0;
+
+ if (sbopen() < 0)
+ quit(2);
+ requeue(&line0, &line0);
+ for (i = 0; i < 256; i++)
+ ctab[i] = i;
+}
+
+
+/* translit: translate characters in a string */
+char *
+translit(s, len, from, to)
+ char *s;
+ int len;
+ int from;
+ int to;
+{
+ static int i = 0;
+
+ unsigned char *us;
+
+ ctab[i] = i; /* restore table to initial state */
+ ctab[i = from] = to;
+ for (us = (unsigned char *) s; len-- > 0; us++)
+ *us = ctab[*us];
+ return s;
+}
diff --git a/bin/ed/ed.h b/bin/ed/ed.h
index c854364dfb69..20d5cec9c8de 100644
--- a/bin/ed/ed.h
+++ b/bin/ed/ed.h
@@ -206,6 +206,7 @@ int desputc __P((int, FILE *));
int docmd __P((int));
void err __P((char *));
char *ccl __P((char *));
+void clrmark __P((line_t *));
void cvtkey __P((char *, char *));
long doglob __P((int));
void dohup __P((int));
@@ -223,6 +224,7 @@ int getkey __P((void));
char *getlhs __P((int));
int getline __P((void));
int getlist __P((void));
+long getmark __P((int));
long getnum __P((int));
long getone __P((void));
line_t *getlp __P((long));
@@ -236,12 +238,12 @@ line_t *lpdup __P((line_t *));
void lpqueue __P((line_t *));
void makekey __P((char *));
char *makesub __P((int));
-char *translit __P((char *, int, int, int));
int move __P((long, int));
int oddesc __P((char *, char *));
void onhup __P((int));
void onintr __P((int));
pattern_t *optpat __P((void));
+int putmark __P((int, line_t *));
void putstr __P((char *, int, long, int));
char *puttxt __P((char *));
void quit __P((int));
@@ -253,6 +255,7 @@ int catsub __P((char *, regmatch_t *, int));
int subst __P((pattern_t *, int));
int tobinhex __P((int, int));
int transfer __P((long));
+char *translit __P((char *, int, int, int));
int undo __P((int));
undo_t *upush __P((int, long, long));
void ureset __P((void));