After a while of thinking, I suspect that the a better algorithm
would be:

  int threedigits(char *buffer)
  {
    threedigits = isdigit(buffer[0]) && isdigit(buffer[0])
                  && isdigit(buffer[0]);
  }

//...
  while(TRUE)
  {
    get_next_answer(buffer);
    if (buffer[0] == '#') remove_first_char(buffer); // MS FTP fix
    if (threedigits(buffer, 0, 3) && buffer[3] == ' ') break;
  }
  process_answer(buffer);
//...

The most RFC-compliant code should store the three digits from the
beginning of the first line of the answer if the fourth character
is '-', and then compare whether the last line has the same digits at
the beginning (and report an error if not), but it would be required
with very crazy servers anyway ;-)

Michal

Reply via email to