Here is some detail about what is happening. For a server response like this
* 2219 FETCH (BODY[] {1932}
) the log should look like this:
retrieve response #<marker at 155669 in IMAP localhost 22:45:17> object #<buffer>"*" 155670 (atom 155669 155670) object #<buffer>"2219" 155675 (atom 155671 155675) object #<buffer>"FETCH" 155681 (atom 155676 155681) object #<buffer> object #<buffer>"BODY" 155687 (atom 155683 155687) object #<buffer> object #<buffer>155689 (close-bracket) 155689 (vector) object #<buffer> object #<buffer>"1932" 155695 (atom 155691 155695) object #<buffer>155696 (close-brace) object #<buffer>155698 (end-of-line) 157630 (string 155698 157630) object #<buffer>157631 (close-paren) 157631 (list (atom 155683 155687) (vector) (string 155698 157630))
Notice that after (close-brace), VM recognized (end-of-line)_and then read a string.
For a bad parse of this input:
* 2220 FETCH (BODY[] {1234}
MIME-Version: 1.0
......
the log looked like this:
retrieve response #<marker at 155701 in IMAP localhost 22:45:17> object #<buffer>"*" 155702 (atom 155701 155702) object #<buffer>"2220" 155707 (atom 155703 155707) object #<buffer>"FETCH" 155713 (atom 155708 155713) object #<buffer> object #<buffer>"BODY" 155719 (atom 155715 155719) object #<buffer> object #<buffer>155721 (close-bracket) 155721 (vector) object #<buffer>155723 (open-brace) object #<buffer>"12" "1234" 155727 (atom 155723 155727) object #<buffer>155728 (close-brace) object #<buffer>"MIME-Version:" 155743 (atom 155730 155743)
There was no (end-of-line) recognized after (close-brace). There was no error generated either (which should have arisen if there was actually no end-of-line). So, why didn' the end-of-line get logged?
Here is some detail about what is happening. For a server response like this
* 2219 FETCH (BODY[] {1932}
)
the log should look like this:
retrieve response #<marker at 155669 in IMAP localhost 22:45:17>
object #<buffer>"*" 155670 (atom 155669 155670)
object #<buffer>"2219" 155675 (atom 155671 155675)
object #<buffer>"FETCH" 155681 (atom 155676 155681)
object #<buffer>
object #<buffer>"BODY" 155687 (atom 155683 155687)
object #<buffer>
object #<buffer>155689 (close-bracket)
155689 (vector)
object #<buffer>
object #<buffer>"1932" 155695
(atom 155691 155695)
object #<buffer>155696 (close-brace)
object #<buffer>155698 (end-of-line)
157630 (string 155698 157630)
object #<buffer>157631 (close-paren)
157631
(list
(atom 155683 155687)
(vector)
(string 155698 157630))
Notice that after (close-brace), VM recognized (end-of-line)_and then read a string.
For a bad parse of this input:
* 2220 FETCH (BODY[] {1234}
MIME-Version: 1.0
......
the log looked like this:
retrieve response #<marker at 155701 in IMAP localhost 22:45:17> "MIME-Version: " 155743 (atom 155730 155743)
object #<buffer>"*" 155702 (atom 155701 155702)
object #<buffer>"2220" 155707 (atom 155703 155707)
object #<buffer>"FETCH" 155713 (atom 155708 155713)
object #<buffer>
object #<buffer>"BODY" 155719 (atom 155715 155719)
object #<buffer>
object #<buffer>155721 (close-bracket)
155721 (vector)
object #<buffer>155723 (open-brace)
object #<buffer>"12" "1234" 155727 (atom 155723 155727)
object #<buffer>155728 (close-brace)
object #<buffer>
There was no (end-of-line) recognized after (close-brace). There was no error generated either (which should have arisen if there was actually no end-of-line). So, why didn' the end-of-line get logged?