tuit

toolbox pour des tui - retour accueil

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

Log | Files | Refs |

commit d28ca5024c410c37a24d5cb73cf00d8baadcb1e3
parent 7c346c96aa7d34b87b31d6e1bb4d384e7ead28a8
Auteurice: Arthur Pons <arthur.pons@unistra.fr>
Date:   Wed, 11 Jun 2025 23:27:12 +0200

Début de correction bug affichage petites listes

Après ce qui a été selec avec une recherche on continuait à afficher
tout le reste de ishown même quand ça contenait le contenu de l'init
Maintenant on met un -1 là où faut s'arrêter

Aussi, on gérait plus (et pas encore) les petits listes qui vont pas
jusqu'en bas de l'écran

Diffstat:
Mchoose.c | 7+++++--
1 file changed, 5 insertions(+), 2 deletions(-)

diff --git a/choose.c b/choose.c @@ -28,7 +28,8 @@ 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'; - int ishown[count]; + signed int ishown[count+1]; + ishown[count]=-1; for (int i=0;i<count;i++) ishown[i]=i; while(1) { @@ -36,6 +37,7 @@ int main(int argc, char **argv) { tb_printf(0,0,TB_DEFAULT,TB_DEFAULT,"> %s",buf); int j=1; for (int i=0;i<tb_height();i++) { + if(ishown[i+start]==-1) break; if (i==curline-2) tb_printf(0,j++,TB_BLACK,TB_WHITE,"> %s",list[ishown[i+start]]); else @@ -64,7 +66,7 @@ int main(int argc, char **argv) { /* down */ case 65516: if(curline==tb_height()) start=start+1; - curline=min(tb_height(),curline+1); + curline=min(count+1,min(tb_height(),curline+1)); curelem=ishown[curline+start-2]; break; /* pageup and pagedown */ @@ -88,6 +90,7 @@ int main(int argc, char **argv) { start=0; int j=0; for (int i=0;i<count;i++) if (strchr(list[i],buf[0])) { ishown[j]=i; j++; } + ishown[j]=-1; curline=2; curelem=ishown[0]; default: