1 /************************************************************************
2  * This program is Copyright (C) 1986-1996 by Jonathan Payne.  JOVE is  *
3  * provided to you without charge, and with no warranty.  You may give  *
4  * away copies of JOVE, including sources, provided that this notice is *
5  * included in all the files.                                           *
6  ************************************************************************/
7 
8 #ifdef HIGHLIGHTING
9 
10 typedef struct LErange {
11 	unsigned
12 		start,	/* starting column for highlighting */
13 		width;	/* width of highlighting */
14 	void (*norm) ptrproto((bool));
15 	void (*high) ptrproto((bool));
16 } *LineEffects;
17 
18 #define	NOEFFECT	((LineEffects) NULL)
19 extern void US_effect proto((bool));
20 
21 #else /* !HIGHLIGHTING */
22 
23 typedef bool	LineEffects;	/* standout or not */
24 #define	NOEFFECT	NO
25 
26 #endif /* !HIGHLIGHTING */
27 
28 struct screenline {
29 	char
30 		*s_line,
31 		*s_roof;	/* character after last */
32 	LineEffects s_effects;
33 };
34 
35 extern struct screenline
36 	*Screen,
37 	*Curline;
38 
39 extern char *cursend;
40 
41 extern int
42 	AbortCnt,
43 
44 	CapLine,	/* cursor line and cursor column */
45 	CapCol;
46 
47 extern bool
48 	BufSwrite proto((int linenum)),
49 	swrite proto((char *line, LineEffects hl, bool abortable));
50 
51 extern LineEffects
52 	WindowRange proto((Window *w));
53 
54 extern void
55 	Placur proto((int line,int col)),
56 	cl_eol proto((void)),
57 	cl_scr proto((bool doit)),
58 	clrline proto((char *cp1,char *cp2)),
59 	i_set proto((int nline,int ncol)),
60 	make_scr proto((void)),
61 	v_ins_line proto ((int num, int top, int bottom)),
62 	v_del_line proto ((int num, int top, int bottom)),
63 	SO_effect proto((bool)),
64 	SO_off proto((void));
65 
66 #define	TABDIST(col)	(tabstop - (col)%tabstop)	/* cols to next tabstop */
67 
68 /* Variables: */
69 
70 extern int	tabstop;		/* VAR: expand tabs to this number of spaces */
71