1 /* vi.c - You can't spell "evil" without "vi".
2 *
3 * Copyright 2015 Rob Landley <rob@landley.net>
4 *
5 * See http://pubs.opengroup.org/onlinepubs/9699919799/utilities/vi.html
6
7 USE_VI(NEWTOY(vi, "<1>1", TOYFLAG_USR|TOYFLAG_BIN))
8
9 config VI
10 bool "vi"
11 default n
12 help
13 usage: vi FILE
14
15 Visual text editor. Predates the existence of standardized cursor keys,
16 so the controls are weird and historical.
17 */
18
19 #define FOR_vi
20 #include "toys.h"
21
22 GLOBALS(
23 struct linestack *ls;
24 char *statline;
25 )
26
27 struct linestack_show {
28 struct linestack_show *next;
29 long top, left;
30 int x, width, y, height;
31 };
32
33 // linestack, what to show, where to show it
linestack_show(struct linestack * ls,struct linestack_show * lss)34 void linestack_show(struct linestack *ls, struct linestack_show *lss)
35 {
36 return;
37 }
38
vi_main(void)39 void vi_main(void)
40 {
41 int i;
42
43 if (!(TT.ls = linestack_load(*toys.optargs)))
44 TT.ls = xzalloc(sizeof(struct linestack));
45
46 for (i=0; i<TT.ls->len; i++)
47 printf("%.*s\n", (int)TT.ls->idx[i].len, (char *)TT.ls->idx[i].ptr);
48 }
49