X-Git-Url: http://git.scottworley.com/picsort/blobdiff_plain/b11d9c69e1dd6e101895d14c8805f664a38e7ca9..755cf903798da9f7772c504f01af9e6fdd388052:/picsorter.js diff --git a/picsorter.js b/picsorter.js index cf2c399..ec63cbc 100644 --- a/picsorter.js +++ b/picsorter.js @@ -59,9 +59,23 @@ function toggle_zoom() { function move_by_filter(direction, filter) { // Keep moving in direction until filter is satisfied - do { - input_index += direction; - } while (!filter()); + var new_index = input_index; + while (true) { + var next = new_index + direction; + if (next < 0) { + say("At beginning"); + return; + } + if (next >= files.length) { + say("At end"); + return; + } + new_index = next; + if (filter(new_index)) { + break; + } + } + input_index = new_index; say(input_index + " " + (picinfo[files[input_index]].name || "")); setpic(); } @@ -69,13 +83,13 @@ function move(direction) { move_by_filter(direction, function() { return true; }); } function move_to_nondeleted(direction) { - move_by_filter(direction, function() { - return !("deleted" in picinfo[files[input_index]]); }); + move_by_filter(direction, function(i) { + return !("deleted" in picinfo[files[i]]); }); } function move_to_unnamed(direction) { - move_by_filter(direction, function() { - return !("deleted" in picinfo[files[input_index]]) && - !("name" in picinfo[files[input_index]]); }); + move_by_filter(direction, function(i) { + return !("deleted" in picinfo[files[i]]) && + !("name" in picinfo[files[i]]); }); } function mark_deleted() {