comparison menu.c @ 7:49e2fc9fb94f

new stuff
author Anselm R. Garbe <garbeam@wmii.de>
date Tue, 11 Jul 2006 11:27:56 +0200
parents e0cefb3981c8
children d567f430a81d
comparison
equal deleted inserted replaced
6:e0cefb3981c8 7:49e2fc9fb94f
32 static Window root; 32 static Window root;
33 static Window win; 33 static Window win;
34 static XRectangle rect; 34 static XRectangle rect;
35 static Bool done = False; 35 static Bool done = False;
36 36
37 static Item *allitem = 0; /* first of all items */ 37 static Item *allitem = NULL; /* first of all items */
38 static Item *item = 0; /* first of pattern matching items */ 38 static Item *item = NULL; /* first of pattern matching items */
39 static Item *sel = 0; 39 static Item *sel = NULL;
40 static Item *nextoff = 0; 40 static Item *nextoff = NULL;
41 static Item *prevoff = 0; 41 static Item *prevoff = NULL;
42 static Item *curroff = 0; 42 static Item *curroff = NULL;
43 43
44 static int screen; 44 static int screen;
45 static char *title = 0; 45 static char *title = NULL;
46 static char text[4096]; 46 static char text[4096];
47 static int ret = 0; 47 static int ret = 0;
48 static int nitem = 0; 48 static int nitem = 0;
49 static unsigned int cmdw = 0; 49 static unsigned int cmdw = 0;
50 static unsigned int twidth = 0; 50 static unsigned int twidth = 0;
105 if(!title || *pattern) 105 if(!title || *pattern)
106 cmdw = cwidth; 106 cmdw = cwidth;
107 else 107 else
108 cmdw = twidth; 108 cmdw = twidth;
109 109
110 item = j = 0; 110 item = j = NULL;
111 nitem = 0; 111 nitem = 0;
112 112
113 for(i = allitem; i; i=i->next) 113 for(i = allitem; i; i=i->next)
114 if(!plen || !strncmp(pattern, i->text, plen)) { 114 if(!plen || !strncmp(pattern, i->text, plen)) {
115 if(!j) 115 if(!j)
116 item = i; 116 item = i;
117 else 117 else
118 j->right = i; 118 j->right = i;
119 i->left = j; 119 i->left = j;
120 i->right = 0; 120 i->right = NULL;
121 j = i; 121 j = i;
122 nitem++; 122 nitem++;
123 } 123 }
124 for(i = allitem; i; i=i->next) 124 for(i = allitem; i; i=i->next)
125 if(plen && strncmp(pattern, i->text, plen) 125 if(plen && strncmp(pattern, i->text, plen)
127 if(!j) 127 if(!j)
128 item = i; 128 item = i;
129 else 129 else
130 j->right = i; 130 j->right = i;
131 i->left = j; 131 i->left = j;
132 i->right = 0; 132 i->right = NULL;
133 j = i; 133 j = i;
134 nitem++; 134 nitem++;
135 } 135 }
136 136
137 curroff = prevoff = nextoff = sel = item; 137 curroff = prevoff = nextoff = sel = item;
317 } 317 }
318 318
319 static char * 319 static char *
320 read_allitems() 320 read_allitems()
321 { 321 {
322 static char *maxname = 0; 322 static char *maxname = NULL;
323 char *p, buf[1024]; 323 char *p, buf[1024];
324 unsigned int len = 0, max = 0; 324 unsigned int len = 0, max = 0;
325 Item *i, *new; 325 Item *i, *new;
326 326
327 i = 0; 327 i = 0;
334 maxname = p; 334 maxname = p;
335 max = len; 335 max = len;
336 } 336 }
337 337
338 new = emalloc(sizeof(Item)); 338 new = emalloc(sizeof(Item));
339 new->next = new->left = new->right = 0; 339 new->next = new->left = new->right = NULL;
340 new->text = p; 340 new->text = p;
341 if(!i) 341 if(!i)
342 allitem = new; 342 allitem = new;
343 else 343 else
344 i->next = new; 344 i->next = new;