1 /* vi.c - You can't spell "evil" without "vi". 2 * 3 * Copyright 2015 Rob Landley <rob (at) 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 34 void linestack_show(struct linestack *ls, struct linestack_show *lss) 35 { 36 return; 37 } 38 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