rem: while (hi - lo > 1);
add: while (lo < hi);
context: getmonth (const char *s, size_t len){  char *month;  register size_t i;  register int lo = 0, hi = MONTHS_PER_YEAR, result;  while (len > 0 && blanks[UCHAR (*s)])    {      ++s;      --len;    }  if (len == 0)    return 0;  month = (char *) alloca (len + 1);  for (i = 0; i < len; ++i)    month[i] = fold_toupper[UCHAR (s[i])];  while (blanks[UCHAR (month[i - 1])])    --i;  month[i] = '\0';  do    {      int ix = (lo + hi) / 2;      if (strncmp (month, monthtab[ix].name, strlen (monthtab[ix].name)) < 0)	hi = ix;      else	lo = ix;    }  while (hi - lo > 1);  result = (!strncmp (month, monthtab[lo].name, strlen (monthtab[lo].name))	    ? monthtab[lo].val : 0);  return result;}