summary |
shortlog |
log |
commit | commitdiff |
tree
raw |
patch |
inline | side by side (from parent 1:
256ad62)
Test just once before the loop and define start, end, and increment.
Keep going whilst start is not end. Happy for underflow or overflow in
calculating end because msgnum will make the same transition. It can't
affect whether the loop runs at all since 0 is not a valid message
number.
register FILE *fp;
int debug = 0;
int reverse = 0;
register FILE *fp;
int debug = 0;
int reverse = 0;
if (nmh_init(argv[0], 1)) { return 1; }
if (nmh_init(argv[0], 1)) { return 1; }
* match. If there is NOT a match, then add it to a list to
* remove from the final sequence (it will make sense later)
*/
* match. If there is NOT a match, then add it to a list to
* remove from the final sequence (it will make sense later)
*/
- for (msgnum = reverse ? mp->hghsel : mp->lowsel;
- reverse ? msgnum >= mp->lowsel : msgnum <= mp->hghsel;
- msgnum += reverse ? -1 : 1) {
+ if (!reverse) { /* Overflow or underflow is fine. */
+ start = mp->lowsel;
+ end = mp->hghsel + 1;
+ inc = 1;
+ } else {
+ start = mp->hghsel;
+ end = mp->lowsel - 1;
+ inc = -1;
+ }
+ for (msgnum = start; msgnum != end; msgnum += inc) {
if (is_selected (mp, msgnum)) {
if ((fp = fopen (cp = m_name (msgnum), "r")) == NULL)
admonish (cp, "unable to read message");
if (is_selected (mp, msgnum)) {
if ((fp = fopen (cp = m_name (msgnum), "r")) == NULL)
admonish (cp, "unable to read message");