"SfR Fresh" - the SfR Freeware/Shareware Archive

Member "lha-114i/header.doc.euc" of archive lha-114i.tar.gz:


As a special service "SfR Fresh" has tried to format the requested source page into HTML format using source code syntax highlighting with prefixed line numbers. Alternatively you can here view or download the uninterpreted source code file. That can be also achieved for any archive member file by clicking within an archive contents listing on the first character of the file(path) respectively on the according byte size field.
    1 /* header.doc (In Japanese) */
    2 LHa for UNIX で使用されるヘッダ構造について	Mar. 2, 1992, Masaru Oki.
    3 
    4 ----------------------------------------------------------------
    5     本バージョンでは過渡的な措置として3種類のヘッダ形式を用意し、level-1
    6   を既定値としていますが、将来的にはパス名の文字数に制限のない level-2に
    7   統一する方針です。
    8 
    9 
   10   A. ヘッダの仕様
   11 
   12 -----------------------------------------------------------------------------
   13         level-0                 level-1                 level-2
   14 -----------------------------------------------------------------------------
   15       1 header size           1 header size           2 total header size
   16       1 header sum            1 header sum
   17       5 method ID             5 method ID             5 method ID
   18 基    4 packed size           4 skip size             4 packed size
   19       4 original size         4 original size         4 original size
   20 本    2 time                  2 time                  4 time(UNIX type)
   21       2 date                  2 date
   22 部    1 attribute             1 0x20                  1 RESERVED
   23       1 level 0x00            1 level 0x01            1 level 0x02
   24 分    1 name length           1 name length
   25       ? pathname              ? filename
   26       2 file crc              2 file crc              2 file crc
   27       . ........              1 OS ID 'U'             1 OS ID 'U'
   28                               . ........
   29                               2 next-header size      2 next-header size
   30     *************************************************************************
   31      24 + ?                  27 + ?                  26
   32 -----------------------------------------------------------------------------
   33 拡                            1 ext-type              1 ext-type
   34 張                            . ........              . ........
   35 部                            2 next-header size      2 next-header size
   36    37 -----------------------------------------------------------------------------
   38 
   39     a. ヘッダの種類
   40 
   41       level-0 ヘッダ
   42           従来の LHarc, LArc と同じ形式です。ディレクトリ名の区切りは '\'
   43         を標準としています。
   44 
   45       level-1 ヘッダ
   46           既定値でこのヘッダが作成されます。-x0 で作成された -lh0- の書庫
   47         は LHarc で解凍可能ですが、解凍時に CRC チェックは行われません。
   48 
   49       level-2 ヘッダ
   50           長いファイル名をサポートするためのヘッダです。将来的には本ヘッ
   51         ダを標準としたいので、LH 関連のユーティリティを作成される方は今後
   52         準拠してくださるようにお願いします。
   53 
   54     b. 凍結・解凍可能な method ID について
   55 
   56       * は作成可能な method
   57 
   58       -lh0- * no compression
   59 
   60       -lh1- * 4k sliding dictionary(max 60 bytes) + dynamic Huffman
   61               + fixed encoding of position
   62 
   63       -lh2-   8k sliding dictionary(max 256 bytes) + dynamic Huffman
   64 
   65       -lh3-   8k sliding dictionary(max 256 bytes) + static Huffman
   66 
   67       -lh4- * 4k sliding dictionary(max 256 bytes) + static Huffman
   68               + improved encoding of position and trees
   69 
   70       -lh5- * 8k sliding dictionary(max 256 bytes) + static Huffman
   71               + improved encoding of position and trees
   72 
   73       -lh6-   32k sliding dictionary(max 256 bytes) + static Huffman
   74 			  + improved encoding of position and trees
   75 
   76       -lh7-   64k sliding dictionary(max 256 bytes) + static Huffman
   77 			  + improved encoding of position and trees
   78 
   79       -lzs-   2k sliding dictionary(max 17 bytes)
   80 
   81       -lz4-   no compression
   82 
   83       -lz5-   4k sliding dictionary(max 17 bytes)
   84 
   85     c. OS ID について
   86 
   87       現在のところ、以下の ID を予約しています。
   88 
   89         MS-DOS  'M'
   90         OS/2    '2'
   91         OS9     '9'
   92         OS/68K  'K'
   93         OS/386  '3'
   94         HUMAN   'H'
   95         UNIX    'U'
   96         CP/M    'C'
   97         FLEX    'F'
   98         Mac     'm'
   99         Runser  'R'
  100 
  101   B. 拡張部分
  102 
  103     a. OS 非依存 (0x00 - 0x3f)
  104 
  105         common header
  106          1 0x00
  107          2 header crc
  108        ( 1 information )
  109          2 next-header size
  110 
  111         filename header
  112          1 0x01
  113          ? filename
  114          2 next-header size
  115 
  116         dirname header
  117          1 0x02
  118          ? dirname
  119          2 next-header size
  120 
  121         comment header
  122          1 0x3f
  123          ? comments
  124          2 next-header size
  125 
  126 (以上、吉崎氏の lhx.doc より)
  127 ----------------------------------------------------------------
  128 LHa for UNIX 拡張ヘッダ仕様
  129 
  130 ・依存情報の種類(格納すべき情報)
  131 	UNIX に依存する情報で記録すべきは以下のものである。
  132 	(1) パーミッション
  133 	(2) GID,UID
  134 	(3) グループ名、ユーザ名
  135 	(4) 最終変更時刻(UNIX time)
  136 
  137 ・依存情報のタイプ(ext-type)
  138 	  拡張ヘッダの先頭1バイトには情報が何を示すもの
  139 	か識別するための値が格納されている。
  140 	UNIX依存情報として 0x50 - 0x54 を使用する。
  141 
  142 ・依存情報の格納方法
  143 	上記 (1) - (4) をそれぞれ別のタイプとする。
  144 
  145 	(1)パーミッション
  146 		size	値
  147 		1	0x50
  148 		2	パーミッション値
  149 		2	next-header size
  150 
  151 	(2)GID,UID
  152 		size	値
  153 		1	0x51
  154 		2	GID
  155 		2	UID
  156 		2	next-header size
  157 
  158 	(3)-1 グループ名
  159 		1	0x52
  160 		?	グループ名文字列
  161 		2	next-header size
  162 
  163 	(3)-2 ユーザ名
  164 		1	0x53
  165 		?	ユーザ名文字列
  166 		2	next-header size
  167 
  168 	(4) 最終変更時刻 (for header_level1)
  169 		1	0x54
  170 		4	UNIX 時間
  171 		2	next-header size
  172 
  173 ・LHa for UNIX ver 1.14 での実装(綿崎)
  174 	上記(3)をサポートしていない。
  175 	(3)のグループ名、ユーザ名の情報を含む書庫を作成すること
  176 	はなく、展開時には無視する。
  177 	また、(4)はヘッダレベル1の書庫にのみ含まれる。
  178 ----------------------------------------------------------------
  179 以上。
  180 
  181 一部改変:
  182 綿崎 修隆 (Nobutaka Watazaki)
  183 watazaki@shimadzu.co.jp