def retrlines(cmd) # :yield: line
      synchronize do
	with_binary(false) do
          conn = transfercmd(cmd)
          loop do
            line = conn.gets
            break if line == nil
            if line[-2, 2] == CRLF
              line = line[0 .. -3]
            elsif line[-1] == ?\n
              line = line[0 .. -2]
            end
            yield(line)
          end
          conn.close
          voidresp
        end
      end
    end
def retrlines(cmd) # :yield: line
      synchronize do
	with_binary(false) do
          conn = transfercmd(cmd)
          loop do
            line = conn.gets
            break if line == nil
            if line[-2, 2] == CRLF
              line = line[0 .. -3]
            elsif line[-1] == ?\n
              line = line[0 .. -2]
            end
            yield(line)
          end
          conn.close
          voidresp
        end
      end
    end
Puts the connection into ASCII (text) mode, issues the given command, and
 passes the resulting data, one line at a time, to the associated block. If
 no block is given, prints the lines. Note that +cmd+ is a server command
 (such as "RETR myfile").