/*
 * Copyright (C) 2008 Nir Tzachar <nir.tzachar@gmail.com?
 * Released under the terms of the GNU GPL v2.0.
 *
 * Derived from menuconfig.
 *
 */

#include <ctype.h>
#include <errno.h>
#include <fcntl.h>
#include <limits.h>
#include <stdarg.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <locale.h>
#include <curses.h>
#include <menu.h>
#include <panel.h>
#include <form.h>

#include <stdio.h>
#include <time.h>
#include <sys/time.h>

#include "ncurses.h"

#define max(a, b) ({\
		typeof(a) _a = a;\
		typeof(b) _b = b;\
		_a > _b ? _a : _b; })

#define min(a, b) ({\
		typeof(a) _a = a;\
		typeof(b) _b = b;\
		_a < _b ? _a : _b; })

typedef enum {
	NORMAL = 1,
	MAIN_HEADING,
	MAIN_MENU_BOX,
	MAIN_MENU_FORE,
	MAIN_MENU_BACK,
	MAIN_MENU_GREY,
	MAIN_MENU_HEADING,
	SCROLLWIN_TEXT,
	SCROLLWIN_HEADING,
	SCROLLWIN_BOX,
	DIALOG_TEXT,
	DIALOG_MENU_FORE,
	DIALOG_MENU_BACK,
	DIALOG_BOX,
	INPUT_BOX,
	INPUT_HEADING,
	INPUT_TEXT,
	INPUT_FIELD,
	FUNCTION_TEXT,
	FUNCTION_HIGHLIGHT,
	ATTR_MAX
} attributes_t;
extern attributes_t attributes[];

typedef enum {
	F_HELP = 1,
	F_SYMBOL = 2,
	F_INSTS = 3,
	F_CONF = 4,
	F_BACK = 5,
	F_SAVE = 6,
	F_LOAD = 7,
	F_SEARCH = 8,
	F_EXIT = 9,
} function_key;

void set_colors(void);

/* this changes the windows attributes !!! */
void print_in_middle(WINDOW *win,
		int starty,
		int startx,
		int width,
		const char *string,
		chtype color);
int get_line_length(const char *line);
int get_line_no(const char *text);
const char *get_line(const char *text, int line_no);
void fill_window(WINDOW *win, const char *text);
int btn_dialog(WINDOW *main_window, const char *msg, int btn_num, ...);
int dialog_inputbox(WINDOW *main_window,
		const char *title, const char *prompt,
		const char *init, char **resultp, int *result_len);
void refresh_all_windows(WINDOW *main_window);
void show_scroll_win(WINDOW *main_window,
		const char *title,
		const char *text);
;id=54a07c7bb0da0343734c78212bbe9f3735394962'>tree</a><a class='active' href='/cgit.cgi/linux/net-next.git/commit/fs/adfs/dir_f.c?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/fs/adfs/dir_f.c?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/fs/adfs/dir_f.c'>
<input type='hidden' name='h' value='nds-private-remove'/><input type='hidden' name='id' value='54a07c7bb0da0343734c78212bbe9f3735394962'/><select name='qt'>
<option value='grep'>log msg</option>
<option value='author'>author</option>
<option value='committer'>committer</option>
<option value='range'>range</option>
</select>
<input class='txt' type='search' size='10' name='q' value=''/>
<input type='submit' value='search'/>
</form>
</td></tr></table>
<div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/commit/?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>root</a>/<a href='/cgit.cgi/linux/net-next.git/commit/fs?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>fs</a>/<a href='/cgit.cgi/linux/net-next.git/commit/fs/adfs?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>adfs</a>/<a href='/cgit.cgi/linux/net-next.git/commit/fs/adfs/dir_f.c?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>dir_f.c</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='h' value='nds-private-remove'/><input type='hidden' name='id' value='54a07c7bb0da0343734c78212bbe9f3735394962'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'>
<tr><th>author</th><td>Dave Airlie &lt;airlied@redhat.com&gt;</td><td class='right'>2017-01-26 06:44:03 +1000</td></tr>
<tr><th>committer</th><td>Dave Airlie &lt;airlied@redhat.com&gt;</td><td class='right'>2017-01-26 06:44:03 +1000</td></tr>
<tr><th>commit</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/fs/adfs/dir_f.c?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>54a07c7bb0da0343734c78212bbe9f3735394962</a> (<a href='/cgit.cgi/linux/net-next.git/patch/fs/adfs/dir_f.c?id=54a07c7bb0da0343734c78212bbe9f3735394962'>patch</a>)</td></tr>
<tr><th>tree</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/tree/?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>714efff4608ddc0dda7dc85ca82ae98e2c58b52c</a> /<a href='/cgit.cgi/linux/net-next.git/tree/fs/adfs/dir_f.c?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>fs/adfs/dir_f.c</a></td></tr>
<tr><th>parent</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/fs/adfs/dir_f.c?h=nds-private-remove&amp;id=932790109f62aa52bdb4bb62aa66653c0b51bc75'>932790109f62aa52bdb4bb62aa66653c0b51bc75</a> (<a href='/cgit.cgi/linux/net-next.git/diff/fs/adfs/dir_f.c?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962&amp;id2=932790109f62aa52bdb4bb62aa66653c0b51bc75'>diff</a>)</td></tr></table>
<div class='commit-subject'>Revert "drm/probe-helpers: Drop locking from poll_enable"</div><div class='commit-msg'>This reverts commit 3846fd9b86001bea171943cc3bb9222cb6da6b42.

There were some precursor commits missing for this around connector
locking, we should probably merge Lyude's nouveau avoid the problem patch.
</div><div class='diffstat-header'><a href='/cgit.cgi/linux/net-next.git/diff/?h=nds-private-remove&amp;id=54a07c7bb0da0343734c78212bbe9f3735394962'>Diffstat</a> (limited to 'fs/adfs/dir_f.c')</div><table summary='diffstat' class='diffstat'>