@ -28,14 +28,13 @@
/* enums */
/* enums */
enum { SchemeNorm , SchemeSel , SchemeOut , SchemeLast } ; /* color schemes */
enum { SchemeNorm , SchemeSel , SchemeOut , SchemeLast } ; /* color schemes */
typedef struct Item Item ;
struct item {
struct Item {
char * text ;
char * text ;
I tem * left , * right ;
struct i tem * left , * right ;
bool out ;
bool out ;
} ;
} ;
static void appenditem ( Item * , Item * * , I tem * * ) ;
static void appenditem ( struct item * , struct item * * , struct i tem * * ) ;
static void calcoffsets ( void ) ;
static void calcoffsets ( void ) ;
static char * cistrstr ( const char * , const char * ) ;
static char * cistrstr ( const char * , const char * ) ;
static void cleanup ( void ) ;
static void cleanup ( void ) ;
@ -56,9 +55,9 @@ static int bh, mw, mh;
static int sw , sh ; /* X display screen geometry width, height */
static int sw , sh ; /* X display screen geometry width, height */
static int inputw , promptw ;
static int inputw , promptw ;
static size_t cursor ;
static size_t cursor ;
static I tem * items = NULL ;
static struct i tem * items = NULL ;
static I tem * matches , * matchend ;
static struct i tem * matches , * matchend ;
static I tem * prev , * curr , * next , * sel ;
static struct i tem * prev , * curr , * next , * sel ;
static int mon = - 1 , screen ;
static int mon = - 1 , screen ;
static Atom clip , utf8 ;
static Atom clip , utf8 ;
@ -75,7 +74,7 @@ static int (*fstrncmp)(const char *, const char *, size_t) = strncmp;
static char * ( * fstrstr ) ( const char * , const char * ) = strstr ;
static char * ( * fstrstr ) ( const char * , const char * ) = strstr ;
static void
static void
appenditem ( I tem * item , I tem * * list , I tem * * last )
appenditem ( struct i tem * item , struct i tem * * list , struct i tem * * last )
{
{
if ( * last )
if ( * last )
( * last ) - > right = item ;
( * last ) - > right = item ;
@ -135,7 +134,7 @@ static void
drawmenu ( void )
drawmenu ( void )
{
{
int curpos ;
int curpos ;
I tem * item ;
struct i tem * item ;
int x = 0 , y = 0 , h = bh , w ;
int x = 0 , y = 0 , h = bh , w ;
drw_setscheme ( drw , & scheme [ SchemeNorm ] ) ;
drw_setscheme ( drw , & scheme [ SchemeNorm ] ) ;
@ -408,7 +407,7 @@ match(void)
char buf [ sizeof text ] , * s ;
char buf [ sizeof text ] , * s ;
int i , tokc = 0 ;
int i , tokc = 0 ;
size_t len ;
size_t len ;
I tem * item , * lprefix , * lsubstr , * prefixend , * substrend ;
struct i tem * item , * lprefix , * lsubstr , * prefixend , * substrend ;
strcpy ( buf , text ) ;
strcpy ( buf , text ) ;
/* separate input text into tokens to be matched individually */
/* separate input text into tokens to be matched individually */