#1336 DESCRIPT.ION incorrectly rendered


According to the DESCRIPT.ION descfile.txt from JPSoft, the description only consists of everything until the carriage return OR until the 0x04 character indicates following private information date. Your current software 7-Zip 9.20 ignores the control character 0x04. so it displays illegal data on the screen. Please stop at CR or 0x04 character to define the description to display (my software use private information to write extended information).

Included is the original JPSoft descfile.txt specification as well as a screenshot of the output data of 7-Zip.


  • Carl Eric Codere

    Sorry could not add other attachment, included in this comment is the extract of the DESCRIPT.ION specification:

    echnical Note -- Using DESCRIPT.ION

    4DOS uses the file DESCRIPT.ION to store file descriptions. This file
    is created as a hidden file in each subdirectory which has descriptions,
    and deleted when all descriptions are removed or when all files with
    descriptions are deleted. If you remove the hidden attribute from the
    file, 4DOS will not hide it again.

    Your programs can access DESCRIPT.ION to create, retrieve, or modify
    file descriptions, and to store other information. DESCRIPT.ION has one
    line per file, and is unsorted. Each line is in the following format:

    filename.ext Description[*<ID>Other program info]...<CR>

    There is normally one space between the description and filename but
    additional spaces may be used in future versions of 4DOS. The
    characters after the description allow extension of the description
    format for use by other programs. They are as follows:

    * is an ASCII Ctrl-D (04), and marks the end of the description
    text and the beginning of information for a program other than
    4DOS. This symbol can appear multiple times on each line; each
    occurrence marks the beginning of information for another program.

    <ID> is an identification byte for the program which is using this
    area of the particular line. If you are writing a program which
    will store information in DESCRIPT.ION, test it using an ID byte of
    your own choosing. When you are ready to release the program,
    contact JP Software and we will provide you with an ID byte value
    that is not in use by others to the best of our knowledge.

    Other program info is any text the program wishes to store in its
    area of the line. The text should relate specifically to the file
    named on the line. It may not contain the Ctrl-D character,
    carriage returns, line feeds, or nulls (ASCII 0s).

    4DOS will copy, delete, or move all the information on a line in
    DESCRIPT.ION, including information owned by other programs, when
    performing the same action on the corresponding file. 4DOS will also
    change the name if a file is renamed. To support DESCRIPT.ION properly,
    your program must do the same if it copies, deletes, moves, or renames
    files. Take care not to remove information which does not belong to
    your program, or delete lines which contain information for other
    programs. Your program should be able to handle a line terminated by a
    CR or LF alone, a CR/LF pair, an EOF (ASCII 26), or the physical end of
    the file. The lines it creates should be terminated with CR / LF. The
    line length limit is 4096 bytes; exceeding this limit will cause
    unpredictable results.

  • Igor Pavlov

    Igor Pavlov - 2012-11-10
    • status: open --> open-later
  • Igor Pavlov

    Igor Pavlov - 2012-11-10

    I'll check it in future.
    Can you attach some complex description.ion file example?

  • Carl Eric Codere

    Add complex example of Description file

  • Carl Eric Codere

    I have included a sample complex DESCRIPT.ION file, normally when moving or copying files all the contents should be moved including the proprietary information, also if 7-zip includes this in the zip comment, I am not sure what should be the correct behavior.

  • Igor Pavlov

    Igor Pavlov - 2012-11-13

    I've changed my code.
    So it will work in next version.

  • Igor Pavlov

    Igor Pavlov - 2012-11-13
    • status: open-later --> open-fixed
  • Michael Barber

    Michael Barber - 2014-12-01

    Here is a patch for the version 9.22 source code that will fix the issue if anyone would like to correct their current version.


Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:

JavaScript is required for this form.

No, thanks