Introduction
Introduction Statistics Contact Development Disclaimer Help
samterm.h - sam - An updated version of the sam text editor.
git clone git://vernunftzentrum.de/sam.git
Log
Files
Refs
LICENSE
---
samterm.h (5418B)
---
1 /* Copyright (c) 1998 Lucent Technologies - All rights reserved. */
2 #define SAMTERM
3
4 #define RUNESIZE sizeof(wchar_t)
5 #define MAXFILES 256
6 #define NL 5
7
8 enum{
9 Cescape = Csysmax + 1, /* highlight recently typed text */
10 Cscrolldown, /* scroll file down by screen */
11 Cscrollup, /* scroll file up by screen */
12 Cscrolldownline, /* scroll file down by line */
13 Cscrollupline, /* scroll file up by line */
14 Cjump, /* jump to/from command file */
15 Ccharright, /* move dot right by character */
16 Ccharleft, /* move dot left by character */
17 Clinedown, /* move dot down by line */
18 Clineup, /* move dot up by line */
19 Cdelword, /* delete word to left of dot */
20 Cdelbol, /* delete to beginning of line */
21 Cdelbs, /* delete character to left of dot */
22 Cdel, /* delete character to right of dot */
23 Csnarf, /* snarf dot */
24 Ccut, /* cut dot */
25 Cpaste, /* paste from snarf buffer */
26 Cexchange, /* exchange snarf buffer with OS */
27 Ceol, /* move to beginning of line */
28 Cbol, /* move to end of line */
29 Ctab, /* insert a possibly expanded tab */
30 Csend, /* send a command to the editor */
31 Cwrite, /* write the current file */
32 Clook, /* literal search */
33 Csearch, /* search for regex again */
34 Cmax /* invalid command */
35 };
36
37 enum{
38 Up,
39 Down
40 };
41
42 typedef struct Text Text;
43 typedef struct Section Section;
44 typedef struct Rasp Rasp;
45
46 struct Section
47 {
48 int64_t nrunes;
49 wchar_t *text; /* if null, we haven't got it */
50 Section *next;
51 };
52
53 struct Rasp
54 {
55 int64_t nrunes;
56 Section *sect;
57 };
58
59 #define Untagged ((uint16_t)65535)
60
61 struct Text
62 {
63 Rasp rasp;
64 int16_t nwin;
65 int16_t front; /* input window */
66 uint16_t tag;
67 char lock;
68 Flayer l[NL]; /* screen storage */
69 };
70
71 enum Resource
72 {
73 Eextern = 0x08,
74 Ehost = 0x04,
75 RHost = Ehost,
76 RExtern = Eextern,
77 RKeyboard = Ekeyboard,
78 RMouse = Emouse
79 };
80
81 extern Text *text[];
82 extern uint8_t *name[];
83 extern uint16_t tag[];
84 extern int nname;
85 extern unsigned int cursor;
86 extern Flayer *which;
87 extern Flayer *work;
88 extern Text cmd;
89 extern wchar_t *scratch;
90 extern int64_t nscralloc;
91 extern char lock;
92 extern bool hasunlocked;
93 extern int64_t snarflen;
94 extern Mouse mouse;
95 extern bool modified;
96 extern bool followfocus;
97
98 wchar_t *stgettext(Flayer*, int64_t, uint64_t*);
99 void *alloc(uint64_t n);
100
101 void iconinit(void);
102 void getscreen(int, char**);
103 void initio(void);
104 void setlock(void);
105 void outcmd(void);
106 void rinit(Rasp*);
107 void startnewfile(int, Text*);
108 void cursorset(Point);
109 void getmouse(void);
110 void mouseunblock(void);
111 void kbdblock(void);
112 int button(int but);
113 int waitforio(void);
114 int rcvchar(void);
115 int getch(void);
116 Keystroke qpeekc(void);
117 Keystroke kbdchar(void);
118 void mouseexit(void);
119 void cut(Text*, int, bool, bool);
120 void paste(Text*, int);
121 void snarf(Text*, int);
122 int center(Flayer*, int64_t);
123 int xmenuhit(int, Menu*);
124 void buttons(int);
125 int getr(Rectangle*);
126 void current(Flayer*);
127 void duplicate(Flayer*, Rectangle, XftFont*, int);
128 void startfile(Text*);
129 void panic(char*);
130 void closeup(Flayer*);
131 void Strgrow(wchar_t**, int64_t*, int);
132 int RESHAPED(void);
133 void reshape(void);
134 void rcv(void);
135 void type(Flayer*);
136 void menu2hit(void);
137 void menu3hit(void);
138 void scroll(Flayer*, int, int);
139 void hcheck(int);
140 void rclear(Rasp*);
141 int whichmenu(int);
142 void hcut(int, int64_t, int64_t);
143 void horigin(int, int64_t, Flayer *);
144 void hgrow(int, int64_t, int64_t, bool);
145 int hdata(int, int64_t, uint8_t*, int);
146 int hdatarune(int, int64_t, wchar_t*, int);
147 wchar_t *rload(Rasp*, uint64_t, uint64_t, uint64_t*);
148 void menuins(int, uint8_t*, Text*, int, int);
149 void menudel(int);
150 Text *sweeptext(int, int);
151 void setpat(char*);
152 bool haspat(void);
153 void scrdraw(Flayer*, int64_t tot);
154 int rcontig(Rasp*, uint64_t, uint64_t, bool);
155 int rmissing(Rasp*, uint64_t, uint64_t);
156 void rresize(Rasp *, int64_t, int64_t, int64_t);
157 void rdata(Rasp*, int64_t, int64_t, wchar_t*);
158 void rclean(Rasp*);
159 void scrorigin(Flayer*, int, int64_t);
160 int64_t scrtotal(Flayer*);
161 void flnewlyvisible(Flayer*);
162 char *rcvstring(void);
163 void Strcpy(wchar_t*, wchar_t*);
164 void Strncpy(wchar_t*, wchar_t*, int64_t);
165 void flushtyping(bool);
166 void dumperrmsg(int, int, int, int);
167 int screensize(int*,int*);
168
169 #include "../sam/mesg.h"
170
171 void outTs(Tmesg, int);
172 void outT0(Tmesg);
173 void outTl(Tmesg, int64_t);
174 void outTslS(Tmesg, int, int64_t, wchar_t*);
175 void outTslll(Tmesg, int, int64_t, int64_t, int64_t);
176 void outTsll(Tmesg, int, int64_t, int64_t);
177 void outTsl(Tmesg, int, int64_t);
178 void outTv(Tmesg, void*);
179 void outstart(Tmesg);
180 void outcopy(int, uint8_t*);
181 void outshort(int);
182 void outlong(int64_t);
183 void outsend(void);
184 int getlayer(const Flayer *l, const Text *t);
185 void loadrcfile(FILE *);
186 void installdefaultbindings(void);
187 void installdefaultchords(void);
You are viewing proxied material from vernunftzentrum.de. The copyright of proxied material belongs to its original authors. Any comments or complaints in relation to proxied material should be directed to the original authors of the content concerned. Please see the disclaimer for more details.