- i = buffy_lookup (s);
- c = i == Incoming->length-1 ? 0 : i+1;
- while (((BUFFY*) Incoming->data[c])->new <= 0) {
- c = (c+1) % Incoming->length;
- if (c == i)
- break; /* tried all once */
+ /*
+ * If buffy_lookup returns the index,
+ * or -1 if not found (-1..Incoming->length-1);
+ * plus one --> (0..Incoming->length).
+ * Modulo mapps it into the correct range.
+ */
+ i = 1 + buffy_lookup (s);
+ for (l=0; l < Incoming->length; l++) {
+ c = (l+i) % Incoming->length;
+ if ((!Context || !Context->path || !str_eq (((BUFFY*) Incoming->data[c])->path, Context->path)) &&
+ ((BUFFY*) Incoming->data[c])->new > 0)
+ break;