You are not logged in.

#1 2011-04-03 14:14:28

rafunchi
Member
Registered: 2010-03-14
Posts: 16

sandy - a simple ncurses text editor

sandy - a simple ncurses text editor

A while back, I created Sandy as a pet project aimed to create a simple, no-frills text editor (more info https://bbs.archlinux.org/viewtopic.php?id=94230). Soon, I grew tired of its cumbersome dependencies and longed for a simple editor to use in a SSH session, so I re-wrote it as an ncurses program and it is almost usable now.

Features
- Basic editing, saving and such
- Simple modeless keybindings
- One document per instance
- Regex search
- Pipe selection through arbitrary command
- Very basic, single line, regex based syntax highlight
- Current line highlight
- Multi-level undo
- Configurable at compile-time
- Simple X11 integration using dmenu and xsel

Dependencies
- ncurses
- (optional) dmenu, xsel and a x terminal emulator for X11 integration

Screenshot
http://sandyeditor.sf.net/sandy_curses.jpeg

Homepage
http://sandyeditor.sf.net/

Download
http://sourceforge.net/projects/sandyed … z/download

AUR
- last release: http://aur.archlinux.org/packages.php?ID=36084
- hg tip (recommended): http://aur.archlinux.org/packages.php?ID=47941


As usual: comments, bug reports and patches welcome.

Last edited by rafunchi (2011-04-05 11:22:07)

Offline

#2 2011-04-05 10:04:34

0mark
Member
From: earth
Registered: 2010-06-09
Posts: 139
Website

Re: sandy - a simple ncurses text editor

Quite nice, i like it. Im impressed how well the simple highlighting worked. Any chance for a ability to have multiple documents open?

PS: Maybe its just me, but i really really hate it when i open programs that could not be closed without special knowledge. I would recommend to bind C-q or C-c or Escape to quit, or show a message how to quit.


Ceterum autem censeo Systemdinem esse delendam

Offline

#3 2011-04-05 11:20:41

rafunchi
Member
Registered: 2010-03-14
Posts: 16

Re: sandy - a simple ncurses text editor

Thanks for your input.

0mark wrote:

Quite nice, i like it. Im impressed how well the simple highlighting worked.

Well, it (almost) works for C files now, tough the multi-line coloring keeps nagging me. For further syntaxes you'd have to enter the regexes in config.h. Very simple really. Contributions are welcome.


0mark wrote:

Any chance for a ability to have multiple documents open?

I'd rather not do that in order to keep the code simple. Multiple instances of sandy should not take much memory anyways and the clipboard should work as normal both in X11 and console. You can always use tmux, good old screen or even tabbed with several x terminals emulators to achieve a MDI.


0mark wrote:

PS: Maybe its just me, but i really really hate it when i open programs that could not be closed without special knowledge. I would recommend to bind C-q or C-c or Escape to quit, or show a message how to quit.

Yeah, I guess you are right. Ctrl-Q was unused anyways, so I added it as an alias for Meta-Q that shows a more descriptive message if the file was modified. All this as per the latest hg rev.


By the way, you can now get the latest hg pull from AUR at http://aur.archlinux.org/packages.php?ID=47941. I pushed a couple of changes already.

Offline

#4 2011-04-06 19:58:33

gtklocker
Member
Registered: 2009-09-01
Posts: 460

Re: sandy - a simple ncurses text editor

Seems like a good idea to me. When I try to make clean install, I get a bunch of errors that keep me far from compiling it. Do you care to have a look?

$ sudo make clean install
cleaning
sandy build options:
CFLAGS   = -g -std=c99 -pedantic -Wall -O0 -I. -I/usr/include -DVERSION="0.4"
LDFLAGS  = -L/usr/lib -lc -lncursesw
CC       = cc
creating config.h from config.def.h
CC sandy.c
sandy.c:15:20: error: curses.h: No such file or directory
sandy.c:49: error: expected specifier-qualifier-list before ‘bool’
sandy.c:67: error: expected specifier-qualifier-list before ‘bool’
sandy.c:75: error: expected specifier-qualifier-list before ‘bool’
sandy.c:153: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
sandy.c:154: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘*’ token
sandy.c:162: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘defmmask’
sandy.c:189: error: expected ‘)’ before ‘Filepos’
sandy.c:197: warning: parameter names (without types) in function declaration
sandy.c:208: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘i_setfindterm’
sandy.c:216: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘i_writefile’
sandy.c:219: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_bol’
sandy.c:220: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_eol’
sandy.c:221: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_mod’
sandy.c:222: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_rw’
sandy.c:223: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_redo’
sandy.c:224: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_sel’
sandy.c:225: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_undo’
In file included from sandy.c:244:
config.h:2: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘isutf8’
config.h:11: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_x’
config.h:65: error: ‘KEY_BACKSPACE’ undeclared here (not in a function)
config.h:65: error: extra brace group at end of initializer
config.h:65: error: (near initialization for ‘curskeys[0]’)
config.h:65: error: ‘t_sel’ undeclared here (not in a function)
config.h:65: error: ‘t_rw’ undeclared here (not in a function)
config.h:65: warning: excess elements in struct initializer
config.h:65: warning: (near initialization for ‘curskeys[0]’)
config.h:65: warning: excess elements in struct initializer
config.h:65: warning: (near initialization for ‘curskeys[0]’)
config.h:65: error: extra brace group at end of initializer
config.h:65: error: (near initialization for ‘curskeys[0]’)
config.h:65: warning: excess elements in struct initializer
config.h:65: warning: (near initialization for ‘curskeys[0]’)
config.h:66: error: extra brace group at end of initializer
config.h:66: error: (near initialization for ‘curskeys[1]’)
config.h:66: warning: excess elements in struct initializer
config.h:66: warning: (near initialization for ‘curskeys[1]’)
config.h:66: warning: excess elements in struct initializer
config.h:66: warning: (near initialization for ‘curskeys[1]’)
config.h:66: error: extra brace group at end of initializer
config.h:66: error: (near initialization for ‘curskeys[1]’)
config.h:66: warning: excess elements in struct initializer
config.h:66: warning: (near initialization for ‘curskeys[1]’)
config.h:67: error: ‘KEY_DC’ undeclared here (not in a function)
config.h:67: error: extra brace group at end of initializer
config.h:67: error: (near initialization for ‘curskeys[2]’)
config.h:67: warning: excess elements in struct initializer
config.h:67: warning: (near initialization for ‘curskeys[2]’)
config.h:67: warning: excess elements in struct initializer
config.h:67: warning: (near initialization for ‘curskeys[2]’)
config.h:67: error: extra brace group at end of initializer
config.h:67: error: (near initialization for ‘curskeys[2]’)
config.h:67: warning: excess elements in struct initializer
config.h:67: warning: (near initialization for ‘curskeys[2]’)
config.h:68: error: extra brace group at end of initializer
config.h:68: error: (near initialization for ‘curskeys[3]’)
config.h:68: warning: excess elements in struct initializer
config.h:68: warning: (near initialization for ‘curskeys[3]’)
config.h:68: warning: excess elements in struct initializer
config.h:68: warning: (near initialization for ‘curskeys[3]’)
config.h:68: error: extra brace group at end of initializer
config.h:68: error: (near initialization for ‘curskeys[3]’)
config.h:68: warning: excess elements in struct initializer
config.h:68: warning: (near initialization for ‘curskeys[3]’)
config.h:69: error: ‘KEY_IC’ undeclared here (not in a function)
config.h:69: error: extra brace group at end of initializer
config.h:69: error: (near initialization for ‘curskeys[4]’)
config.h:69: error: ‘t_x’ undeclared here (not in a function)
config.h:69: warning: excess elements in struct initializer
config.h:69: warning: (near initialization for ‘curskeys[4]’)
config.h:69: warning: excess elements in struct initializer
config.h:69: warning: (near initialization for ‘curskeys[4]’)
config.h:69: error: extra brace group at end of initializer
config.h:69: error: (near initialization for ‘curskeys[4]’)
config.h:69: warning: excess elements in struct initializer
config.h:69: warning: (near initialization for ‘curskeys[4]’)
config.h:70: error: extra brace group at end of initializer
config.h:70: error: (near initialization for ‘curskeys[5]’)
config.h:70: warning: excess elements in struct initializer
config.h:70: warning: (near initialization for ‘curskeys[5]’)
config.h:70: warning: excess elements in struct initializer
config.h:70: warning: (near initialization for ‘curskeys[5]’)
config.h:70: error: extra brace group at end of initializer
config.h:70: error: (near initialization for ‘curskeys[5]’)
config.h:70: warning: excess elements in struct initializer
config.h:70: warning: (near initialization for ‘curskeys[5]’)
config.h:71: error: ‘KEY_SDC’ undeclared here (not in a function)
config.h:71: error: extra brace group at end of initializer
config.h:71: error: (near initialization for ‘curskeys[6]’)
config.h:71: warning: excess elements in struct initializer
config.h:71: warning: (near initialization for ‘curskeys[6]’)
config.h:71: warning: excess elements in struct initializer
config.h:71: warning: (near initialization for ‘curskeys[6]’)
config.h:71: error: extra brace group at end of initializer
config.h:71: error: (near initialization for ‘curskeys[6]’)
config.h:71: warning: excess elements in struct initializer
config.h:71: warning: (near initialization for ‘curskeys[6]’)
config.h:72: error: extra brace group at end of initializer
config.h:72: error: (near initialization for ‘curskeys[7]’)
config.h:72: warning: excess elements in struct initializer
config.h:72: warning: (near initialization for ‘curskeys[7]’)
config.h:72: warning: excess elements in struct initializer
config.h:72: warning: (near initialization for ‘curskeys[7]’)
config.h:72: error: extra brace group at end of initializer
config.h:72: error: (near initialization for ‘curskeys[7]’)
config.h:72: warning: excess elements in struct initializer
config.h:72: warning: (near initialization for ‘curskeys[7]’)
config.h:73: error: ‘KEY_SIC’ undeclared here (not in a function)
config.h:73: error: extra brace group at end of initializer
config.h:73: error: (near initialization for ‘curskeys[8]’)
config.h:73: warning: excess elements in struct initializer
config.h:73: warning: (near initialization for ‘curskeys[8]’)
config.h:73: warning: excess elements in struct initializer
config.h:73: warning: (near initialization for ‘curskeys[8]’)
config.h:73: error: extra brace group at end of initializer
config.h:73: error: (near initialization for ‘curskeys[8]’)
config.h:73: warning: excess elements in struct initializer
config.h:73: warning: (near initialization for ‘curskeys[8]’)
config.h:74: error: extra brace group at end of initializer
config.h:74: error: (near initialization for ‘curskeys[9]’)
config.h:74: warning: excess elements in struct initializer
config.h:74: warning: (near initialization for ‘curskeys[9]’)
config.h:74: warning: excess elements in struct initializer
config.h:74: warning: (near initialization for ‘curskeys[9]’)
config.h:74: error: extra brace group at end of initializer
config.h:74: error: (near initialization for ‘curskeys[9]’)
config.h:74: warning: excess elements in struct initializer
config.h:74: warning: (near initialization for ‘curskeys[9]’)
config.h:75: error: ‘KEY_HOME’ undeclared here (not in a function)
config.h:75: error: extra brace group at end of initializer
config.h:75: error: (near initialization for ‘curskeys[10]’)
config.h:75: warning: excess elements in struct initializer
config.h:75: warning: (near initialization for ‘curskeys[10]’)
config.h:75: warning: excess elements in struct initializer
config.h:75: warning: (near initialization for ‘curskeys[10]’)
config.h:75: error: extra brace group at end of initializer
config.h:75: error: (near initialization for ‘curskeys[10]’)
config.h:75: warning: excess elements in struct initializer
config.h:75: warning: (near initialization for ‘curskeys[10]’)
config.h:76: error: ‘KEY_END’ undeclared here (not in a function)
config.h:76: error: extra brace group at end of initializer
config.h:76: error: (near initialization for ‘curskeys[11]’)
config.h:76: warning: excess elements in struct initializer
config.h:76: warning: (near initialization for ‘curskeys[11]’)
config.h:76: warning: excess elements in struct initializer
config.h:76: warning: (near initialization for ‘curskeys[11]’)
config.h:76: error: extra brace group at end of initializer
config.h:76: error: (near initialization for ‘curskeys[11]’)
config.h:76: warning: excess elements in struct initializer
config.h:76: warning: (near initialization for ‘curskeys[11]’)
config.h:77: error: ‘KEY_SHOME’ undeclared here (not in a function)
config.h:77: error: extra brace group at end of initializer
config.h:77: error: (near initialization for ‘curskeys[12]’)
config.h:77: warning: excess elements in struct initializer
config.h:77: warning: (near initialization for ‘curskeys[12]’)
config.h:77: warning: excess elements in struct initializer
config.h:77: warning: (near initialization for ‘curskeys[12]’)
config.h:77: error: extra brace group at end of initializer
config.h:77: error: (near initialization for ‘curskeys[12]’)
config.h:77: warning: excess elements in struct initializer
config.h:77: warning: (near initialization for ‘curskeys[12]’)
config.h:78: error: ‘KEY_SEND’ undeclared here (not in a function)
config.h:78: error: extra brace group at end of initializer
config.h:78: error: (near initialization for ‘curskeys[13]’)
config.h:78: warning: excess elements in struct initializer
config.h:78: warning: (near initialization for ‘curskeys[13]’)
config.h:78: warning: excess elements in struct initializer
config.h:78: warning: (near initialization for ‘curskeys[13]’)
config.h:78: error: extra brace group at end of initializer
config.h:78: error: (near initialization for ‘curskeys[13]’)
config.h:78: warning: excess elements in struct initializer
config.h:78: warning: (near initialization for ‘curskeys[13]’)
config.h:79: error: ‘KEY_PPAGE’ undeclared here (not in a function)
config.h:79: error: extra brace group at end of initializer
config.h:79: error: (near initialization for ‘curskeys[14]’)
config.h:79: warning: excess elements in struct initializer
config.h:79: warning: (near initialization for ‘curskeys[14]’)
config.h:79: warning: excess elements in struct initializer
config.h:79: warning: (near initialization for ‘curskeys[14]’)
config.h:79: error: extra brace group at end of initializer
config.h:79: error: (near initialization for ‘curskeys[14]’)
config.h:79: warning: excess elements in struct initializer
config.h:79: warning: (near initialization for ‘curskeys[14]’)
config.h:80: error: ‘KEY_NPAGE’ undeclared here (not in a function)
config.h:80: error: extra brace group at end of initializer
config.h:80: error: (near initialization for ‘curskeys[15]’)
config.h:80: warning: excess elements in struct initializer
config.h:80: warning: (near initialization for ‘curskeys[15]’)
config.h:80: warning: excess elements in struct initializer
config.h:80: warning: (near initialization for ‘curskeys[15]’)
config.h:80: error: extra brace group at end of initializer
config.h:80: error: (near initialization for ‘curskeys[15]’)
config.h:80: warning: excess elements in struct initializer
config.h:80: warning: (near initialization for ‘curskeys[15]’)
config.h:81: error: ‘KEY_UP’ undeclared here (not in a function)
config.h:81: error: extra brace group at end of initializer
config.h:81: error: (near initialization for ‘curskeys[16]’)
config.h:81: warning: excess elements in struct initializer
config.h:81: warning: (near initialization for ‘curskeys[16]’)
config.h:81: warning: excess elements in struct initializer
config.h:81: warning: (near initialization for ‘curskeys[16]’)
config.h:81: error: extra brace group at end of initializer
config.h:81: error: (near initialization for ‘curskeys[16]’)
config.h:81: warning: excess elements in struct initializer
config.h:81: warning: (near initialization for ‘curskeys[16]’)
config.h:82: error: ‘KEY_DOWN’ undeclared here (not in a function)
config.h:82: error: extra brace group at end of initializer
config.h:82: error: (near initialization for ‘curskeys[17]’)
config.h:82: warning: excess elements in struct initializer
config.h:82: warning: (near initialization for ‘curskeys[17]’)
config.h:82: warning: excess elements in struct initializer
config.h:82: warning: (near initialization for ‘curskeys[17]’)
config.h:82: error: extra brace group at end of initializer
config.h:82: error: (near initialization for ‘curskeys[17]’)
config.h:82: warning: excess elements in struct initializer
config.h:82: warning: (near initialization for ‘curskeys[17]’)
config.h:83: error: ‘KEY_LEFT’ undeclared here (not in a function)
config.h:83: error: extra brace group at end of initializer
config.h:83: error: (near initialization for ‘curskeys[18]’)
config.h:83: warning: excess elements in struct initializer
config.h:83: warning: (near initialization for ‘curskeys[18]’)
config.h:83: warning: excess elements in struct initializer
config.h:83: warning: (near initialization for ‘curskeys[18]’)
config.h:83: error: extra brace group at end of initializer
config.h:83: error: (near initialization for ‘curskeys[18]’)
config.h:83: warning: excess elements in struct initializer
config.h:83: warning: (near initialization for ‘curskeys[18]’)
config.h:84: error: ‘KEY_RIGHT’ undeclared here (not in a function)
config.h:84: error: extra brace group at end of initializer
config.h:84: error: (near initialization for ‘curskeys[19]’)
config.h:84: warning: excess elements in struct initializer
config.h:84: warning: (near initialization for ‘curskeys[19]’)
config.h:84: warning: excess elements in struct initializer
config.h:84: warning: (near initialization for ‘curskeys[19]’)
config.h:84: error: extra brace group at end of initializer
config.h:84: error: (near initialization for ‘curskeys[19]’)
config.h:84: warning: excess elements in struct initializer
config.h:84: warning: (near initialization for ‘curskeys[19]’)
config.h:85: error: ‘KEY_SLEFT’ undeclared here (not in a function)
config.h:85: error: extra brace group at end of initializer
config.h:85: error: (near initialization for ‘curskeys[20]’)
config.h:85: warning: excess elements in struct initializer
config.h:85: warning: (near initialization for ‘curskeys[20]’)
config.h:85: warning: excess elements in struct initializer
config.h:85: warning: (near initialization for ‘curskeys[20]’)
config.h:85: error: extra brace group at end of initializer
config.h:85: error: (near initialization for ‘curskeys[20]’)
config.h:85: warning: excess elements in struct initializer
config.h:85: warning: (near initialization for ‘curskeys[20]’)
config.h:86: error: ‘KEY_SRIGHT’ undeclared here (not in a function)
config.h:86: error: extra brace group at end of initializer
config.h:86: error: (near initialization for ‘curskeys[21]’)
config.h:86: warning: excess elements in struct initializer
config.h:86: warning: (near initialization for ‘curskeys[21]’)
config.h:86: warning: excess elements in struct initializer
config.h:86: warning: (near initialization for ‘curskeys[21]’)
config.h:86: error: extra brace group at end of initializer
config.h:86: error: (near initialization for ‘curskeys[21]’)
config.h:86: warning: excess elements in struct initializer
config.h:86: warning: (near initialization for ‘curskeys[21]’)
config.h:92: error: extra brace group at end of initializer
config.h:92: error: (near initialization for ‘stdkeys[0]’)
config.h:92: warning: excess elements in struct initializer
config.h:92: warning: (near initialization for ‘stdkeys[0]’)
config.h:92: warning: excess elements in struct initializer
config.h:92: warning: (near initialization for ‘stdkeys[0]’)
config.h:92: error: extra brace group at end of initializer
config.h:92: error: (near initialization for ‘stdkeys[0]’)
config.h:92: warning: excess elements in struct initializer
config.h:92: warning: (near initialization for ‘stdkeys[0]’)
config.h:93: error: extra brace group at end of initializer
config.h:93: error: (near initialization for ‘stdkeys[1]’)
config.h:93: warning: excess elements in struct initializer
config.h:93: warning: (near initialization for ‘stdkeys[1]’)
config.h:93: warning: excess elements in struct initializer
config.h:93: warning: (near initialization for ‘stdkeys[1]’)
config.h:93: error: extra brace group at end of initializer
config.h:93: error: (near initialization for ‘stdkeys[1]’)
config.h:93: warning: excess elements in struct initializer
config.h:93: warning: (near initialization for ‘stdkeys[1]’)
config.h:94: error: extra brace group at end of initializer
config.h:94: error: (near initialization for ‘stdkeys[2]’)
config.h:94: warning: excess elements in struct initializer
config.h:94: warning: (near initialization for ‘stdkeys[2]’)
config.h:94: warning: excess elements in struct initializer
config.h:94: warning: (near initialization for ‘stdkeys[2]’)
config.h:94: error: extra brace group at end of initializer
config.h:94: error: (near initialization for ‘stdkeys[2]’)
config.h:94: warning: excess elements in struct initializer
config.h:94: warning: (near initialization for ‘stdkeys[2]’)
config.h:95: error: extra brace group at end of initializer
config.h:95: error: (near initialization for ‘stdkeys[3]’)
config.h:95: warning: excess elements in struct initializer
config.h:95: warning: (near initialization for ‘stdkeys[3]’)
config.h:95: warning: excess elements in struct initializer
config.h:95: warning: (near initialization for ‘stdkeys[3]’)
config.h:95: error: extra brace group at end of initializer
config.h:95: error: (near initialization for ‘stdkeys[3]’)
config.h:95: warning: excess elements in struct initializer
config.h:95: warning: (near initialization for ‘stdkeys[3]’)
config.h:96: error: extra brace group at end of initializer
config.h:96: error: (near initialization for ‘stdkeys[4]’)
config.h:96: warning: excess elements in struct initializer
config.h:96: warning: (near initialization for ‘stdkeys[4]’)
config.h:96: warning: excess elements in struct initializer
config.h:96: warning: (near initialization for ‘stdkeys[4]’)
config.h:96: error: extra brace group at end of initializer
config.h:96: error: (near initialization for ‘stdkeys[4]’)
config.h:96: warning: excess elements in struct initializer
config.h:96: warning: (near initialization for ‘stdkeys[4]’)
config.h:97: error: extra brace group at end of initializer
config.h:97: error: (near initialization for ‘stdkeys[5]’)
config.h:97: warning: excess elements in struct initializer
config.h:97: warning: (near initialization for ‘stdkeys[5]’)
config.h:97: warning: excess elements in struct initializer
config.h:97: warning: (near initialization for ‘stdkeys[5]’)
config.h:97: error: extra brace group at end of initializer
config.h:97: error: (near initialization for ‘stdkeys[5]’)
config.h:97: warning: excess elements in struct initializer
config.h:97: warning: (near initialization for ‘stdkeys[5]’)
config.h:100: error: extra brace group at end of initializer
config.h:100: error: (near initialization for ‘stdkeys[6]’)
config.h:100: warning: excess elements in struct initializer
config.h:100: warning: (near initialization for ‘stdkeys[6]’)
config.h:100: warning: excess elements in struct initializer
config.h:100: warning: (near initialization for ‘stdkeys[6]’)
config.h:100: error: extra brace group at end of initializer
config.h:100: error: (near initialization for ‘stdkeys[6]’)
config.h:100: warning: excess elements in struct initializer
config.h:100: warning: (near initialization for ‘stdkeys[6]’)
config.h:101: error: extra brace group at end of initializer
config.h:101: error: (near initialization for ‘stdkeys[7]’)
config.h:101: warning: excess elements in struct initializer
config.h:101: warning: (near initialization for ‘stdkeys[7]’)
config.h:101: warning: excess elements in struct initializer
config.h:101: warning: (near initialization for ‘stdkeys[7]’)
config.h:101: error: extra brace group at end of initializer
config.h:101: error: (near initialization for ‘stdkeys[7]’)
config.h:101: warning: excess elements in struct initializer
config.h:101: warning: (near initialization for ‘stdkeys[7]’)
config.h:102: error: extra brace group at end of initializer
config.h:102: error: (near initialization for ‘stdkeys[8]’)
config.h:102: warning: excess elements in struct initializer
config.h:102: warning: (near initialization for ‘stdkeys[8]’)
config.h:102: warning: excess elements in struct initializer
config.h:102: warning: (near initialization for ‘stdkeys[8]’)
config.h:102: error: extra brace group at end of initializer
config.h:102: error: (near initialization for ‘stdkeys[8]’)
config.h:102: warning: excess elements in struct initializer
config.h:102: warning: (near initialization for ‘stdkeys[8]’)
config.h:103: error: extra brace group at end of initializer
config.h:103: error: (near initialization for ‘stdkeys[9]’)
config.h:103: warning: excess elements in struct initializer
config.h:103: warning: (near initialization for ‘stdkeys[9]’)
config.h:103: warning: excess elements in struct initializer
config.h:103: warning: (near initialization for ‘stdkeys[9]’)
config.h:103: error: extra brace group at end of initializer
config.h:103: error: (near initialization for ‘stdkeys[9]’)
config.h:103: warning: excess elements in struct initializer
config.h:103: warning: (near initialization for ‘stdkeys[9]’)
config.h:104: error: extra brace group at end of initializer
config.h:104: error: (near initialization for ‘stdkeys[10]’)
config.h:104: warning: excess elements in struct initializer
config.h:104: warning: (near initialization for ‘stdkeys[10]’)
config.h:104: warning: excess elements in struct initializer
config.h:104: warning: (near initialization for ‘stdkeys[10]’)
config.h:104: error: extra brace group at end of initializer
config.h:104: error: (near initialization for ‘stdkeys[10]’)
config.h:104: warning: excess elements in struct initializer
config.h:104: warning: (near initialization for ‘stdkeys[10]’)
config.h:105: error: extra brace group at end of initializer
config.h:105: error: (near initialization for ‘stdkeys[11]’)
config.h:105: warning: excess elements in struct initializer
config.h:105: warning: (near initialization for ‘stdkeys[11]’)
config.h:105: warning: excess elements in struct initializer
config.h:105: warning: (near initialization for ‘stdkeys[11]’)
config.h:105: error: extra brace group at end of initializer
config.h:105: error: (near initialization for ‘stdkeys[11]’)
config.h:105: warning: excess elements in struct initializer
config.h:105: warning: (near initialization for ‘stdkeys[11]’)
config.h:106: error: extra brace group at end of initializer
config.h:106: error: (near initialization for ‘stdkeys[12]’)
config.h:106: warning: excess elements in struct initializer
config.h:106: warning: (near initialization for ‘stdkeys[12]’)
config.h:106: warning: excess elements in struct initializer
config.h:106: warning: (near initialization for ‘stdkeys[12]’)
config.h:106: error: extra brace group at end of initializer
config.h:106: error: (near initialization for ‘stdkeys[12]’)
config.h:106: warning: excess elements in struct initializer
config.h:106: warning: (near initialization for ‘stdkeys[12]’)
config.h:107: error: extra brace group at end of initializer
config.h:107: error: (near initialization for ‘stdkeys[13]’)
config.h:107: warning: excess elements in struct initializer
config.h:107: warning: (near initialization for ‘stdkeys[13]’)
config.h:107: warning: excess elements in struct initializer
config.h:107: warning: (near initialization for ‘stdkeys[13]’)
config.h:107: error: extra brace group at end of initializer
config.h:107: error: (near initialization for ‘stdkeys[13]’)
config.h:107: warning: excess elements in struct initializer
config.h:107: warning: (near initialization for ‘stdkeys[13]’)
config.h:108: error: extra brace group at end of initializer
config.h:108: error: (near initialization for ‘stdkeys[14]’)
config.h:108: warning: excess elements in struct initializer
config.h:108: warning: (near initialization for ‘stdkeys[14]’)
config.h:108: warning: excess elements in struct initializer
config.h:108: warning: (near initialization for ‘stdkeys[14]’)
config.h:108: error: extra brace group at end of initializer
config.h:108: error: (near initialization for ‘stdkeys[14]’)
config.h:108: warning: excess elements in struct initializer
config.h:108: warning: (near initialization for ‘stdkeys[14]’)
config.h:109: error: extra brace group at end of initializer
config.h:109: error: (near initialization for ‘stdkeys[15]’)
config.h:109: warning: excess elements in struct initializer
config.h:109: warning: (near initialization for ‘stdkeys[15]’)
config.h:109: warning: excess elements in struct initializer
config.h:109: warning: (near initialization for ‘stdkeys[15]’)
config.h:109: error: extra brace group at end of initializer
config.h:109: error: (near initialization for ‘stdkeys[15]’)
config.h:109: warning: excess elements in struct initializer
config.h:109: warning: (near initialization for ‘stdkeys[15]’)
config.h:110: error: extra brace group at end of initializer
config.h:110: error: (near initialization for ‘stdkeys[16]’)
config.h:110: warning: excess elements in struct initializer
config.h:110: warning: (near initialization for ‘stdkeys[16]’)
config.h:110: warning: excess elements in struct initializer
config.h:110: warning: (near initialization for ‘stdkeys[16]’)
config.h:110: error: extra brace group at end of initializer
config.h:110: error: (near initialization for ‘stdkeys[16]’)
config.h:110: warning: excess elements in struct initializer
config.h:110: warning: (near initialization for ‘stdkeys[16]’)
config.h:111: error: extra brace group at end of initializer
config.h:111: error: (near initialization for ‘stdkeys[17]’)
config.h:111: warning: excess elements in struct initializer
config.h:111: warning: (near initialization for ‘stdkeys[17]’)
config.h:111: warning: excess elements in struct initializer
config.h:111: warning: (near initialization for ‘stdkeys[17]’)
config.h:111: error: extra brace group at end of initializer
config.h:111: error: (near initialization for ‘stdkeys[17]’)
config.h:111: warning: excess elements in struct initializer
config.h:111: warning: (near initialization for ‘stdkeys[17]’)
config.h:112: error: extra brace group at end of initializer
config.h:112: error: (near initialization for ‘stdkeys[18]’)
config.h:112: warning: excess elements in struct initializer
config.h:112: warning: (near initialization for ‘stdkeys[18]’)
config.h:112: warning: excess elements in struct initializer
config.h:112: warning: (near initialization for ‘stdkeys[18]’)
config.h:112: error: extra brace group at end of initializer
config.h:112: error: (near initialization for ‘stdkeys[18]’)
config.h:112: warning: excess elements in struct initializer
config.h:112: warning: (near initialization for ‘stdkeys[18]’)
config.h:113: error: extra brace group at end of initializer
config.h:113: error: (near initialization for ‘stdkeys[19]’)
config.h:113: warning: excess elements in struct initializer
config.h:113: warning: (near initialization for ‘stdkeys[19]’)
config.h:113: warning: excess elements in struct initializer
config.h:113: warning: (near initialization for ‘stdkeys[19]’)
config.h:113: error: extra brace group at end of initializer
config.h:113: error: (near initialization for ‘stdkeys[19]’)
config.h:113: warning: excess elements in struct initializer
config.h:113: warning: (near initialization for ‘stdkeys[19]’)
config.h:116: error: extra brace group at end of initializer
config.h:116: error: (near initialization for ‘stdkeys[20]’)
config.h:116: warning: excess elements in struct initializer
config.h:116: warning: (near initialization for ‘stdkeys[20]’)
config.h:116: warning: excess elements in struct initializer
config.h:116: warning: (near initialization for ‘stdkeys[20]’)
config.h:116: error: extra brace group at end of initializer
config.h:116: error: (near initialization for ‘stdkeys[20]’)
config.h:116: warning: excess elements in struct initializer
config.h:116: warning: (near initialization for ‘stdkeys[20]’)
config.h:117: error: extra brace group at end of initializer
config.h:117: error: (near initialization for ‘stdkeys[21]’)
config.h:117: warning: excess elements in struct initializer
config.h:117: warning: (near initialization for ‘stdkeys[21]’)
config.h:117: warning: excess elements in struct initializer
config.h:117: warning: (near initialization for ‘stdkeys[21]’)
config.h:117: error: extra brace group at end of initializer
config.h:117: error: (near initialization for ‘stdkeys[21]’)
config.h:117: warning: excess elements in struct initializer
config.h:117: warning: (near initialization for ‘stdkeys[21]’)
config.h:118: error: extra brace group at end of initializer
config.h:118: error: (near initialization for ‘stdkeys[22]’)
config.h:118: warning: excess elements in struct initializer
config.h:118: warning: (near initialization for ‘stdkeys[22]’)
config.h:118: warning: excess elements in struct initializer
config.h:118: warning: (near initialization for ‘stdkeys[22]’)
config.h:118: error: extra brace group at end of initializer
config.h:118: error: (near initialization for ‘stdkeys[22]’)
config.h:118: warning: excess elements in struct initializer
config.h:118: warning: (near initialization for ‘stdkeys[22]’)
config.h:119: error: extra brace group at end of initializer
config.h:119: error: (near initialization for ‘stdkeys[23]’)
config.h:119: warning: excess elements in struct initializer
config.h:119: warning: (near initialization for ‘stdkeys[23]’)
config.h:119: warning: excess elements in struct initializer
config.h:119: warning: (near initialization for ‘stdkeys[23]’)
config.h:119: error: extra brace group at end of initializer
config.h:119: error: (near initialization for ‘stdkeys[23]’)
config.h:119: warning: excess elements in struct initializer
config.h:119: warning: (near initialization for ‘stdkeys[23]’)
config.h:120: error: extra brace group at end of initializer
config.h:120: error: (near initialization for ‘stdkeys[24]’)
config.h:120: warning: excess elements in struct initializer
config.h:120: warning: (near initialization for ‘stdkeys[24]’)
config.h:120: warning: excess elements in struct initializer
config.h:120: warning: (near initialization for ‘stdkeys[24]’)
config.h:120: error: extra brace group at end of initializer
config.h:120: error: (near initialization for ‘stdkeys[24]’)
config.h:120: warning: excess elements in struct initializer
config.h:120: warning: (near initialization for ‘stdkeys[24]’)
config.h:121: error: extra brace group at end of initializer
config.h:121: error: (near initialization for ‘stdkeys[25]’)
config.h:121: warning: excess elements in struct initializer
config.h:121: warning: (near initialization for ‘stdkeys[25]’)
config.h:121: warning: excess elements in struct initializer
config.h:121: warning: (near initialization for ‘stdkeys[25]’)
config.h:121: error: extra brace group at end of initializer
config.h:121: error: (near initialization for ‘stdkeys[25]’)
config.h:121: warning: excess elements in struct initializer
config.h:121: warning: (near initialization for ‘stdkeys[25]’)
config.h:122: error: extra brace group at end of initializer
config.h:122: error: (near initialization for ‘stdkeys[26]’)
config.h:122: warning: excess elements in struct initializer
config.h:122: warning: (near initialization for ‘stdkeys[26]’)
config.h:122: warning: excess elements in struct initializer
config.h:122: warning: (near initialization for ‘stdkeys[26]’)
config.h:122: error: extra brace group at end of initializer
config.h:122: error: (near initialization for ‘stdkeys[26]’)
config.h:122: warning: excess elements in struct initializer
config.h:122: warning: (near initialization for ‘stdkeys[26]’)
config.h:123: error: extra brace group at end of initializer
config.h:123: error: (near initialization for ‘stdkeys[27]’)
config.h:123: warning: excess elements in struct initializer
config.h:123: warning: (near initialization for ‘stdkeys[27]’)
config.h:123: warning: excess elements in struct initializer
config.h:123: warning: (near initialization for ‘stdkeys[27]’)
config.h:123: error: extra brace group at end of initializer
config.h:123: error: (near initialization for ‘stdkeys[27]’)
config.h:123: warning: excess elements in struct initializer
config.h:123: warning: (near initialization for ‘stdkeys[27]’)
config.h:124: error: extra brace group at end of initializer
config.h:124: error: (near initialization for ‘stdkeys[28]’)
config.h:124: warning: excess elements in struct initializer
config.h:124: warning: (near initialization for ‘stdkeys[28]’)
config.h:124: warning: excess elements in struct initializer
config.h:124: warning: (near initialization for ‘stdkeys[28]’)
config.h:124: error: extra brace group at end of initializer
config.h:124: error: (near initialization for ‘stdkeys[28]’)
config.h:124: warning: excess elements in struct initializer
config.h:124: warning: (near initialization for ‘stdkeys[28]’)
config.h:125: error: extra brace group at end of initializer
config.h:125: error: (near initialization for ‘stdkeys[29]’)
config.h:125: warning: excess elements in struct initializer
config.h:125: warning: (near initialization for ‘stdkeys[29]’)
config.h:125: warning: excess elements in struct initializer
config.h:125: warning: (near initialization for ‘stdkeys[29]’)
config.h:125: error: extra brace group at end of initializer
config.h:125: error: (near initialization for ‘stdkeys[29]’)
config.h:125: warning: excess elements in struct initializer
config.h:125: warning: (near initialization for ‘stdkeys[29]’)
config.h:126: error: extra brace group at end of initializer
config.h:126: error: (near initialization for ‘stdkeys[30]’)
config.h:126: warning: excess elements in struct initializer
config.h:126: warning: (near initialization for ‘stdkeys[30]’)
config.h:126: warning: excess elements in struct initializer
config.h:126: warning: (near initialization for ‘stdkeys[30]’)
config.h:126: error: extra brace group at end of initializer
config.h:126: error: (near initialization for ‘stdkeys[30]’)
config.h:126: warning: excess elements in struct initializer
config.h:126: warning: (near initialization for ‘stdkeys[30]’)
config.h:127: error: extra brace group at end of initializer
config.h:127: error: (near initialization for ‘stdkeys[31]’)
config.h:127: warning: excess elements in struct initializer
config.h:127: warning: (near initialization for ‘stdkeys[31]’)
config.h:127: warning: excess elements in struct initializer
config.h:127: warning: (near initialization for ‘stdkeys[31]’)
config.h:127: error: extra brace group at end of initializer
config.h:127: error: (near initialization for ‘stdkeys[31]’)
config.h:127: warning: excess elements in struct initializer
config.h:127: warning: (near initialization for ‘stdkeys[31]’)
In file included from sandy.c:244:
config.h:128: error: extra brace group at end of initializer
config.h:128: error: (near initialization for ‘stdkeys[32]’)
config.h:128: warning: excess elements in struct initializer
config.h:128: warning: (near initialization for ‘stdkeys[32]’)
config.h:128: warning: excess elements in struct initializer
config.h:128: warning: (near initialization for ‘stdkeys[32]’)
config.h:128: error: extra brace group at end of initializer
config.h:128: error: (near initialization for ‘stdkeys[32]’)
config.h:128: warning: excess elements in struct initializer
config.h:128: warning: (near initialization for ‘stdkeys[32]’)
config.h:131: error: extra brace group at end of initializer
config.h:131: error: (near initialization for ‘stdkeys[33]’)
config.h:131: warning: excess elements in struct initializer
config.h:131: warning: (near initialization for ‘stdkeys[33]’)
config.h:131: warning: excess elements in struct initializer
config.h:131: warning: (near initialization for ‘stdkeys[33]’)
config.h:131: error: extra brace group at end of initializer
config.h:131: error: (near initialization for ‘stdkeys[33]’)
config.h:131: warning: excess elements in struct initializer
config.h:131: warning: (near initialization for ‘stdkeys[33]’)
config.h:132: error: extra brace group at end of initializer
config.h:132: error: (near initialization for ‘stdkeys[34]’)
config.h:132: warning: excess elements in struct initializer
config.h:132: warning: (near initialization for ‘stdkeys[34]’)
config.h:132: warning: excess elements in struct initializer
config.h:132: warning: (near initialization for ‘stdkeys[34]’)
config.h:132: error: extra brace group at end of initializer
config.h:132: error: (near initialization for ‘stdkeys[34]’)
config.h:132: warning: excess elements in struct initializer
config.h:132: warning: (near initialization for ‘stdkeys[34]’)
config.h:133: error: extra brace group at end of initializer
config.h:133: error: (near initialization for ‘stdkeys[35]’)
config.h:133: warning: excess elements in struct initializer
config.h:133: warning: (near initialization for ‘stdkeys[35]’)
config.h:133: warning: excess elements in struct initializer
config.h:133: warning: (near initialization for ‘stdkeys[35]’)
config.h:133: error: extra brace group at end of initializer
config.h:133: error: (near initialization for ‘stdkeys[35]’)
config.h:133: warning: excess elements in struct initializer
config.h:133: warning: (near initialization for ‘stdkeys[35]’)
config.h:134: error: extra brace group at end of initializer
config.h:134: error: (near initialization for ‘stdkeys[36]’)
config.h:134: warning: excess elements in struct initializer
config.h:134: warning: (near initialization for ‘stdkeys[36]’)
config.h:134: warning: excess elements in struct initializer
config.h:134: warning: (near initialization for ‘stdkeys[36]’)
config.h:134: error: extra brace group at end of initializer
config.h:134: error: (near initialization for ‘stdkeys[36]’)
config.h:134: warning: excess elements in struct initializer
config.h:134: warning: (near initialization for ‘stdkeys[36]’)
config.h:135: error: extra brace group at end of initializer
config.h:135: error: (near initialization for ‘stdkeys[37]’)
config.h:135: warning: excess elements in struct initializer
config.h:135: warning: (near initialization for ‘stdkeys[37]’)
config.h:135: warning: excess elements in struct initializer
config.h:135: warning: (near initialization for ‘stdkeys[37]’)
config.h:135: error: extra brace group at end of initializer
config.h:135: error: (near initialization for ‘stdkeys[37]’)
config.h:135: warning: excess elements in struct initializer
config.h:135: warning: (near initialization for ‘stdkeys[37]’)
config.h:136: error: extra brace group at end of initializer
config.h:136: error: (near initialization for ‘stdkeys[38]’)
config.h:136: warning: excess elements in struct initializer
config.h:136: warning: (near initialization for ‘stdkeys[38]’)
config.h:136: warning: excess elements in struct initializer
config.h:136: warning: (near initialization for ‘stdkeys[38]’)
config.h:136: error: extra brace group at end of initializer
config.h:136: error: (near initialization for ‘stdkeys[38]’)
config.h:136: warning: excess elements in struct initializer
config.h:136: warning: (near initialization for ‘stdkeys[38]’)
config.h:137: error: extra brace group at end of initializer
config.h:137: error: (near initialization for ‘stdkeys[39]’)
config.h:137: warning: excess elements in struct initializer
config.h:137: warning: (near initialization for ‘stdkeys[39]’)
config.h:137: warning: excess elements in struct initializer
config.h:137: warning: (near initialization for ‘stdkeys[39]’)
config.h:137: error: extra brace group at end of initializer
config.h:137: error: (near initialization for ‘stdkeys[39]’)
config.h:137: warning: excess elements in struct initializer
config.h:137: warning: (near initialization for ‘stdkeys[39]’)
config.h:138: error: extra brace group at end of initializer
config.h:138: error: (near initialization for ‘stdkeys[40]’)
config.h:138: warning: excess elements in struct initializer
config.h:138: warning: (near initialization for ‘stdkeys[40]’)
config.h:138: warning: excess elements in struct initializer
config.h:138: warning: (near initialization for ‘stdkeys[40]’)
config.h:138: error: extra brace group at end of initializer
config.h:138: error: (near initialization for ‘stdkeys[40]’)
config.h:138: warning: excess elements in struct initializer
config.h:138: warning: (near initialization for ‘stdkeys[40]’)
config.h:139: error: extra brace group at end of initializer
config.h:139: error: (near initialization for ‘stdkeys[41]’)
config.h:139: warning: excess elements in struct initializer
config.h:139: warning: (near initialization for ‘stdkeys[41]’)
config.h:139: warning: excess elements in struct initializer
config.h:139: warning: (near initialization for ‘stdkeys[41]’)
config.h:139: error: extra brace group at end of initializer
config.h:139: error: (near initialization for ‘stdkeys[41]’)
config.h:139: warning: excess elements in struct initializer
config.h:139: warning: (near initialization for ‘stdkeys[41]’)
config.h:140: error: extra brace group at end of initializer
config.h:140: error: (near initialization for ‘stdkeys[42]’)
config.h:140: warning: excess elements in struct initializer
config.h:140: warning: (near initialization for ‘stdkeys[42]’)
config.h:140: warning: excess elements in struct initializer
config.h:140: warning: (near initialization for ‘stdkeys[42]’)
config.h:140: error: extra brace group at end of initializer
config.h:140: error: (near initialization for ‘stdkeys[42]’)
config.h:140: warning: excess elements in struct initializer
config.h:140: warning: (near initialization for ‘stdkeys[42]’)
config.h:141: error: extra brace group at end of initializer
config.h:141: error: (near initialization for ‘stdkeys[43]’)
config.h:141: warning: excess elements in struct initializer
config.h:141: warning: (near initialization for ‘stdkeys[43]’)
config.h:141: warning: excess elements in struct initializer
config.h:141: warning: (near initialization for ‘stdkeys[43]’)
config.h:141: error: extra brace group at end of initializer
config.h:141: error: (near initialization for ‘stdkeys[43]’)
config.h:141: warning: excess elements in struct initializer
config.h:141: warning: (near initialization for ‘stdkeys[43]’)
config.h:142: error: extra brace group at end of initializer
config.h:142: error: (near initialization for ‘stdkeys[44]’)
config.h:142: warning: excess elements in struct initializer
config.h:142: warning: (near initialization for ‘stdkeys[44]’)
config.h:142: warning: excess elements in struct initializer
config.h:142: warning: (near initialization for ‘stdkeys[44]’)
config.h:142: error: extra brace group at end of initializer
config.h:142: error: (near initialization for ‘stdkeys[44]’)
config.h:142: warning: excess elements in struct initializer
config.h:142: warning: (near initialization for ‘stdkeys[44]’)
config.h:143: error: extra brace group at end of initializer
config.h:143: error: (near initialization for ‘stdkeys[45]’)
config.h:143: warning: excess elements in struct initializer
config.h:143: warning: (near initialization for ‘stdkeys[45]’)
config.h:143: warning: excess elements in struct initializer
config.h:143: warning: (near initialization for ‘stdkeys[45]’)
config.h:143: error: extra brace group at end of initializer
config.h:143: error: (near initialization for ‘stdkeys[45]’)
config.h:143: warning: excess elements in struct initializer
config.h:143: warning: (near initialization for ‘stdkeys[45]’)
config.h:144: error: extra brace group at end of initializer
config.h:144: error: (near initialization for ‘stdkeys[46]’)
config.h:144: warning: excess elements in struct initializer
config.h:144: warning: (near initialization for ‘stdkeys[46]’)
config.h:144: warning: excess elements in struct initializer
config.h:144: warning: (near initialization for ‘stdkeys[46]’)
config.h:144: error: extra brace group at end of initializer
config.h:144: error: (near initialization for ‘stdkeys[46]’)
config.h:144: warning: excess elements in struct initializer
config.h:144: warning: (near initialization for ‘stdkeys[46]’)
config.h:145: error: extra brace group at end of initializer
config.h:145: error: (near initialization for ‘stdkeys[47]’)
config.h:145: error: ‘t_bol’ undeclared here (not in a function)
config.h:145: warning: excess elements in struct initializer
config.h:145: warning: (near initialization for ‘stdkeys[47]’)
config.h:145: warning: excess elements in struct initializer
config.h:145: warning: (near initialization for ‘stdkeys[47]’)
config.h:145: error: extra brace group at end of initializer
config.h:145: error: (near initialization for ‘stdkeys[47]’)
config.h:145: warning: excess elements in struct initializer
config.h:145: warning: (near initialization for ‘stdkeys[47]’)
config.h:146: error: extra brace group at end of initializer
config.h:146: error: (near initialization for ‘stdkeys[48]’)
config.h:146: warning: excess elements in struct initializer
config.h:146: warning: (near initialization for ‘stdkeys[48]’)
config.h:146: warning: excess elements in struct initializer
config.h:146: warning: (near initialization for ‘stdkeys[48]’)
config.h:146: error: extra brace group at end of initializer
config.h:146: error: (near initialization for ‘stdkeys[48]’)
config.h:146: warning: excess elements in struct initializer
config.h:146: warning: (near initialization for ‘stdkeys[48]’)
config.h:147: error: extra brace group at end of initializer
config.h:147: error: (near initialization for ‘stdkeys[49]’)
config.h:147: warning: excess elements in struct initializer
config.h:147: warning: (near initialization for ‘stdkeys[49]’)
config.h:147: warning: excess elements in struct initializer
config.h:147: warning: (near initialization for ‘stdkeys[49]’)
config.h:147: error: extra brace group at end of initializer
config.h:147: error: (near initialization for ‘stdkeys[49]’)
config.h:147: warning: excess elements in struct initializer
config.h:147: warning: (near initialization for ‘stdkeys[49]’)
config.h:148: error: extra brace group at end of initializer
config.h:148: error: (near initialization for ‘stdkeys[50]’)
config.h:148: warning: excess elements in struct initializer
config.h:148: warning: (near initialization for ‘stdkeys[50]’)
config.h:148: warning: excess elements in struct initializer
config.h:148: warning: (near initialization for ‘stdkeys[50]’)
config.h:148: error: extra brace group at end of initializer
config.h:148: error: (near initialization for ‘stdkeys[50]’)
config.h:148: warning: excess elements in struct initializer
config.h:148: warning: (near initialization for ‘stdkeys[50]’)
config.h:149: error: extra brace group at end of initializer
config.h:149: error: (near initialization for ‘stdkeys[51]’)
config.h:149: warning: excess elements in struct initializer
config.h:149: warning: (near initialization for ‘stdkeys[51]’)
config.h:149: warning: excess elements in struct initializer
config.h:149: warning: (near initialization for ‘stdkeys[51]’)
config.h:149: error: extra brace group at end of initializer
config.h:149: error: (near initialization for ‘stdkeys[51]’)
config.h:149: warning: excess elements in struct initializer
config.h:149: warning: (near initialization for ‘stdkeys[51]’)
config.h:150: error: extra brace group at end of initializer
config.h:150: error: (near initialization for ‘stdkeys[52]’)
config.h:150: error: ‘t_eol’ undeclared here (not in a function)
config.h:150: warning: excess elements in struct initializer
config.h:150: warning: (near initialization for ‘stdkeys[52]’)
config.h:150: warning: excess elements in struct initializer
config.h:150: warning: (near initialization for ‘stdkeys[52]’)
config.h:150: error: extra brace group at end of initializer
config.h:150: error: (near initialization for ‘stdkeys[52]’)
config.h:150: warning: excess elements in struct initializer
config.h:150: warning: (near initialization for ‘stdkeys[52]’)
config.h:151: error: extra brace group at end of initializer
config.h:151: error: (near initialization for ‘stdkeys[53]’)
config.h:151: warning: excess elements in struct initializer
config.h:151: warning: (near initialization for ‘stdkeys[53]’)
config.h:151: warning: excess elements in struct initializer
config.h:151: warning: (near initialization for ‘stdkeys[53]’)
config.h:151: error: extra brace group at end of initializer
config.h:151: error: (near initialization for ‘stdkeys[53]’)
config.h:151: warning: excess elements in struct initializer
config.h:151: warning: (near initialization for ‘stdkeys[53]’)
config.h:152: error: extra brace group at end of initializer
config.h:152: error: (near initialization for ‘stdkeys[54]’)
config.h:152: warning: excess elements in struct initializer
config.h:152: warning: (near initialization for ‘stdkeys[54]’)
config.h:152: warning: excess elements in struct initializer
config.h:152: warning: (near initialization for ‘stdkeys[54]’)
config.h:152: error: extra brace group at end of initializer
config.h:152: error: (near initialization for ‘stdkeys[54]’)
config.h:152: warning: excess elements in struct initializer
config.h:152: warning: (near initialization for ‘stdkeys[54]’)
config.h:153: error: extra brace group at end of initializer
config.h:153: error: (near initialization for ‘stdkeys[55]’)
config.h:153: warning: excess elements in struct initializer
config.h:153: warning: (near initialization for ‘stdkeys[55]’)
config.h:153: warning: excess elements in struct initializer
config.h:153: warning: (near initialization for ‘stdkeys[55]’)
config.h:153: error: extra brace group at end of initializer
config.h:153: error: (near initialization for ‘stdkeys[55]’)
config.h:153: warning: excess elements in struct initializer
config.h:153: warning: (near initialization for ‘stdkeys[55]’)
config.h:154: error: extra brace group at end of initializer
config.h:154: error: (near initialization for ‘stdkeys[56]’)
config.h:154: warning: excess elements in struct initializer
config.h:154: warning: (near initialization for ‘stdkeys[56]’)
config.h:154: warning: excess elements in struct initializer
config.h:154: warning: (near initialization for ‘stdkeys[56]’)
config.h:154: error: extra brace group at end of initializer
config.h:154: error: (near initialization for ‘stdkeys[56]’)
config.h:154: warning: excess elements in struct initializer
config.h:154: warning: (near initialization for ‘stdkeys[56]’)
config.h:155: error: extra brace group at end of initializer
config.h:155: error: (near initialization for ‘stdkeys[57]’)
config.h:155: warning: excess elements in struct initializer
config.h:155: warning: (near initialization for ‘stdkeys[57]’)
config.h:155: warning: excess elements in struct initializer
config.h:155: warning: (near initialization for ‘stdkeys[57]’)
config.h:155: error: extra brace group at end of initializer
config.h:155: error: (near initialization for ‘stdkeys[57]’)
config.h:155: warning: excess elements in struct initializer
config.h:155: warning: (near initialization for ‘stdkeys[57]’)
config.h:156: error: extra brace group at end of initializer
config.h:156: error: (near initialization for ‘stdkeys[58]’)
config.h:156: warning: excess elements in struct initializer
config.h:156: warning: (near initialization for ‘stdkeys[58]’)
config.h:156: warning: excess elements in struct initializer
config.h:156: warning: (near initialization for ‘stdkeys[58]’)
config.h:156: error: extra brace group at end of initializer
config.h:156: error: (near initialization for ‘stdkeys[58]’)
config.h:156: warning: excess elements in struct initializer
config.h:156: warning: (near initialization for ‘stdkeys[58]’)
config.h:157: error: extra brace group at end of initializer
config.h:157: error: (near initialization for ‘stdkeys[59]’)
config.h:157: warning: excess elements in struct initializer
config.h:157: warning: (near initialization for ‘stdkeys[59]’)
config.h:157: warning: excess elements in struct initializer
config.h:157: warning: (near initialization for ‘stdkeys[59]’)
config.h:157: error: extra brace group at end of initializer
config.h:157: error: (near initialization for ‘stdkeys[59]’)
config.h:157: warning: excess elements in struct initializer
config.h:157: warning: (near initialization for ‘stdkeys[59]’)
config.h:158: error: extra brace group at end of initializer
config.h:158: error: (near initialization for ‘stdkeys[60]’)
config.h:158: warning: excess elements in struct initializer
config.h:158: warning: (near initialization for ‘stdkeys[60]’)
config.h:158: warning: excess elements in struct initializer
config.h:158: warning: (near initialization for ‘stdkeys[60]’)
config.h:158: error: extra brace group at end of initializer
config.h:158: error: (near initialization for ‘stdkeys[60]’)
config.h:158: warning: excess elements in struct initializer
config.h:158: warning: (near initialization for ‘stdkeys[60]’)
config.h:159: error: extra brace group at end of initializer
config.h:159: error: (near initialization for ‘stdkeys[61]’)
config.h:159: warning: excess elements in struct initializer
config.h:159: warning: (near initialization for ‘stdkeys[61]’)
config.h:159: warning: excess elements in struct initializer
config.h:159: warning: (near initialization for ‘stdkeys[61]’)
config.h:159: error: extra brace group at end of initializer
config.h:159: error: (near initialization for ‘stdkeys[61]’)
config.h:159: warning: excess elements in struct initializer
config.h:159: warning: (near initialization for ‘stdkeys[61]’)
config.h:160: error: extra brace group at end of initializer
config.h:160: error: (near initialization for ‘stdkeys[62]’)
config.h:160: warning: excess elements in struct initializer
config.h:160: warning: (near initialization for ‘stdkeys[62]’)
config.h:160: warning: excess elements in struct initializer
config.h:160: warning: (near initialization for ‘stdkeys[62]’)
config.h:160: error: extra brace group at end of initializer
config.h:160: error: (near initialization for ‘stdkeys[62]’)
config.h:160: warning: excess elements in struct initializer
config.h:160: warning: (near initialization for ‘stdkeys[62]’)
config.h:163: error: extra brace group at end of initializer
config.h:163: error: (near initialization for ‘stdkeys[63]’)
config.h:163: warning: excess elements in struct initializer
config.h:163: warning: (near initialization for ‘stdkeys[63]’)
config.h:163: warning: excess elements in struct initializer
config.h:163: warning: (near initialization for ‘stdkeys[63]’)
config.h:163: error: extra brace group at end of initializer
config.h:163: error: (near initialization for ‘stdkeys[63]’)
config.h:163: warning: excess elements in struct initializer
config.h:163: warning: (near initialization for ‘stdkeys[63]’)
config.h:164: error: extra brace group at end of initializer
config.h:164: error: (near initialization for ‘stdkeys[64]’)
config.h:164: warning: excess elements in struct initializer
config.h:164: warning: (near initialization for ‘stdkeys[64]’)
config.h:164: warning: excess elements in struct initializer
config.h:164: warning: (near initialization for ‘stdkeys[64]’)
config.h:164: error: extra brace group at end of initializer
config.h:164: error: (near initialization for ‘stdkeys[64]’)
config.h:164: warning: excess elements in struct initializer
config.h:164: warning: (near initialization for ‘stdkeys[64]’)
config.h:167: error: extra brace group at end of initializer
config.h:167: error: (near initialization for ‘stdkeys[65]’)
config.h:167: error: ‘t_mod’ undeclared here (not in a function)
config.h:167: warning: excess elements in struct initializer
config.h:167: warning: (near initialization for ‘stdkeys[65]’)
config.h:167: warning: excess elements in struct initializer
config.h:167: warning: (near initialization for ‘stdkeys[65]’)
config.h:167: error: extra brace group at end of initializer
config.h:167: error: (near initialization for ‘stdkeys[65]’)
config.h:167: warning: excess elements in struct initializer
config.h:167: warning: (near initialization for ‘stdkeys[65]’)
config.h:168: error: extra brace group at end of initializer
config.h:168: error: (near initialization for ‘stdkeys[66]’)
config.h:168: warning: excess elements in struct initializer
config.h:168: warning: (near initialization for ‘stdkeys[66]’)
config.h:168: warning: excess elements in struct initializer
config.h:168: warning: (near initialization for ‘stdkeys[66]’)
config.h:168: error: extra brace group at end of initializer
config.h:168: error: (near initialization for ‘stdkeys[66]’)
config.h:168: warning: excess elements in struct initializer
config.h:168: warning: (near initialization for ‘stdkeys[66]’)
config.h:169: error: extra brace group at end of initializer
config.h:169: error: (near initialization for ‘stdkeys[67]’)
config.h:169: warning: excess elements in struct initializer
config.h:169: warning: (near initialization for ‘stdkeys[67]’)
config.h:169: warning: excess elements in struct initializer
config.h:169: warning: (near initialization for ‘stdkeys[67]’)
config.h:169: error: extra brace group at end of initializer
config.h:169: error: (near initialization for ‘stdkeys[67]’)
config.h:169: warning: excess elements in struct initializer
config.h:169: warning: (near initialization for ‘stdkeys[67]’)
config.h:170: error: extra brace group at end of initializer
config.h:170: error: (near initialization for ‘stdkeys[68]’)
config.h:170: warning: excess elements in struct initializer
config.h:170: warning: (near initialization for ‘stdkeys[68]’)
config.h:170: warning: excess elements in struct initializer
config.h:170: warning: (near initialization for ‘stdkeys[68]’)
config.h:170: error: extra brace group at end of initializer
config.h:170: error: (near initialization for ‘stdkeys[68]’)
config.h:170: warning: excess elements in struct initializer
config.h:170: warning: (near initialization for ‘stdkeys[68]’)
config.h:171: error: extra brace group at end of initializer
config.h:171: error: (near initialization for ‘stdkeys[69]’)
config.h:171: warning: excess elements in struct initializer
config.h:171: warning: (near initialization for ‘stdkeys[69]’)
config.h:171: warning: excess elements in struct initializer
config.h:171: warning: (near initialization for ‘stdkeys[69]’)
config.h:171: error: extra brace group at end of initializer
config.h:171: error: (near initialization for ‘stdkeys[69]’)
config.h:171: warning: excess elements in struct initializer
config.h:171: warning: (near initialization for ‘stdkeys[69]’)
config.h:172: error: extra brace group at end of initializer
config.h:172: error: (near initialization for ‘stdkeys[70]’)
config.h:172: warning: excess elements in struct initializer
config.h:172: warning: (near initialization for ‘stdkeys[70]’)
config.h:172: warning: excess elements in struct initializer
config.h:172: warning: (near initialization for ‘stdkeys[70]’)
config.h:172: error: extra brace group at end of initializer
config.h:172: error: (near initialization for ‘stdkeys[70]’)
config.h:172: warning: excess elements in struct initializer
config.h:172: warning: (near initialization for ‘stdkeys[70]’)
config.h:175: error: extra brace group at end of initializer
config.h:175: error: (near initialization for ‘stdkeys[71]’)
config.h:175: warning: excess elements in struct initializer
config.h:175: warning: (near initialization for ‘stdkeys[71]’)
config.h:175: warning: excess elements in struct initializer
config.h:175: warning: (near initialization for ‘stdkeys[71]’)
config.h:175: error: extra brace group at end of initializer
config.h:175: error: (near initialization for ‘stdkeys[71]’)
config.h:175: warning: excess elements in struct initializer
config.h:175: warning: (near initialization for ‘stdkeys[71]’)
config.h:176: error: extra brace group at end of initializer
config.h:176: error: (near initialization for ‘stdkeys[72]’)
config.h:176: warning: excess elements in struct initializer
config.h:176: warning: (near initialization for ‘stdkeys[72]’)
config.h:176: warning: excess elements in struct initializer
config.h:176: warning: (near initialization for ‘stdkeys[72]’)
config.h:176: error: extra brace group at end of initializer
config.h:176: error: (near initialization for ‘stdkeys[72]’)
config.h:176: warning: excess elements in struct initializer
config.h:176: warning: (near initialization for ‘stdkeys[72]’)
config.h:177: error: extra brace group at end of initializer
config.h:177: error: (near initialization for ‘stdkeys[73]’)
config.h:177: warning: excess elements in struct initializer
config.h:177: warning: (near initialization for ‘stdkeys[73]’)
config.h:177: warning: excess elements in struct initializer
config.h:177: warning: (near initialization for ‘stdkeys[73]’)
config.h:177: error: extra brace group at end of initializer
config.h:177: error: (near initialization for ‘stdkeys[73]’)
config.h:177: warning: excess elements in struct initializer
config.h:177: warning: (near initialization for ‘stdkeys[73]’)
config.h:178: error: extra brace group at end of initializer
config.h:178: error: (near initialization for ‘stdkeys[74]’)
config.h:178: warning: excess elements in struct initializer
config.h:178: warning: (near initialization for ‘stdkeys[74]’)
config.h:178: warning: excess elements in struct initializer
config.h:178: warning: (near initialization for ‘stdkeys[74]’)
config.h:178: error: extra brace group at end of initializer
config.h:178: error: (near initialization for ‘stdkeys[74]’)
config.h:178: warning: excess elements in struct initializer
config.h:178: warning: (near initialization for ‘stdkeys[74]’)
config.h:179: error: extra brace group at end of initializer
config.h:179: error: (near initialization for ‘stdkeys[75]’)
config.h:179: warning: excess elements in struct initializer
config.h:179: warning: (near initialization for ‘stdkeys[75]’)
config.h:179: warning: excess elements in struct initializer
config.h:179: warning: (near initialization for ‘stdkeys[75]’)
config.h:179: error: extra brace group at end of initializer
config.h:179: error: (near initialization for ‘stdkeys[75]’)
config.h:179: warning: excess elements in struct initializer
config.h:179: warning: (near initialization for ‘stdkeys[75]’)
config.h:180: error: extra brace group at end of initializer
config.h:180: error: (near initialization for ‘stdkeys[76]’)
config.h:180: warning: excess elements in struct initializer
config.h:180: warning: (near initialization for ‘stdkeys[76]’)
config.h:180: warning: excess elements in struct initializer
config.h:180: warning: (near initialization for ‘stdkeys[76]’)
config.h:180: error: extra brace group at end of initializer
config.h:180: error: (near initialization for ‘stdkeys[76]’)
config.h:180: warning: excess elements in struct initializer
config.h:180: warning: (near initialization for ‘stdkeys[76]’)
config.h:183: error: extra brace group at end of initializer
config.h:183: error: (near initialization for ‘stdkeys[77]’)
config.h:183: error: ‘t_undo’ undeclared here (not in a function)
config.h:183: warning: excess elements in struct initializer
config.h:183: warning: (near initialization for ‘stdkeys[77]’)
config.h:183: warning: excess elements in struct initializer
config.h:183: warning: (near initialization for ‘stdkeys[77]’)
config.h:183: error: extra brace group at end of initializer
config.h:183: error: (near initialization for ‘stdkeys[77]’)
config.h:183: warning: excess elements in struct initializer
config.h:183: warning: (near initialization for ‘stdkeys[77]’)
config.h:186: error: extra brace group at end of initializer
config.h:186: error: (near initialization for ‘stdkeys[78]’)
config.h:186: warning: excess elements in struct initializer
config.h:186: warning: (near initialization for ‘stdkeys[78]’)
config.h:186: warning: excess elements in struct initializer
config.h:186: warning: (near initialization for ‘stdkeys[78]’)
config.h:186: error: extra brace group at end of initializer
config.h:186: error: (near initialization for ‘stdkeys[78]’)
config.h:186: warning: excess elements in struct initializer
config.h:186: warning: (near initialization for ‘stdkeys[78]’)
config.h:187: error: extra brace group at end of initializer
config.h:187: error: (near initialization for ‘stdkeys[79]’)
config.h:187: warning: excess elements in struct initializer
config.h:187: warning: (near initialization for ‘stdkeys[79]’)
config.h:187: warning: excess elements in struct initializer
config.h:187: warning: (near initialization for ‘stdkeys[79]’)
config.h:187: error: extra brace group at end of initializer
config.h:187: error: (near initialization for ‘stdkeys[79]’)
config.h:187: warning: excess elements in struct initializer
config.h:187: warning: (near initialization for ‘stdkeys[79]’)
config.h:188: error: extra brace group at end of initializer
config.h:188: error: (near initialization for ‘stdkeys[80]’)
config.h:188: warning: excess elements in struct initializer
config.h:188: warning: (near initialization for ‘stdkeys[80]’)
config.h:188: warning: excess elements in struct initializer
config.h:188: warning: (near initialization for ‘stdkeys[80]’)
config.h:188: error: extra brace group at end of initializer
config.h:188: error: (near initialization for ‘stdkeys[80]’)
config.h:188: warning: excess elements in struct initializer
config.h:188: warning: (near initialization for ‘stdkeys[80]’)
config.h:189: error: extra brace group at end of initializer
config.h:189: error: (near initialization for ‘stdkeys[81]’)
config.h:189: warning: excess elements in struct initializer
config.h:189: warning: (near initialization for ‘stdkeys[81]’)
config.h:189: warning: excess elements in struct initializer
config.h:189: warning: (near initialization for ‘stdkeys[81]’)
config.h:189: error: extra brace group at end of initializer
config.h:189: error: (near initialization for ‘stdkeys[81]’)
config.h:189: warning: excess elements in struct initializer
config.h:189: warning: (near initialization for ‘stdkeys[81]’)
config.h:190: error: extra brace group at end of initializer
config.h:190: error: (near initialization for ‘stdkeys[82]’)
config.h:190: warning: excess elements in struct initializer
config.h:190: warning: (near initialization for ‘stdkeys[82]’)
config.h:190: warning: excess elements in struct initializer
config.h:190: warning: (near initialization for ‘stdkeys[82]’)
config.h:190: error: extra brace group at end of initializer
config.h:190: error: (near initialization for ‘stdkeys[82]’)
config.h:190: warning: excess elements in struct initializer
config.h:190: warning: (near initialization for ‘stdkeys[82]’)
config.h:196: error: extra brace group at end of initializer
config.h:196: error: (near initialization for ‘cmds[0]’)
config.h:196: warning: excess elements in struct initializer
config.h:196: warning: (near initialization for ‘cmds[0]’)
config.h:196: warning: excess elements in struct initializer
config.h:196: warning: (near initialization for ‘cmds[0]’)
config.h:197: error: extra brace group at end of initializer
config.h:197: error: (near initialization for ‘cmds[1]’)
config.h:197: warning: excess elements in struct initializer
config.h:197: warning: (near initialization for ‘cmds[1]’)
config.h:197: warning: excess elements in struct initializer
config.h:197: warning: (near initialization for ‘cmds[1]’)
config.h:198: error: extra brace group at end of initializer
config.h:198: error: (near initialization for ‘cmds[2]’)
config.h:198: warning: excess elements in struct initializer
config.h:198: warning: (near initialization for ‘cmds[2]’)
config.h:198: warning: excess elements in struct initializer
config.h:198: warning: (near initialization for ‘cmds[2]’)
config.h:199: error: extra brace group at end of initializer
config.h:199: error: (near initialization for ‘cmds[3]’)
config.h:199: warning: excess elements in struct initializer
config.h:199: warning: (near initialization for ‘cmds[3]’)
config.h:199: warning: excess elements in struct initializer
config.h:199: warning: (near initialization for ‘cmds[3]’)
config.h:200: error: extra brace group at end of initializer
config.h:200: error: (near initialization for ‘cmds[4]’)
config.h:200: warning: excess elements in struct initializer
config.h:200: warning: (near initialization for ‘cmds[4]’)
config.h:200: warning: excess elements in struct initializer
config.h:200: warning: (near initialization for ‘cmds[4]’)
config.h:201: error: extra brace group at end of initializer
config.h:201: error: (near initialization for ‘cmds[5]’)
config.h:201: warning: excess elements in struct initializer
config.h:201: warning: (near initialization for ‘cmds[5]’)
config.h:201: warning: excess elements in struct initializer
config.h:201: warning: (near initialization for ‘cmds[5]’)
config.h:202: error: extra brace group at end of initializer
config.h:202: error: (near initialization for ‘cmds[6]’)
config.h:202: warning: excess elements in struct initializer
config.h:202: warning: (near initialization for ‘cmds[6]’)
config.h:202: warning: excess elements in struct initializer
config.h:202: warning: (near initialization for ‘cmds[6]’)
config.h:203: error: extra brace group at end of initializer
config.h:203: error: (near initialization for ‘cmds[7]’)
config.h:203: warning: excess elements in struct initializer
config.h:203: warning: (near initialization for ‘cmds[7]’)
config.h:203: warning: excess elements in struct initializer
config.h:203: warning: (near initialization for ‘cmds[7]’)
In file included from sandy.c:244:
config.h:223: error: ‘COLOR_BLACK’ undeclared here (not in a function)
config.h:223: error: initializer element is not constant
config.h:223: error: (near initialization for ‘fgcolors[1]’)
config.h:224: error: initializer element is not constant
config.h:224: error: (near initialization for ‘fgcolors[2]’)
config.h:225: error: ‘COLOR_WHITE’ undeclared here (not in a function)
config.h:225: error: initializer element is not constant
config.h:225: error: (near initialization for ‘fgcolors[3]’)
config.h:226: error: ‘COLOR_RED’ undeclared here (not in a function)
config.h:226: error: initializer element is not constant
config.h:226: error: (near initialization for ‘fgcolors[4]’)
config.h:227: error: initializer element is not constant
config.h:227: error: (near initialization for ‘fgcolors[5]’)
config.h:228: error: ‘COLOR_GREEN’ undeclared here (not in a function)
config.h:228: error: initializer element is not constant
config.h:228: error: (near initialization for ‘fgcolors[6]’)
config.h:229: error: initializer element is not constant
config.h:229: error: (near initialization for ‘fgcolors[7]’)
config.h:230: error: ‘COLOR_MAGENTA’ undeclared here (not in a function)
config.h:230: error: initializer element is not constant
config.h:230: error: (near initialization for ‘fgcolors[8]’)
config.h:231: error: initializer element is not constant
config.h:231: error: (near initialization for ‘fgcolors[9]’)
config.h:232: error: ‘COLOR_BLUE’ undeclared here (not in a function)
config.h:232: error: initializer element is not constant
config.h:232: error: (near initialization for ‘fgcolors[10]’)
config.h:233: error: initializer element is not constant
config.h:233: error: (near initialization for ‘fgcolors[11]’)
config.h:234: error: initializer element is not constant
config.h:234: error: (near initialization for ‘fgcolors[12]’)
config.h:241: error: ‘A_DIM’ undeclared here (not in a function)
config.h:241: error: initializer element is not constant
config.h:241: error: (near initialization for ‘colorattrs[3]’)
config.h:242: error: initializer element is not constant
config.h:242: error: (near initialization for ‘colorattrs[4]’)
config.h:243: error: ‘A_BOLD’ undeclared here (not in a function)
config.h:243: error: initializer element is not constant
config.h:243: error: (near initialization for ‘colorattrs[5]’)
config.h:244: error: initializer element is not constant
config.h:244: error: (near initialization for ‘colorattrs[6]’)
config.h:246: error: initializer element is not constant
config.h:246: error: (near initialization for ‘colorattrs[8]’)
config.h:248: error: initializer element is not constant
config.h:248: error: (near initialization for ‘colorattrs[10]’)
config.h:256: error: ‘A_REVERSE’ undeclared here (not in a function)
config.h:256: error: initializer element is not constant
config.h:256: error: (near initialization for ‘bwattrs[2]’)
config.h:257: error: initializer element is not constant
config.h:257: error: (near initialization for ‘bwattrs[3]’)
config.h:258: error: initializer element is not constant
config.h:258: error: (near initialization for ‘bwattrs[4]’)
config.h:259: error: initializer element is not constant
config.h:259: error: (near initialization for ‘bwattrs[5]’)
config.h:260: error: initializer element is not constant
config.h:260: error: (near initialization for ‘bwattrs[6]’)
config.h:261: error: initializer element is not constant
config.h:261: error: (near initialization for ‘bwattrs[7]’)
config.h:262: error: initializer element is not constant
config.h:262: error: (near initialization for ‘bwattrs[8]’)
config.h:263: error: initializer element is not constant
config.h:263: error: (near initialization for ‘bwattrs[9]’)
config.h:264: error: initializer element is not constant
config.h:264: error: (near initialization for ‘bwattrs[10]’)
config.h:265: error: initializer element is not constant
config.h:265: error: (near initialization for ‘bwattrs[11]’)
config.h:266: error: initializer element is not constant
config.h:266: error: (near initialization for ‘bwattrs[12]’)
config.h:271: error: ‘COLOR_CYAN’ undeclared here (not in a function)
config.h:271: error: initializer element is not constant
config.h:271: error: (near initialization for ‘bgcolors[1]’)
config.h:272: error: ‘COLOR_YELLOW’ undeclared here (not in a function)
config.h:272: error: initializer element is not constant
config.h:272: error: (near initialization for ‘bgcolors[2]’)
config.h:277: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_x’
sandy.c: In function ‘f_center’:
sandy.c:248: error: ‘titlewin’ undeclared (first use in this function)
sandy.c:248: error: (Each undeclared identifier is reported only once
sandy.c:248: error: for each function it appears in.)
sandy.c:251: error: ‘Line’ has no member named ‘prev’
sandy.c:251: error: ‘Line’ has no member named ‘prev’
sandy.c:251: warning: assignment from incompatible pointer type
sandy.c: In function ‘f_delete’:
sandy.c:265: warning: implicit declaration of function ‘i_addundo’
sandy.c:265: error: ‘FALSE’ undeclared (first use in this function)
sandy.c: In function ‘f_extsel’:
sandy.c:294: warning: implicit declaration of function ‘t_sel’
sandy.c: In function ‘f_findbw’:
sandy.c:302: warning: implicit declaration of function ‘i_setfindterm’
sandy.c:302: error: ‘FALSE’ undeclared (first use in this function)
sandy.c: In function ‘f_findfw’:
sandy.c:307: error: ‘TRUE’ undeclared (first use in this function)
sandy.c: In function ‘f_insert’:
sandy.c:312: error: ‘bool’ undeclared (first use in this function)
sandy.c:312: warning: statement with no effect
sandy.c:312: error: expected ‘;’ before ‘killsel’
sandy.c:314: error: ‘killsel’ undeclared (first use in this function)
sandy.c:319: error: ‘TRUE’ undeclared (first use in this function)
sandy.c: In function ‘f_line’:
sandy.c:333: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: In function ‘f_offset’:
sandy.c:352: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: In function ‘f_save’:
sandy.c:386: warning: implicit declaration of function ‘setenv’
sandy.c:388: warning: implicit declaration of function ‘unsetenv’
sandy.c:390: warning: implicit declaration of function ‘t_x’
sandy.c:395: warning: implicit declaration of function ‘i_writefile’
sandy.c: In function ‘f_spawn’:
sandy.c:415: warning: implicit declaration of function ‘reset_shell_mode’
sandy.c:423: warning: implicit declaration of function ‘reset_prog_mode’
sandy.c:424: error: ‘titlewin’ undeclared (first use in this function)
sandy.c:424: warning: implicit declaration of function ‘redrawwin’
sandy.c:425: error: ‘textwin’ undeclared (first use in this function)
sandy.c: In function ‘f_undo’:
sandy.c:471: warning: ISO C forbids nested functions
sandy.c:471: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘r’
sandy.c:471: error: ‘r’ undeclared (first use in this function)
sandy.c:471: warning: statement with no effect
sandy.c:482: error: invalid operands to binary ^ (have ‘const struct Key *’ and ‘int’)
sandy.c: At top level:
sandy.c:504: error: expected ‘)’ before ‘ins’
sandy.c: In function ‘i_addtext’:
sandy.c:535: error: ‘Line’ has no member named ‘dirty’
sandy.c:535: error: ‘Line’ has no member named ‘dirty’
sandy.c:535: error: ‘TRUE’ undeclared (first use in this function)
sandy.c:535: warning: statement with no effect
sandy.c:537: error: ‘Line’ has no member named ‘next’
sandy.c:537: error: ‘Line’ has no member named ‘next’
sandy.c:537: warning: statement with no effect
sandy.c:537: error: ‘Line’ has no member named ‘prev’
sandy.c:537: warning: statement with no effect
sandy.c:538: error: ‘Line’ has no member named ‘next’
sandy.c:538: error: ‘Line’ has no member named ‘next’
sandy.c:538: error: ‘Key’ has no member named ‘prev’
sandy.c:538: warning: statement with no effect
sandy.c:540: error: ‘Line’ has no member named ‘next’
sandy.c:540: warning: statement with no effect
sandy.c:541: error: ‘Line’ has no member named ‘prev’
sandy.c:541: error: ‘Key’ has no member named ‘len’
sandy.c:541: warning: comparison between pointer and integer
sandy.c:543: error: ‘Line’ has no member named ‘prev’
sandy.c:543: error: ‘Key’ has no member named ‘c’
sandy.c:543: warning: passing argument 1 of ‘i_addtext’ from incompatible pointer type
sandy.c:521: note: expected ‘char *’ but argument is of type ‘const struct Key *’
sandy.c:544: error: ‘Line’ has no member named ‘prev’
sandy.c:544: error: ‘Key’ has no member named ‘len’
sandy.c:544: warning: statement with no effect
sandy.c:544: error: ‘Line’ has no member named ‘prev’
sandy.c:544: error: ‘Key’ has no member named ‘c’
sandy.c:544: error: assignment of read-only location ‘<erroneous-expression>[(size_t)o + il]’
sandy.c:544: warning: statement with no effect
sandy.c:546: error: ‘Line’ has no member named ‘prev’
sandy.c:546: warning: passing argument 1 of ‘i_calcvlen’ from incompatible pointer type
sandy.c:191: note: expected ‘struct Line *’ but argument is of type ‘const struct Key *’
sandy.c:553: error: ‘Line’ has no member named ‘dirty’
sandy.c:553: warning: statement with no effect
sandy.c: In function ‘i_advpos’:
sandy.c:571: error: ‘Line’ has no member named ‘next’
sandy.c:572: error: ‘Line’ has no member named ‘next’
sandy.c:572: warning: assignment from incompatible pointer type
sandy.c:577: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: In function ‘i_calcvlen’:
sandy.c:586: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: In function ‘i_cleanup’:
sandy.c:608: warning: implicit declaration of function ‘endwin’
sandy.c: In function ‘i_dirtyrange’:
sandy.c:623: error: ‘Line’ has no member named ‘next’
sandy.c:623: warning: assignment from incompatible pointer type
sandy.c:623: error: ‘Line’ has no member named ‘dirty’
sandy.c:623: error: ‘TRUE’ undeclared (first use in this function)
sandy.c:623: warning: statement with no effect
sandy.c: In function ‘i_deltext’:
sandy.c:634: error: ‘Line’ has no member named ‘dirty’
sandy.c:634: error: ‘TRUE’ undeclared (first use in this function)
sandy.c:634: warning: statement with no effect
sandy.c:642: error: ‘Line’ has no member named ‘next’
sandy.c:642: warning: comparison of distinct pointer types lacks a cast
sandy.c:643: error: ‘Line’ has no member named ‘next’
sandy.c:643: error: ‘Key’ has no member named ‘c’
sandy.c:643: warning: passing argument 1 of ‘i_addtext’ from incompatible pointer type
sandy.c:521: note: expected ‘char *’ but argument is of type ‘const struct Key *’
sandy.c:644: error: ‘Line’ has no member named ‘next’
sandy.c:644: error: ‘Key’ has no member named ‘next’
sandy.c:644: error: ‘Line’ has no member named ‘next’
sandy.c:644: error: ‘Key’ has no member named ‘next’
sandy.c:644: error: ‘Key’ has no member named ‘prev’
sandy.c:644: warning: statement with no effect
sandy.c:645: error: ‘Line’ has no member named ‘next’
sandy.c:645: warning: assignment from incompatible pointer type
sandy.c:646: error: ‘Line’ has no member named ‘next’
sandy.c:646: error: ‘Line’ has no member named ‘next’
sandy.c:646: error: ‘Key’ has no member named ‘next’
sandy.c:646: warning: statement with no effect
sandy.c:647: error: ‘Line’ has no member named ‘prev’
sandy.c:647: warning: assignment from incompatible pointer type
sandy.c:648: error: ‘Line’ has no member named ‘prev’
sandy.c:648: warning: assignment from incompatible pointer type
sandy.c: In function ‘i_edit’:
sandy.c:669: error: ‘Line’ has no member named ‘dirty’
sandy.c:669: error: ‘TRUE’ undeclared (first use in this function)
sandy.c:669: warning: statement with no effect
sandy.c:671: error: ‘Line’ has no member named ‘dirty’
sandy.c:671: warning: statement with no effect
sandy.c:690: warning: implicit declaration of function ‘wgetch’
sandy.c:690: error: ‘textwin’ undeclared (first use in this function)
sandy.c:690: error: ‘ERR’ undeclared (first use in this function)
sandy.c:690: warning: comparison between pointer and integer
sandy.c:696: error: ‘KEY_MIN’ undeclared (first use in this function)
sandy.c:696: warning: comparison between pointer and integer
sandy.c:698: error: ‘KEY_MOUSE’ undeclared (first use in this function)
sandy.c:698: warning: comparison between pointer and integer
sandy.c:702: error: ‘Key’ has no member named ‘test’
sandy.c:702: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:702: error: ‘Key’ has no member named ‘test’
sandy.c:702: error: called object ‘<erroneous-expression>[0]’ is not a function
sandy.c:703: error: ‘Key’ has no member named ‘test’
sandy.c:703: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:703: error: ‘Key’ has no member named ‘test’
sandy.c:703: error: called object ‘<erroneous-expression>[1]’ is not a function
sandy.c:704: error: ‘Key’ has no member named ‘test’
sandy.c:704: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:704: error: ‘Key’ has no member named ‘test’
sandy.c:704: error: called object ‘<erroneous-expression>[2]’ is not a function
sandy.c:705: error: ‘Key’ has no member named ‘test’
sandy.c:705: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:705: error: ‘Key’ has no member named ‘test’
sandy.c:705: error: called object ‘<erroneous-expression>[3]’ is not a function
sandy.c:706: error: ‘Key’ has no member named ‘func’
sandy.c:706: error: ‘Key’ has no member named ‘arg’
sandy.c:706: error: called object ‘<erroneous-expression>’ is not a function
sandy.c:706: warning: statement with no effect
sandy.c:716: error: ‘isutf8’ undeclared (first use in this function)
sandy.c:718: warning: implicit declaration of function ‘wtimeout’
sandy.c:720: warning: comparison between pointer and integer
sandy.c:731: error: ‘Key’ has no member named ‘test’
sandy.c:731: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:731: error: ‘Key’ has no member named ‘test’
sandy.c:731: error: called object ‘<erroneous-expression>[0]’ is not a function
sandy.c:732: error: ‘Key’ has no member named ‘test’
sandy.c:732: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:732: error: ‘Key’ has no member named ‘test’
sandy.c:732: error: called object ‘<erroneous-expression>[1]’ is not a function
sandy.c:733: error: ‘Key’ has no member named ‘test’
sandy.c:733: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:733: error: ‘Key’ has no member named ‘test’
sandy.c:733: error: called object ‘<erroneous-expression>[2]’ is not a function
sandy.c:734: error: ‘Key’ has no member named ‘test’
sandy.c:734: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:734: error: ‘Key’ has no member named ‘test’
sandy.c:734: error: called object ‘<erroneous-expression>[3]’ is not a function
sandy.c:735: error: ‘Key’ has no member named ‘func’
sandy.c:735: error: ‘Key’ has no member named ‘arg’
sandy.c:735: error: called object ‘<erroneous-expression>’ is not a function
sandy.c:735: warning: statement with no effect
sandy.c: At top level:
sandy.c:747: error: expected ‘)’ before ‘fw’
sandy.c: In function ‘i_gettext’:
sandy.c:794: error: ‘Line’ has no member named ‘next’
sandy.c:794: warning: comparison of distinct pointer types lacks a cast
sandy.c:794: error: ‘Line’ has no member named ‘next’
sandy.c:794: warning: assignment from incompatible pointer type
sandy.c:797: error: ‘Line’ has no member named ‘next’
sandy.c:797: warning: comparison of distinct pointer types lacks a cast
sandy.c:797: error: ‘Line’ has no member named ‘next’
sandy.c:797: warning: assignment from incompatible pointer type
sandy.c: In function ‘i_lineat’:
sandy.c:820: error: ‘Line’ has no member named ‘next’
sandy.c:820: error: ‘Line’ has no member named ‘next’
sandy.c:820: warning: assignment from incompatible pointer type
sandy.c: In function ‘i_lineno’:
sandy.c:828: error: ‘Line’ has no member named ‘next’
sandy.c:828: warning: assignment from incompatible pointer type
sandy.c: In function ‘i_mouse’:
sandy.c:834: warning: ISO C forbids nested functions
sandy.c:834: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘ev’
sandy.c:834: error: ‘ev’ undeclared (first use in this function)
sandy.c:834: warning: statement with no effect
sandy.c:836: warning: implicit declaration of function ‘getmouse’
sandy.c:836: error: ‘ERR’ undeclared (first use in this function)
sandy.c:836: warning: comparison between pointer and integer
sandy.c:837: warning: implicit declaration of function ‘wmouse_trafo’
sandy.c:837: error: ‘textwin’ undeclared (first use in this function)
sandy.c:837: error: request for member ‘y’ in something not a structure or union
sandy.c:837: error: request for member ‘x’ in something not a structure or union
sandy.c:837: error: ‘FALSE’ undeclared (first use in this function)
sandy.c:838: error: request for member ‘bstate’ in something not a structure or union
sandy.c:838: error: ‘REPORT_MOUSE_POSITION’ undeclared (first use in this function)
sandy.c:838: error: ‘BUTTON1_RELEASED’ undeclared (first use in this function)
sandy.c:838: error: invalid operands to binary | (have ‘const struct Key *’ and ‘const struct Key *’)
sandy.c:838: error: invalid operands to binary & (have ‘const struct Key *’ and ‘const struct Key *’)
sandy.c:839: error: request for member ‘x’ in something not a structure or union
sandy.c:839: error: request for member ‘y’ in something not a structure or union
sandy.c:839: warning: passing argument 1 of ‘i_scrtofpos’ makes integer from pointer without a cast
sandy.c:207: note: expected ‘int’ but argument is of type ‘const struct Key *’
sandy.c:839: warning: passing argument 2 of ‘i_scrtofpos’ makes integer from pointer without a cast
sandy.c:207: note: expected ‘int’ but argument is of type ‘const struct Key *’
sandy.c:840: error: request for member ‘bstate’ in something not a structure or union
sandy.c:840: error: invalid operands to binary & (have ‘const struct Key *’ and ‘const struct Key *’)
sandy.c:840: warning: implicit declaration of function ‘mousemask’
sandy.c:840: error: ‘defmmask’ undeclared (first use in this function)
sandy.c:844: error: request for member ‘bstate’ in something not a structure or union
sandy.c:844: error: ‘BUTTON1_CLICKED’ undeclared (first use in this function)
sandy.c:844: error: ‘BUTTON1_PRESSED’ undeclared (first use in this function)
sandy.c:844: error: invalid operands to binary | (have ‘const struct Key *’ and ‘const struct Key *’)
sandy.c:844: error: invalid operands to binary & (have ‘const struct Key *’ and ‘const struct Key *’)
sandy.c:845: error: request for member ‘x’ in something not a structure or union
sandy.c:845: error: request for member ‘y’ in something not a structure or union
sandy.c:845: warning: passing argument 1 of ‘i_scrtofpos’ makes integer from pointer without a cast
sandy.c:207: note: expected ‘int’ but argument is of type ‘const struct Key *’
sandy.c:845: warning: passing argument 2 of ‘i_scrtofpos’ makes integer from pointer without a cast
sandy.c:207: note: expected ‘int’ but argument is of type ‘const struct Key *’
sandy.c:846: error: request for member ‘bstate’ in something not a structure or union
sandy.c:846: error: invalid operands to binary & (have ‘const struct Key *’ and ‘const struct Key *’)
sandy.c:846: error: invalid operands to binary | (have ‘const struct Key *’ and ‘const struct Key *’)
sandy.c:847: error: request for member ‘bstate’ in something not a structure or union
sandy.c:847: error: ‘BUTTON1_DOUBLE_CLICKED’ undeclared (first use in this function)
sandy.c:847: error: invalid operands to binary & (have ‘const struct Key *’ and ‘const struct Key *’)
sandy.c:848: error: request for member ‘x’ in something not a structure or union
sandy.c:848: error: request for member ‘y’ in something not a structure or union
sandy.c:848: warning: passing argument 1 of ‘i_scrtofpos’ makes integer from pointer without a cast
sandy.c:207: note: expected ‘int’ but argument is of type ‘const struct Key *’
sandy.c:848: warning: passing argument 2 of ‘i_scrtofpos’ makes integer from pointer without a cast
sandy.c:207: note: expected ‘int’ but argument is of type ‘const struct Key *’
sandy.c:850: error: request for member ‘bstate’ in something not a structure or union
sandy.c:850: error: ‘BUTTON1_TRIPLE_CLICKED’ undeclared (first use in this function)
sandy.c:850: error: invalid operands to binary & (have ‘const struct Key *’ and ‘const struct Key *’)
sandy.c:851: error: request for member ‘x’ in something not a structure or union
sandy.c:851: error: request for member ‘y’ in something not a structure or union
sandy.c:851: warning: passing argument 1 of ‘i_scrtofpos’ makes integer from pointer without a cast
sandy.c:207: note: expected ‘int’ but argument is of type ‘const struct Key *’
sandy.c:851: warning: passing argument 2 of ‘i_scrtofpos’ makes integer from pointer without a cast
sandy.c:207: note: expected ‘int’ but argument is of type ‘const struct Key *’
sandy.c: In function ‘i_pipetext’:
sandy.c:895: warning: implicit declaration of function ‘t_rw’
sandy.c:896: error: ‘FALSE’ undeclared (first use in this function)
sandy.c:915: error: ‘TRUE’ undeclared (first use in this function)
sandy.c: In function ‘i_readfifo’:
sandy.c:961: error: ‘Command’ has no member named ‘test’
sandy.c:961: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:961: error: ‘Command’ has no member named ‘test’
sandy.c:961: error: called object ‘<erroneous-expression>[0]’ is not a function
sandy.c:962: error: ‘Command’ has no member named ‘test’
sandy.c:962: error: invalid operands to binary == (have ‘Key’ and ‘void *’)
sandy.c:962: error: ‘Command’ has no member named ‘test’
sandy.c:962: error: called object ‘<erroneous-expression>[1]’ is not a function
sandy.c:963: error: ‘Command’ has no member named ‘func’
sandy.c:963: error: called object ‘<erroneous-expression>’ is not a function
sandy.c:963: warning: statement with no effect
sandy.c: In function ‘i_resize’:
sandy.c:1025: warning: implicit declaration of function ‘doupdate’
sandy.c: In function ‘i_scrtofpos’:
sandy.c:1038: error: ‘titlewin’ undeclared (first use in this function)
sandy.c:1038: error: ‘Line’ has no member named ‘next’
sandy.c:1038: warning: assignment from incompatible pointer type
sandy.c:1045: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: At top level:
sandy.c:1056: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘i_setfindterm’
sandy.c: In function ‘i_setup’:
sandy.c:1103: warning: implicit declaration of function ‘initscr’
sandy.c:1104: warning: implicit declaration of function ‘has_colors’
sandy.c:1105: warning: implicit declaration of function ‘start_color’
sandy.c:1106: warning: implicit declaration of function ‘use_default_colors’
sandy.c:1109: warning: implicit declaration of function ‘init_pair’
sandy.c:1110: warning: implicit declaration of function ‘COLOR_PAIR’
sandy.c:1117: error: ‘LINES’ undeclared (first use in this function)
sandy.c:1117: warning: assignment makes integer from pointer without a cast
sandy.c:1118: error: ‘COLS’ undeclared (first use in this function)
sandy.c:1118: warning: assignment makes integer from pointer without a cast
sandy.c:1126: error: ‘Line’ has no member named ‘dirty’
sandy.c:1126: error: ‘FALSE’ undeclared (first use in this function)
sandy.c:1126: warning: statement with no effect
sandy.c:1128: error: ‘Line’ has no member named ‘next’
sandy.c:1128: warning: statement with no effect
sandy.c:1128: error: ‘Line’ has no member named ‘prev’
sandy.c:1128: warning: statement with no effect
sandy.c: In function ‘i_sortpos’:
sandy.c:1143: error: ‘Line’ has no member named ‘next’
sandy.c:1143: warning: assignment from incompatible pointer type
sandy.c: In function ‘i_termwininit’:
sandy.c:1166: warning: implicit declaration of function ‘raw’
sandy.c:1167: warning: implicit declaration of function ‘noecho’
sandy.c:1168: warning: implicit declaration of function ‘nl’
sandy.c:1169: error: ‘textwin’ undeclared (first use in this function)
sandy.c:1169: warning: implicit declaration of function ‘delwin’
sandy.c:1170: warning: implicit declaration of function ‘tigetflag’
sandy.c:1171: warning: implicit declaration of function ‘tigetstr’
sandy.c:1171: warning: assignment makes pointer from integer without a cast
sandy.c:1172: warning: assignment makes pointer from integer without a cast
sandy.c:1173: warning: implicit declaration of function ‘newwin’
sandy.c:1173: warning: statement with no effect
sandy.c:1175: error: ‘titlewin’ undeclared (first use in this function)
sandy.c:1176: warning: statement with no effect
sandy.c:1177: warning: implicit declaration of function ‘wattron’
sandy.c:1178: warning: statement with no effect
sandy.c:1180: warning: implicit declaration of function ‘idlok’
sandy.c:1180: error: ‘TRUE’ undeclared (first use in this function)
sandy.c:1181: warning: implicit declaration of function ‘keypad’
sandy.c:1182: warning: implicit declaration of function ‘meta’
sandy.c:1183: warning: implicit declaration of function ‘nodelay’
sandy.c:1183: error: ‘FALSE’ undeclared (first use in this function)
sandy.c:1185: warning: implicit declaration of function ‘curs_set’
sandy.c:1186: warning: implicit declaration of function ‘scrollok’
sandy.c:1187: warning: implicit declaration of function ‘intrflush’
sandy.c:1188: error: ‘defmmask’ undeclared (first use in this function)
sandy.c: In function ‘i_update’:
sandy.c:1197: warning: ISO C forbids nested functions
sandy.c:1197: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘selection’
sandy.c:1197: error: ‘selection’ undeclared (first use in this function)
sandy.c:1197: warning: statement with no effect
sandy.c:1207: error: ‘FALSE’ undeclared (first use in this function)
sandy.c:1207: error: ‘Line’ has no member named ‘prev’
sandy.c:1207: warning: assignment from incompatible pointer type
sandy.c:1207: warning: left-hand operand of comma expression has no effect
sandy.c:1207: warning: value computed is not used
sandy.c:1207: warning: value computed is not used
sandy.c:1207: error: ‘Line’ has no member named ‘prev’
sandy.c:1207: warning: assignment from incompatible pointer type
sandy.c:1209: warning: statement with no effect
sandy.c:1216: error: ‘Line’ has no member named ‘next’
sandy.c:1216: warning: assignment from incompatible pointer type
sandy.c:1219: error: ‘titlewin’ undeclared (first use in this function)
sandy.c:1219: error: ‘Line’ has no member named ‘next’
sandy.c:1222: warning: statement with no effect
sandy.c:1223: error: ‘Line’ has no member named ‘next’
sandy.c:1223: warning: assignment from incompatible pointer type
sandy.c:1238: error: ‘isutf8’ undeclared (first use in this function)
sandy.c:1244: error: ‘Line’ has no member named ‘dirty’
sandy.c:1246: error: ‘Line’ has no member named ‘dirty’
sandy.c:1246: warning: statement with no effect
sandy.c:1251: warning: implicit declaration of function ‘wmove’
sandy.c:1251: error: ‘textwin’ undeclared (first use in this function)
sandy.c:1253: warning: statement with no effect
sandy.c:1254: warning: statement with no effect
sandy.c:1269: warning: implicit declaration of function ‘wattrset’
sandy.c:1273: warning: implicit declaration of function ‘waddstr’
sandy.c:1279: warning: implicit declaration of function ‘unctrl’
sandy.c:1287: warning: implicit declaration of function ‘waddch’
sandy.c:1302: warning: statement with no effect
sandy.c:1303: error: ‘Line’ has no member named ‘next’
sandy.c:1303: warning: assignment from incompatible pointer type
sandy.c:1307: error: ‘Line’ has no member named ‘next’
sandy.c:1307: warning: assignment from incompatible pointer type
sandy.c:1327: warning: implicit declaration of function ‘t_mod’
sandy.c:1341: warning: implicit declaration of function ‘mvwaddnstr’
sandy.c:1343: warning: implicit declaration of function ‘putp’
sandy.c:1351: warning: implicit declaration of function ‘wnoutrefresh’
sandy.c: At top level:
sandy.c:1363: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘i_writefile’
sandy.c: In function ‘m_nextchar’:
sandy.c:1416: error: ‘isutf8’ undeclared (first use in this function)
sandy.c:1417: error: ‘Line’ has no member named ‘next’
sandy.c:1418: error: ‘Line’ has no member named ‘next’
sandy.c:1418: warning: assignment from incompatible pointer type
sandy.c: In function ‘m_prevchar’:
sandy.c:1428: error: ‘isutf8’ undeclared (first use in this function)
sandy.c:1429: error: ‘Line’ has no member named ‘prev’
sandy.c:1430: error: ‘Line’ has no member named ‘prev’
sandy.c:1430: warning: assignment from incompatible pointer type
sandy.c: In function ‘m_nextline’:
sandy.c:1461: error: ‘Line’ has no member named ‘next’
sandy.c:1462: error: ‘Line’ has no member named ‘next’
sandy.c:1462: warning: assignment from incompatible pointer type
sandy.c:1464: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: In function ‘m_prevline’:
sandy.c:1471: error: ‘Line’ has no member named ‘prev’
sandy.c:1472: error: ‘Line’ has no member named ‘prev’
sandy.c:1472: warning: assignment from incompatible pointer type
sandy.c:1474: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: In function ‘m_nextscr’:
sandy.c:1484: error: ‘titlewin’ undeclared (first use in this function)
sandy.c:1484: error: ‘Line’ has no member named ‘next’
sandy.c:1484: error: ‘Line’ has no member named ‘next’
sandy.c:1484: warning: assignment from incompatible pointer type
sandy.c:1487: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: In function ‘m_prevscr’:
sandy.c:1496: error: ‘titlewin’ undeclared (first use in this function)
sandy.c:1496: error: ‘Line’ has no member named ‘prev’
sandy.c:1496: error: ‘Line’ has no member named ‘prev’
sandy.c:1496: warning: assignment from incompatible pointer type
sandy.c:1499: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: In function ‘m_tomark’:
sandy.c:1512: error: ‘Line’ has no member named ‘next’
sandy.c:1512: warning: assignment from incompatible pointer type
sandy.c:1516: error: ‘isutf8’ undeclared (first use in this function)
sandy.c: At top level:
sandy.c:1528: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_bol’
sandy.c:1533: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_eol’
sandy.c:1538: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_mod’
sandy.c:1543: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_rw’
sandy.c:1548: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_redo’
sandy.c:1553: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_sel’
sandy.c:1558: error: expected ‘=’, ‘,’, ‘;’, ‘asm’ or ‘__attribute__’ before ‘t_undo’
sandy.c: In function ‘main’:
sandy.c:1574: error: ‘isutf8’ undeclared (first use in this function)
sandy.c:1574: warning: statement with no effect
make: *** [sandy.o] Error 1

Offline

#5 2011-04-07 00:13:52

rafunchi
Member
Registered: 2010-03-14
Posts: 16

Re: sandy - a simple ncurses text editor

gtklocker wrote:

Seems like a good idea to me. When I try to make clean install, I get a bunch of errors that keep me far from compiling it. Do you care to have a look?

Sure.

The main problem seems to be the lack of a curses.h file in you include dirs. Are you actually using Archlinux? Which version of ncurses are you linking against? If your ncurses package does not install a curses.h file, you can simply open sandy.c and change:

#include <curses.h>

for

#include <ncurses.h>

As sandy uses some routines specific to ncurses (though I have toyed with the idea of a pdcurses port), I'll change that in the hg tip too.

If you are using a different distro, you may also need to install the ncurses-devel package or something like that.


Incidentally, I tried bugging the #include line to see if I got the same error, but my gcc-4.5.2 stops compiling after a fatal error (Not such file or directory). I *do* get the rest of the errors if I comment the line out.

Is cc a link to gcc in your system (it is in my arch)? I have not tried with other compilers yet. If so, what version of gcc are you using? Even if the fix above works, this could improve sandy's portability, which is something I'm interested in.

Cheers,
Rafa.

Offline

#6 2011-04-12 23:55:02

rafunchi
Member
Registered: 2010-03-14
Posts: 16

Re: sandy - a simple ncurses text editor

I added a couple more syntax highlight regex sets I use (and java, which I try to avoid lately) to the hg tip.

All of them are based upon nano's example syntax files. They are not perfect, but get the job done. Actually nano's syntax rc files are a good starting point to define new syntaxes; you probably already have them at /usr/share/nano/

Offline

#7 2012-11-04 06:39:43

amadar
Banned
Registered: 2011-04-15
Posts: 147

Re: sandy - a simple ncurses text editor

This looks nice. I hope to see more progress on this. How do you enable the tabulation guidelines (the angle brackets) like in the screenshot?

Last edited by amadar (2012-11-04 06:56:32)

Offline

#8 2012-11-04 09:35:46

rafunchi
Member
Registered: 2010-03-14
Posts: 16

Re: sandy - a simple ncurses text editor

amadar wrote:

This looks nice. I hope to see more progress on this. How do you enable the tabulation guidelines (the angle brackets) like in the screenshot?

There is a setting in config.h called SHOW_NONPRINT. If it's 1, it defines some UTF8 strings to be printed when a TAB, space or newline is found (actually the newline one was never implemented). You can change those settings below (tabstr, spcstr, nlstr). The default to right angle brackets (0xC2BB), middle dot (0xC2B7) and dollar sign. If you customize your colors, they are printed in the SpcFG color below.

I hope this helps, I'd love to continue working on sandy but unfortunately I'm utterly busy ATM.
Rafa

Offline

#9 2012-11-08 13:22:07

aecepoglu
Member
Registered: 2012-09-05
Posts: 16
Website

Re: sandy - a simple ncurses text editor

My attempt at improving this lovely editor sadly failed last year.

As I remember from your emails rafunchi(Rafael If I'm not mistaken), features like paranthesis-matching and multi-line syntax colouring would work much better with rope format on strings.

Also, text colouring is sadly a task every application does on its own. There should be a layer above ncurses that deals with the coloring. mutt, less, sandy could all use the same coloring application.
Developer of a text editor wouldn't have to deal with writing a syntax highlighter for every language.

Perhaps I should look into that... Would anyone be interested?

Offline

#10 2012-11-08 13:32:54

jakobcreutzfeldt
Member
Registered: 2011-05-12
Posts: 1,033

Re: sandy - a simple ncurses text editor

I think you should probably be able to pipe the document through src-highlight and have it generate and return the same document with ANSI escape sequences filled in to do the highlighting.

Last edited by jakobcreutzfeldt (2012-11-08 13:33:27)

Offline

#11 2012-11-08 14:33:19

aecepoglu
Member
Registered: 2012-09-05
Posts: 16
Website

Re: sandy - a simple ncurses text editor

jakobcreutzfeldt wrote:

I think you should probably be able to pipe the document through src-highlight and have it generate and return the same document with ANSI escape sequences filled in to do the highlighting.

Yes, that is quite the sort of thing I am talking about.

I assume when ncurses directs the text (with ANSI sequences in it) to the terminal, it will still be colored.

This should work rather well, then. I may implement this next weekend.

The next issue to resolve was implementing features like "jump to matching paranthesis".

Anyway, I'll let people know here if there is any progress.

Offline

#12 2012-11-08 15:38:17

rafunchi
Member
Registered: 2010-03-14
Posts: 16

Re: sandy - a simple ncurses text editor

jakobcreutzfeldt wrote:

I think you should probably be able to pipe the document through src-highlight and have it generate and return the same document with ANSI escape sequences filled in to do the highlighting.

I actually tried this a while back. There were some problems when piping output directly to curses (damn curses) and placing the cursor, but those could have been worked out.

The real trouble here is.... performance. src-highlite pipes THE WHOLE text and produces an output (and a very nice one at that, with multi-line colouring and all). Just imagine piping the whole file with every key press and parsing it to find the corresponding part of the output. Or even worse... printing the whole screen full of ANSI codes again. Just the terminal load would be too much, no to mention forking a new process with every key.

Now, you could do a version of src-highlite that stayed on and kept receiving input. That COULD work, but you'd still have the pipe/print performance issue. An ideal version of src-highlite would start, parse the whole file and then accept new lines or changes to individual lines, just printing the changed output. Now that WOULD work, but AFAIK no such program exists. Also, you'd have to invent some kind of meta-language (possibly a unified patch would work) to notify where the changes are happening.

I once wondered about writing this program, but I doubt I'd make a good job. For one, I'd have to coordinate sandy with the new process and then the other process would have to keep the syntax pointers in memory, effectively duplicating sandy's mem usage in the worst case. To sum up, I though about it and considered inlining the syntax highlighter simpler. Which is sad, because sand'y way is "pipe out when possible".

Anyways, feel free to try. I'd be glad to include successful results upstream.

Offline

#13 2012-11-08 17:01:32

jakobcreutzfeldt
Member
Registered: 2011-05-12
Posts: 1,033

Re: sandy - a simple ncurses text editor

Interesting point. I haven't looked at source-highlight's code; I wonder, would it be possible to fork it and adapt it into a library?

Otherwise, there's no harm in not having real-time source highlighting. The user can just refresh it manually as they please. It's not ideal but I think that, given the mission of sandy to stay small and simple, the choice between "simple, one-line highlighting in real time" vs "better highlighting only on-demand" is not so bad, especially when until now only the former has been available.

Offline

#14 2012-11-09 09:49:39

aecepoglu
Member
Registered: 2012-09-05
Posts: 16
Website

Re: sandy - a simple ncurses text editor

Yes, this was the point where I gave up.

Unless you want to pipe the whole thing to the highlighter, you want to keep a track of where each block of interest(comments, strings etc) begin and end.
This means you need to implement a lexer inside the text editor, duplicating the work done in the highlighter. So you are sacrificing some minimalism in your app, you might aswell sacrifice some more and color it yourself, I thought.

That's what sandy does anyway; so I gave up on trying to change the highlighting approach.

Offline

#15 2012-11-13 20:15:18

Doomcide
Member
Registered: 2011-08-22
Posts: 221

Re: sandy - a simple ncurses text editor

Just wanted to state my interest in this. Line numbers would be great, too.

Offline

Board footer

Powered by FluxBB