Index

Package: Zip

Description

package Zip is
NB: this is the MIT License, as found 12-Sep-2007 on the site http://www.opensource.org/licenses/mit-license.php

Types

Zip_info

type Zip_info is private;

References:

zip.ads:54:8 (declaration)
globe_3d-textures.adb:58:36 (reference)
globe_3d-textures.adb:183:43 (reference)
globe_3d.adb:918:45 (reference)
globe_3d.ads:593:30 (reference)
globe_3d.ads:595:45 (reference)
unzip-streams.adb:128:39 (reference)
unzip-streams.adb:188:31 (reference)
unzip-streams.adb:250:20 (reference)
unzip-streams.adb:266:20 (reference)
unzip-streams.ads:53:31 (reference)
unzip-streams.ads:83:26 (reference)
unzip.adb:389:49 (reference)
unzip.adb:399:49 (reference)
unzip.adb:410:49 (reference)
unzip.adb:577:49 (reference)
unzip.adb:610:49 (reference)
unzip.adb:665:49 (reference)
unzip.ads:137:49 (reference)
unzip.ads:146:49 (reference)
unzip.ads:157:49 (reference)
unzip.ads:247:49 (reference)
unzip.ads:260:49 (reference)
unzip.ads:275:49 (reference)
zip.adb:145:26 (reference)
zip.adb:253:26 (reference)
zip.adb:281:32 (reference)
zip.adb:286:31 (reference)
zip.adb:294:34 (reference)
zip.adb:302:33 (reference)
zip.adb:311:30 (reference)
zip.adb:320:35 (reference)
zip.adb:344:26 (reference)
zip.adb:359:34 (reference)
zip.adb:383:23 (reference)
zip.adb:518:29 (reference)
zip.adb:551:29 (reference)
zip.ads:64:26 (reference)
zip.ads:72:26 (reference)
zip.ads:88:32 (reference)
zip.ads:90:31 (reference)
zip.ads:92:34 (reference)
zip.ads:94:33 (reference)
zip.ads:96:30 (reference)
zip.ads:98:35 (reference)
zip.ads:147:26 (reference)
zip.ads:161:34 (reference)
zip.ads:165:23 (reference)
zip.ads:196:29 (reference)
zip.ads:207:29 (reference)
zip.ads:322:8 (full declaration)
Zip_info contains the Zip file name or input stream, and the archive's sorted directory

File_size_type

subtype File_size_type is Interfaces.Unsigned_32;

References:

zip.ads:103:11 (declaration)
unzip.ads:193:33 (reference)
zip.adb:153:20 (reference)
zip.adb:433:17 (reference)
zip.adb:475:29 (reference)
zip.adb:476:29 (reference)
zip.adb:506:25 (reference)
zip.adb:507:25 (reference)
zip.adb:522:29 (reference)
zip.adb:523:29 (reference)
zip.adb:554:29 (reference)
zip.adb:555:29 (reference)
zip.ads:155:24 (reference)
zip.ads:156:24 (reference)
zip.ads:189:29 (reference)
zip.ads:190:29 (reference)
zip.ads:200:29 (reference)
zip.ads:201:29 (reference)
zip.ads:210:29 (reference)
zip.ads:211:29 (reference)
zip.ads:313:19 (reference)
zip.ads:314:19 (reference)
Data sizes in archive

PKZip_method

type PKZip_method is
   ( store,     -- C,D
     shrink,    -- C,D
     reduce_1,  -- C,D
     reduce_2,  -- C,D
     reduce_3,  -- C,D
     reduce_4,  -- C,D
     implode,   --   D
     tokenize,
     deflate,   --   D
     deflate_e, --   D - Enhanced deflate
     bzip2,     --   D
     lzma,
     ppmd,
     unknown
   );

References:

zip.ads:112:8 (declaration)
unzip.ads:165:31 (reference)
zip.adb:156:20 (reference)
zip.adb:668:48 (reference)
zip.adb:690:63 (reference)
zip.ads:130:63 (reference)
zip.ads:131:48 (reference)
zip.ads:159:24 (reference)
zip.ads:317:19 (reference)
Technical: translates the method code as set in zip archives

Time

subtype Time is Zip_Streams.Time;

References:

zip.ads:134:11 (declaration)
unzip.ads:78:46 (reference)
zip.adb:155:20 (reference)
zip.ads:135:56 (reference)
zip.ads:137:30 (reference)
zip.ads:158:24 (reference)
zip.ads:316:19 (reference)
Internal time definition

Feedback_proc

type Feedback_proc is access
    procedure (
      percents_done:  in Natural;  -- %'s completed
      entry_skipped:  in Boolean;  -- indicates one can show "skipped", no %'s
      user_abort   : out Boolean   -- e.g. transmit a "click on Cancel" here
    );

References:

zip.ads:218:8 (declaration)
unzip.adb:21:36 (reference)
unzip.adb:182:26 (reference)
unzip.adb:434:49 (reference)
unzip.adb:483:49 (reference)
unzip.adb:528:49 (reference)
unzip.adb:578:49 (reference)
unzip.adb:612:49 (reference)
unzip.adb:668:49 (reference)
unzip.ads:206:49 (reference)
unzip.ads:219:49 (reference)
unzip.ads:234:40 (reference)
unzip.ads:248:49 (reference)
unzip.ads:262:49 (reference)
unzip.ads:278:49 (reference)
----------------------------------------------------------------------- Goodies - things used internally but that might be generally useful -- -----------------------------------------------------------------------

Byte

subtype Byte is Interfaces.Unsigned_8;

References:

zip.ads:235:11 (declaration)
zip.ads:236:58 (reference)

Byte_Buffer

type Byte_Buffer is array(Integer range <>) of aliased Byte;

References:

zip.ads:236:8 (declaration)
zip.adb:571:26 (reference)
zip.adb:581:27 (reference)
zip.adb:600:9 (reference)
zip.adb:610:27 (reference)
zip.adb:629:9 (reference)
zip.adb:639:21 (reference)
zip.adb:652:21 (reference)
zip.adb:663:7 (reference)
zip.adb:734:23 (reference)
zip.ads:237:32 (reference)
zip.ads:241:27 (reference)
zip.ads:250:27 (reference)
zip.ads:261:21 (reference)
zip.ads:269:21 (reference)
zip.ads:289:23 (reference)

p_Byte_Buffer

type p_Byte_Buffer is access Byte_Buffer;

References:

zip.ads:237:8 (declaration)

Dir_node (private)

type Dir_node;

References:

zip.ads:306:8 (declaration)
zip.adb:12:56 (reference)
zip.adb:110:25 (reference)
zip.adb:162:20 (reference)
zip.ads:307:29 (reference)
zip.ads:309:8 (full declaration)

p_Dir_node (private)

type p_Dir_node is access Dir_node;

References:

zip.ads:307:8 (declaration)
zip.adb:12:66 (reference)
zip.adb:16:39 (reference)
zip.adb:30:35 (reference)
zip.adb:36:35 (reference)
zip.adb:58:35 (reference)
zip.adb:64:36 (reference)
zip.adb:66:25 (reference)
zip.adb:103:39 (reference)
zip.adb:107:20 (reference)
zip.adb:157:27 (reference)
zip.adb:186:14 (reference)
zip.adb:322:33 (reference)
zip.adb:346:28 (reference)
zip.adb:361:28 (reference)
zip.adb:391:28 (reference)
zip.adb:526:10 (reference)
zip.ads:310:19 (reference)
zip.ads:327:23 (reference)

p_String (private)

type p_String is access String;

References:

zip.ads:320:8 (declaration)
zip.adb:13:64 (reference)
zip.adb:188:19 (reference)
zip.ads:324:23 (reference)
zip.ads:329:23 (reference)

Constants & Global variables

version (string)

version   : constant String:= "37.1";

References:

zip.ads:44:3 (declaration)

reference (string)

reference : constant String:= "7-Jan-2010";

References:

zip.ads:45:3 (declaration)

web (string)

web       : constant String:= "http://unzip-ada.sf.net/";

References:

zip.ads:46:3 (declaration)

Zip_file_Error

Zip_file_Error,
  Zip_file_open_Error,
  Duplicate_name: exception;

References:

zip.ads:78:3 (declaration)

Zip_file_open_Error

Zip_file_open_Error,
  Duplicate_name: exception;

References:

zip.ads:79:3 (declaration)
globe_3d-textures.adb:87:16 (reference)
globe_3d-textures.adb:93:14 (reference)
globe_3d-textures.adb:198:19 (reference)
globe_3d.adb:924:18 (reference)
unzip.adb:567:14 (reference)
zip.adb:267:12 (reference)

Duplicate_name

Duplicate_name: exception;

References:

zip.ads:80:3 (declaration)
zip.adb:180:15 (reference)

Form_For_IO_Open_N_Create (Unbounded_String)

Form_For_IO_Open_N_Create : Ada.Strings.Unbounded.Unbounded_String
    := Ada.Strings.Unbounded.Null_Unbounded_String;

References:

zip.ads:83:3 (declaration)
zip.adb:702:67 (reference)
Parameter Form added to *_IO.[Open|Create]

Forgot_to_load_zip_info

Forgot_to_load_zip_info: exception;

References:

zip.ads:100:3 (declaration)
zip.adb:289:13 (reference)
zip.adb:297:13 (reference)
zip.adb:306:13 (reference)
zip.adb:334:13 (reference)
zip.adb:530:13 (reference)

File_name_not_found

File_name_not_found: exception;

References:

zip.ads:204:3 (declaration)
globe_3d-textures.adb:67:18 (reference)
globe_3d-textures.adb:79:16 (reference)
globe_3d-textures.adb:86:16 (reference)
globe_3d-textures.adb:92:14 (reference)
zip.adb:512:11 (reference)
zip.adb:545:7 (reference)

Subprograms & Entries

Load

procedure Load
( info: out Zip_info;
from: in String;
case_sensitive: in Boolean:= False );

References:

zip.ads:63:13 (declaration)
globe_3d.adb:922:13 (reference)
globe_3d.adb:925:15 (reference)
unzip-streams.adb:253:9 (reference)
zip.adb:252:13 (body)
zip.adb:279:7 (label)

Calls:

Ada.Exceptions.Raise_Exception defined at a-except.ads:97:14
Close defined at zip_streams.ads:101:14
Load defined at zip.ads:71:13
Open defined at zip_streams.ads:94:14
SetName defined at zip_streams.ads:50:14
Zip.Dispose defined at zip.adb:13:13
from stream version

Load

procedure Load
( info: out Zip_info;
from: in Zip_Streams.Zipstream_Class;
case_sensitive: in Boolean:= False );

References:

zip.ads:71:13 (declaration)
unzip-streams.adb:269:9 (reference)
zip.adb:144:13 (body)
zip.adb:246:7 (label)
zip.adb:270:5 (reference)

Calls:

Index defined at zip_streams.ads:44:13
Load defined at zip-headers.ads:159:13
Method_from_code defined at zip.ads:130:12
Read_and_check defined at zip-headers.ads:114:13
Set_Index defined at zip_streams.ads:40:14
Zip.Binary_tree_rebalancing.Rebalance defined at zip.adb:16:15
Zip.Load.Insert defined at zip.adb:149:15
Zip.Normalize defined at zip.adb:124:12

Is_loaded

function Is_loaded
( info: in Zip_info )
return Boolean;

References:

zip.ads:88:12 (declaration)
globe_3d.adb:920:16 (reference)
globe_3d.adb:932:12 (reference)
globe_3d.adb:941:12 (reference)
zip.adb:281:12 (body)
zip.adb:284:7 (label)

Zip_name

function Zip_name
( info: in Zip_info )
return String;

References:

zip.ads:90:12 (declaration)
unzip-streams.adb:205:35 (reference)
unzip.adb:632:35 (reference)
unzip.adb:687:35 (reference)
zip.adb:286:12 (body)
zip.adb:292:7 (label)

Zip_comment

function Zip_comment
( info: in Zip_info )
return String;

References:

zip.ads:92:12 (declaration)
zip.adb:294:12 (body)
zip.adb:300:7 (label)

Zip_stream

function Zip_stream
( info: in Zip_info )
return Zip_Streams.Zipstream_Class;

References:

zip.ads:94:12 (declaration)
unzip-streams.adb:196:43 (reference)
unzip-streams.adb:208:26 (reference)
unzip.adb:628:43 (reference)
unzip.adb:635:26 (reference)
unzip.adb:683:43 (reference)
unzip.adb:690:26 (reference)
zip.adb:302:12 (body)
zip.adb:309:7 (label)

Entries

function Entries
( info: in Zip_info )
return Natural;

References:

zip.ads:96:12 (declaration)
zip.adb:311:12 (body)
zip.adb:314:7 (label)

Method_from_code

function Method_from_code
(x: Interfaces.Unsigned_16)
return PKZip_method;

References:

zip.ads:130:12 (declaration)
unzip-streams.adb:55:14 (reference)
unzip.adb:202:18 (reference)
zip.adb:226:32 (reference)
zip.adb:690:12 (body)
zip.adb:693:7 (label)

Calls:

Method_from_code defined at zip.ads:131:12
Technical: translates the method code as set in zip archives

Method_from_code

function Method_from_code
(x: Natural)
return PKZip_method;

References:

zip.ads:131:12 (declaration)
zip.adb:668:12 (body)
zip.adb:688:7 (label)
zip.adb:692:12 (reference)

Called by:

Method_from_code defined at zip.ads:130:12

Convert

function Convert
(date: in Ada.Calendar.Time)
return Time renames Zip_Streams.Calendar.Convert;

References:

zip.ads:135:12 (declaration)

Convert

function Convert
(date: in Time)
return Ada.Calendar.Time renames Zip_Streams.Calendar.Convert;

References:

zip.ads:137:12 (declaration)
unzip.adb:310:13 (reference)

Called by:

UnZip.UnZipFile defined at unzip.adb:15:13

Traverse_verbose (generic)

procedure Traverse_verbose
( z: Zip_info );

References:

zip.ads:161:13 (declaration)
zip.adb:359:13 (body)
zip.adb:380:7 (label)

Tree_stat

procedure Tree_stat
( z: in Zip_info;
total: out Natural;
max_depth: out Natural;
avg_depth: out Float );

References:

zip.ads:164:13 (declaration)
zip.adb:382:13 (body)
zip.adb:413:7 (label)
Academic: see how well the name tree is balanced

Find_first_offset

procedure Find_first_offset
( file: in Zip_Streams.Zipstream_Class;
file_index: out Positive );

References:

zip.ads:177:13 (declaration)
unzip.adb:549:9 (reference)
zip.adb:426:13 (body)
zip.adb:465:7 (label)

Called by:

UnZip.Extract defined at unzip.ads:205:13

Calls:

Index defined at zip_streams.ads:44:13
Load defined at zip-headers.ads:159:13
Read_and_check defined at zip-headers.ads:114:13
Set_Index defined at zip_streams.ads:40:14

Find_offset

procedure Find_offset
( file: in Zip_Streams.Zipstream_Class;
name: in String;
case_sensitive: in Boolean;
file_index: out Positive;
comp_size: out File_size_type;
uncomp_size: out File_size_type );

References:

zip.ads:184:13 (declaration)
unzip.adb:457:9 (reference)
unzip.adb:505:9 (reference)
zip.adb:470:13 (body)
zip.adb:513:7 (label)

Calls:

Index defined at zip_streams.ads:44:13
Load defined at zip-headers.ads:159:13
Read_and_check defined at zip-headers.ads:114:13
Set_Index defined at zip_streams.ads:40:14
Zip.Normalize defined at zip.adb:124:12
Find offset of a certain compressed file in a Zip_info data

Find_offset

procedure Find_offset
( info: in Zip_info;
name: in String;
case_sensitive: in Boolean;
file_index: out Ada.Streams.Stream_IO.Positive_Count;
comp_size: out File_size_type;
uncomp_size: out File_size_type );

References:

zip.ads:195:13 (declaration)
unzip-streams.adb:141:9 (reference)
unzip.adb:640:9 (reference)
unzip.adb:695:9 (reference)
zip.adb:517:13 (body)
zip.adb:548:7 (label)
zip.adb:560:5 (reference)

Calls:

Ada.Exceptions.Raise_Exception defined at a-except.ads:97:14
Zip.Normalize defined at zip.adb:124:12

Get_sizes

procedure Get_sizes
( info: in Zip_info;
name: in String;
case_sensitive: in Boolean;
comp_size: out File_size_type;
uncomp_size: out File_size_type );

References:

zip.ads:206:13 (declaration)
zip.adb:550:13 (body)
zip.adb:564:7 (label)

Calls:

Find_offset defined at zip.ads:195:13
User-defined procedure for feedback occuring during compression or decompression (entry_skipped meaningful only for the latter)

BlockRead

procedure BlockRead
( file: in Ada.Streams.Stream_IO.File_Type;
buffer: out Byte_Buffer;
actually_read: out Natural -- = buffer'Length if no end of file before last buffer element );

References:

zip.ads:239:13 (declaration)
zip.adb:579:13 (body)
zip.adb:606:7 (label)

Calls:

Ada.Streams.Read defined at a-stream.ads:56:14
End_Of_File defined at a-ststio.ads:90:13
Index defined at a-ststio.ads:124:13
Size defined at a-ststio.ads:125:13
Stream defined at a-ststio.ads:92:13

BlockRead

procedure BlockRead
( stream: in Zip_Streams.Zipstream_Class;
buffer: out Byte_Buffer;
actually_read: out Natural -- = buffer'Length if no end of stream before last buffer element );

References:

zip.ads:248:13 (declaration)
zip.adb:608:13 (body)
zip.adb:635:7 (label)
zip.adb:644:5 (reference)

Called by:

BlockRead defined at zip.ads:259:13

Calls:

Ada.Streams.Read defined at a-stream.ads:56:14
End_Of_Stream defined at zip_streams.ads:72:13
Index defined at zip_streams.ads:44:13
Size defined at zip_streams.ads:47:13
Same for general streams

BlockRead

procedure BlockRead
( stream: in Zip_Streams.Zipstream_Class;
buffer: out Byte_Buffer );

References:

zip.ads:259:13 (declaration)
zip.adb:637:13 (body)
zip.adb:648:7 (label)

Calls:

BlockRead defined at zip.ads:248:13
Same, but instead of giving actually_read, raises End_Error if the buffer cannot be fully read. This mimics the 'Read stream attribute; can be a lot faster, depending on the compiler's run-time library.

BlockWrite

procedure BlockWrite
( stream: in out Ada.Streams.Root_Stream_Type'Class;
buffer: in Byte_Buffer );

References:

zip.ads:267:13 (declaration)
zip.adb:650:13 (body)
zip.adb:666:7 (label)

Calls:

Ada.Streams.Write defined at a-stream.ads:62:14
This mimics the 'Write stream attribute; can be a lot faster, depending on the compiler's run-time library. NB: here we can use the root stream type: no question of size, index,...

Exists

function Exists
(name:String)
return Boolean;

References:

zip.ads:275:12 (declaration)
unzip.adb:128:52 (reference)
unzip.adb:142:17 (reference)
zip.adb:698:12 (body)
zip.adb:708:7 (label)

Calls:

Close defined at a-textio.ads:101:14
Open defined at a-textio.ads:95:14
To_String defined at a-strunb.ads:73:13
This does the same as Ada 2005's Ada.Directories.Exists Just there as helper for Ada 95 only systems

Put_Multi_Line

procedure Put_Multi_Line
( out_file: Ada.Text_IO.File_Type;
text: String );

References:

zip.ads:282:13 (declaration)
zip.adb:710:13 (body)
zip.adb:730:7 (label)

Calls:

New_Line defined at a-textio.ads:168:14
Put defined at a-textio.ads:210:14
Write a string containing line endings (possible from another system) into a text file, with the correct native line endings. Works for displaying/saving correctly CR&LF (DOS/Win), LF (UNIX), CR (Mac OS < 9)

Write_as_text

procedure Write_as_text
( out_file: Ada.Text_IO.File_Type;
buffer: Byte_Buffer;
last_char: in out Character -- track line-ending characters between writes );

References:

zip.ads:287:13 (declaration)
zip.adb:732:13 (body)
zip.adb:752:7 (label)

Calls:

New_Line defined at a-textio.ads:168:14
Put defined at a-textio.ads:210:14
----------------- Private items -- -----------------