summaryrefslogtreecommitdiff
blob: fd4f06f9f8c8c87124c5cec9f0a92965614f7d1b (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
--- a/abbrev.c
+++ b/abbrev.c
@@ -122,7 +122,7 @@
 del_abbr(char *abbrev)
 {
     struct abbrev *a;
-    struct abbrev **prev;
+    struct abbrev **prev = NULL;
 
     if (!(a = find_abbr(abbrev, strlen(abbrev), prev))) 
	return;
--- a/help.c
+++ b/help.c
@@ -14,6 +14,10 @@
 #include "sc.h"
 #endif /* QREF */
 
+#ifdef TROFF
+#include <stdlib.h>
+#endif /* TROFF */
+
 char *intro[] = {
 " ",
 #if defined(QREF) && defined(TROFF)
--- a/lex.c
+++ b/lex.c
@@ -27,6 +27,8 @@
 
 #ifdef IEEE_MATH
 #include <ieeefp.h>
+#else
+#include <math.h>
 #endif /* IEEE_MATH */
 
 #include <stdlib.h>
--- a/sc.h
+++ b/sc.h
@@ -14,6 +14,9 @@
 #include <stdio.h>
 #endif
 
+#include <unistd.h>
+#include <curses.h>
+
 #define	ATBL(tbl, row, col)	(*(tbl + row) + (col))
 
 #define MINROWS 100 	/* minimum size at startup */
@@ -390,6 +393,7 @@
 extern	char *v_name(int row, int col);
 extern	double eval(register struct enode *e);
 extern	int any_locked_cells(int r1, int c1, int r2, int c2);
+extern	int are_abbrevs();
 extern	int are_colors();
 extern	int are_frames();
 extern	int are_ranges();
@@ -425,6 +429,7 @@
 extern	struct crange *find_crange(int row, int col);
 extern	struct frange *find_frange(int row, int col);
 extern	void EvalAll();
+extern	void add_abbr(char *string);
 extern	void add_crange(struct ent *r_left, struct ent *r_right, int pair);
 extern	void add_frange(struct ent *or_left, struct ent *or_right,
 	struct ent *ir_left, struct ent *ir_right, int toprows, int bottomrows,
@@ -434,6 +439,7 @@
 extern	void addplugin(char *ext, char *plugin, char type);
 extern	void backcol(int arg);
 extern	void backrow(int arg);
+extern	void center(int sr, int sc, int er, int ec);
 extern	void change_color(int pair, struct enode *e);
 extern	void checkbounds(int *rowp, int *colp);
 extern	void clearent(struct ent *v);
@@ -456,9 +462,12 @@
 extern	void diesave();
 extern	void doend(int rowinc, int colinc);
 extern	void doformat(int c1, int c2, int w, int p, int r);
+extern	void dogetkey();
 extern	void dupcol();
 extern	void duprow();
 extern	void doquery(char *s, char *data, int fd);
+extern	void doeval(struct enode *e, char *fmt, int row, int col, int fd);
+extern	void doseval(struct enode *e, int row, int col, int fd);
 extern	void dostat(int fd);
 extern	void dotick(int tick);
 extern	void editexp(int row, int col);
@@ -486,11 +495,14 @@
 extern	void free_ent(register struct ent *p, int unlock);
 extern	void getexp(int r0, int c0, int rn, int cn, int fd);
 extern	void getfmt(int r0, int c0, int rn, int cn, int fd);
+extern	void getframe(int fd);
 extern	void getformat(int col, int fd);
 extern	void getnum(int r0, int c0, int rn, int cn, int fd);
+extern	void getrange(char *name, int fd);
 extern	void getstring(int r0, int c0, int rn, int cn, int fd);
 extern	void go_last();
 extern	void goraw();
+extern	void gotonote();
 extern	void help();
 extern	void hide_col(int arg);
 extern	void hide_row(int arg);
@@ -507,6 +519,8 @@
 extern	void label(register struct ent *v, register char *s, int flushdir);
 extern	void let(struct ent *v, struct enode *e);
 extern	void list_colors(FILE *f);
+extern	void ljustify(int sr, int sc, int er, int ec);
+extern	void list_frames(FILE *f);
 extern	void list_ranges(FILE *f);
 extern	void lock_cells(struct ent *v1, struct ent *v2);
 extern	void markcell();
@@ -523,6 +537,7 @@
 extern	void read_hist();
 extern	void remember(int save);
 extern	void resetkbd();
+extern	void rjustify(int sr, int sc, int er, int ec);
 extern	void rowshow_op();
 extern	void scxfree(char *p);
 extern	void setauto(int i);
@@ -560,6 +575,9 @@
 extern	void write_line(int c);
 extern	void write_ranges(FILE *f);
 extern	void yank_area(int sr, int sc, int er, int ec);
+extern	void yankcol(int arg);
+extern	void yankr(struct ent *v1, struct ent *v2);
+extern	void yankrow(int arg);
 extern	void yyerror(char *err);
 extern	int yylex();
 extern	int yyparse();
--- a/screen.c
+++ b/screen.c
@@ -870,7 +870,7 @@
 		    }
 		} /* else */
 	    } else
-	    if (!*pp && color && has_colors && cr && cr->r_color != 1) {
+	    if (!*pp && color && has_colors() && cr && cr->r_color != 1) {
 		move(r, c);
 		color_set(cr->r_color, NULL);
 		printw("%*s", fwidth[col], " ");
--- a/vi.c
+++ b/vi.c
@@ -5,6 +5,7 @@
  */
 
 #include <sys/types.h>
+#include <sys/wait.h>
 #ifdef BSD42
 #include <strings.h>
 #else