ref: 73d9cb94c73a8c264cb3f6834828985bd15556d5
parent: eac2af266c6a009cee2d49dfb3e2165736ea6406
author: Sigrid Haflínudóttir <[email protected]>
date: Mon Oct 12 09:00:00 EDT 2020
search: fix cycle when on first/last element in the playlist
--- a/zuke.c
+++ b/zuke.c
@@ -763,7 +763,7 @@
return;
cycle = 1;
- for(i = pcur+inc; i >= 0 && i < plnum; i += inc){
+ for(i = pcur+inc; i >= 0 && i < plnum;){
m = getmeta(i);
for(a = 0; a < m->numartist; a++){
if(cistrstr(m->artist[a], buf) != nil)
@@ -775,18 +775,21 @@
break;
if(cistrstr(m->path, buf) != nil)
break;
- if(cycle && i+inc == -1){
- cycle = 0;
- i = plnum;
- }else if(cycle && i+inc == plnum){
- cycle = 0;
- i = -1;
- }
+onemore:
+ i += inc;
}
if(i >= 0 && i < plnum){
pcur = i;
recenter();
redraw(1);
+ }else if(cycle && i+inc < 0){
+ cycle = 0;
+ i = plnum;
+ goto onemore;
+ }else if(cycle && i+inc >= plnum){
+ cycle = 0;
+ i = -1;
+ goto onemore;
}
}