@@ -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 I tem *matches, *matchend;
static I tem *prev, *curr, *next, *sel;
static struct i tem *items = NULL;
static struct i tem *matches, *matchend;
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(Item *item, Item **list, I tem **last)
appenditem(struct item *item, struct item **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 */