MS-OXRTFEX - Errors in the documentation RRS feed

  • Question

  • I recently built an implementation of the RTF compression algorithm detailed in OX-MSRTFCP. In doing so, I found that OX-MSRTFEX had a very handy table in section 3.2 showing a string of RTF text along with a hex string showing the expected compressed output. However, there's a discrepancy between the two. In the RTF text, there's a line "Let's have another attachment\par". In the compressed output, it's "Lets have another attachment\par". The apostrophe in "Let's" is not present when the output is decompressed and it causes a mismatch between the expected output and the actual output when compressed. This should be corrected. In addition, it may also be beneficial to indicate exactly where the carriage returns/line breaks are present in the text, perhaps using <CR> and <LF> as the MSRTFCP document does when detailing the dictionary. It's not readily apparent (some are line breaks due only to spaces and layout, not because of a CR/LF) and copy/paste does not always carry them over, potentially varying based on OS and/or the software used.

    In addition, I did find something that may not necessarily be an error per se, but may throw some off. It could also be a difference in my own implementation. The text "\par<CR><LF>\objattph\'20\par" appears three times in the given string. When compressing the final instance of this string, the given compressed output references the second occurrence of that string, whereas my own implementation references the first occurrence. It doesn't change the output when the data is decompressed, but if one was checking their own compressed output against the given output, it can throw folks off a bit. It would stand to reason that the algorithm would choose the first occurrence of that string in the dictionary and the documentation would seem to support that. I realize it's a bit of a quibble, but that is a potential snag for those trying to use that data to test a compression/decompression implementation.

    Monday, December 30, 2013 5:35 PM


All replies

  • Hi

    I have alerted the open specifications team regarding your query. A member of the team will be in touch soon.

    Regards, Obaid Farooqi

    Monday, December 30, 2013 6:08 PM
  • Hi Someone's Dev Account,

    Thank you for the detailed feedback on [MS-OXRTFEX] 3.2.  To summarize, here are the three problems that we should address:

    1) Discrepancy between "Let's" in the input string and "Lets" in the compressed output string shown in the table (i.e. in row: PidTagRtfCompressed ([MSOXCMSG] section contents)

    2) Helpful addition of <CR>/<LF> designators in the value for that same row as is done in [MS-OXRTFCP]

    3) Correct the compressed output in the sample to follow the compression algorithm so that the 3rd occurrence of "\par<CR><LF>\objattph\'20\par" references the 1st occurrence in the dictionary, providing a less obstructed reading and easier understanding of the example section while implementing.

    Are these correct? If so, I will submit these to have the document updated appropriately.

    Best regards,
    Tom Jebo
    Escalation Engineer
    Microsoft Open Specifications 

    Monday, December 30, 2013 8:42 PM
  • Tom,

    Thanks, that sums it up quite well, although #3 may or may not be a valid error. I'm not 100% certain on that, but it appears to be so.

    Tuesday, December 31, 2013 12:23 AM
  • I've filed a bug to get these items addressed. Again, thank you very much for bringing these to our attention.


    Thursday, January 2, 2014 7:29 PM