tuit

toolbox pour des tui - retour accueil

git clone git://bebou.netlib.re/tuit

Log | Files | Refs |

commit d04c03a7c523fbe85a522c5989c31e378b276abc
parent c99c11b1a70c4cb42c33df353e129b97f20b56fb
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Thu, 12 Jun 2025 22:25:19 +0200

list -> all, count -> allcount

Diffstat:
Mchoose.c | 44++++++++++++++++++++++----------------------
1 file changed, 22 insertions(+), 22 deletions(-)

diff --git a/choose.c b/choose.c @@ -9,18 +9,18 @@ int max(int a, int b) { return a > b ? a : b; } int min(int a, int b) { return a < b ? a : b; } int main(int argc, char **argv) { - int curelem=0; int count=0; int start=0; + int curelem=0; int allcount=0; int start=0; int curline=2; char line[ELEM_SIZE]; char search[ELEM_SIZE]; - char **list; + char **all; while (fgets(line, sizeof(line), stdin)) { if(strlen(line)==1) continue; - list=realloc(list,(count+1)*sizeof(void*)); - list[count] = malloc(ELEM_SIZE); - strcpy(list[count], line); - count++; + all=realloc(all,(allcount+1)*sizeof(void*)); + all[allcount] = malloc(ELEM_SIZE); + strcpy(all[allcount], line); + allcount++; } tb_init(); @@ -28,9 +28,9 @@ int main(int argc, char **argv) { tb_set_input_mode(TB_INPUT_ESC | TB_INPUT_MOUSE); struct tb_event ev; char buf[7]; buf[0]='\0'; - signed int filtered[count+1]; - filtered[count]=-1; - for (int i=0;i<count;i++) filtered[i]=i; + signed int filtered[allcount+1]; + filtered[allcount]=-1; + for (int i=0;i<allcount;i++) filtered[i]=i; while(1) { tb_clear(); @@ -39,9 +39,9 @@ int main(int argc, char **argv) { for (int i=0;i<tb_height();i++) { if(filtered[i+start]==-1) break; if (i==curline-2) - tb_printf(0,y++,TB_BLACK,TB_WHITE,"> %s",list[filtered[i+start]]); + tb_printf(0,y++,TB_BLACK,TB_WHITE,"> %s",all[filtered[i+start]]); else - tb_printf(0,y++,TB_DEFAULT,TB_DEFAULT," %s",list[filtered[i+start]]); + tb_printf(0,y++,TB_DEFAULT,TB_DEFAULT," %s",all[filtered[i+start]]); } tb_present(); tb_poll_event(&ev); @@ -51,7 +51,7 @@ int main(int argc, char **argv) { /* enter */ case 13: tb_shutdown(); - printf("%s",list[curelem]); + printf("%s",all[curelem]); return 0; /* esc */ case 27: @@ -66,7 +66,7 @@ int main(int argc, char **argv) { /* down */ case 65516: if(curline==tb_height()) start=start+1; - curline=min(count+1,min(tb_height(),curline+1)); + curline=min(allcount+1,min(tb_height(),curline+1)); curelem=filtered[curline+start-2]; break; /* pageup and pagedown */ @@ -77,19 +77,19 @@ int main(int argc, char **argv) { } else start=curelem=0; break; case 65518: - if(start+2*tb_height()<count) { + if(start+2*tb_height()<allcount) { start=start+tb_height(); curelem=curelem+tb_height(); } else { - start=max(0,count-tb_height()); - curelem=count-1; + start=max(0,allcount-tb_height()); + curelem=allcount-1; } break; case 0: buf[tb_utf8_unicode_to_char(buf, ev.ch)] = '\0'; start=0; int j=0; - for (int i=0;i<count;i++) - if (strchr(list[i],buf[0])) { filtered[j]=i; j++; } + for (int i=0;i<allcount;i++) + if (strchr(all[i],buf[0])) { filtered[j]=i; j++; } filtered[j]=-1; curline=2; curelem=filtered[0]; @@ -100,14 +100,14 @@ int main(int argc, char **argv) { case 3: /*Mouse*/ switch(ev.key) { case 65512: /*MouseLeft*/ - curline=min(ev.y,count)+1; + curline=min(ev.y,allcount)+1; curelem=filtered[curline+start-2]; break; case 65511: /*MouseRight*/ - curline=min(ev.y,count)+1; + curline=min(ev.y,allcount)+1; curelem=filtered[curline+start-2]; tb_shutdown(); - printf("%s",list[curelem]); + printf("%s",all[curelem]); return 0; case 65508: /*MouseWheelUp*/ if(curline==2) start=max(0,start-1); @@ -116,7 +116,7 @@ int main(int argc, char **argv) { break; case 65507: /*MouseWheelDown*/ if(curline==tb_height()) start=start+1; - curline=min(count+1,min(tb_height(),curline+1)); + curline=min(allcount+1,min(tb_height(),curline+1)); curelem=filtered[curline+start-2]; break; }