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:53:8 (declaration)
globe_3d-textures.adb:58:37 (reference)
globe_3d-textures.adb:177:42 (reference)
globe_3d.adb:902:47 (reference)
globe_3d.ads:578:32 (reference)
globe_3d.ads:580:47 (reference)
unzip-streams.adb:125:50 (reference)
unzip-streams.adb:183:49 (reference)
unzip-streams.adb:245:23 (reference)
unzip-streams.adb:260:23 (reference)
unzip-streams.ads:53:36 (reference)
unzip-streams.ads:83:27 (reference)
unzip.adb:401:51 (reference)
unzip.adb:411:51 (reference)
unzip.adb:422:51 (reference)
unzip.adb:590:51 (reference)
unzip.adb:623:51 (reference)
unzip.adb:678:51 (reference)
unzip.ads:135:50 (reference)
unzip.ads:144:50 (reference)
unzip.ads:155:50 (reference)
unzip.ads:244:50 (reference)
unzip.ads:257:50 (reference)
unzip.ads:272:50 (reference)
zip.adb:146:42 (reference)
zip.adb:264:42 (reference)
zip.adb:294:31 (reference)
zip.adb:296:30 (reference)
zip.adb:305:33 (reference)
zip.adb:314:32 (reference)
zip.adb:323:29 (reference)
zip.adb:329:37 (reference)
zip.adb:353:28 (reference)
zip.adb:369:36 (reference)
zip.adb:392:41 (reference)
zip.adb:525:49 (reference)
zip.adb:557:47 (reference)
zip.ads:62:42 (reference)
zip.ads:68:42 (reference)
zip.ads:82:30 (reference)
zip.ads:84:29 (reference)
zip.ads:86:32 (reference)
zip.ads:88:31 (reference)
zip.ads:90:28 (reference)
zip.ads:92:36 (reference)
zip.ads:140:27 (reference)
zip.ads:155:35 (reference)
zip.ads:158:41 (reference)
zip.ads:184:49 (reference)
zip.ads:193:47 (reference)
zip.ads:308: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:97:11 (declaration)
unzip.ads:190:33 (reference)
zip.adb:154:52 (reference)
zip.adb:440:20 (reference)
zip.adb:482:49 (reference)
zip.adb:483:49 (reference)
zip.adb:514:30 (reference)
zip.adb:515:31 (reference)
zip.adb:529:49 (reference)
zip.adb:530:49 (reference)
zip.adb:560:47 (reference)
zip.adb:561:47 (reference)
zip.ads:148:27 (reference)
zip.ads:149:27 (reference)
zip.ads:179:49 (reference)
zip.ads:180:49 (reference)
zip.ads:188:49 (reference)
zip.ads:189:49 (reference)
zip.ads:196:47 (reference)
zip.ads:197:47 (reference)
zip.ads:298:25 (reference)
zip.ads:299:25 (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:106:8 (declaration)
unzip.ads:163:31 (reference)
zip.adb:157:52 (reference)
zip.adb:671:51 (reference)
zip.adb:694:66 (reference)
zip.ads:124:65 (reference)
zip.ads:125:65 (reference)
zip.ads:152:27 (reference)
zip.ads:302:25 (reference)

Time

subtype Time is Zip_Streams.Time;

References:

zip.ads:128:12 (declaration)
unzip.ads:78:48 (reference)
zip-headers.ads:63:31 (reference)
zip.adb:156:52 (reference)
zip.ads:130:54 (reference)
zip.ads:131:28 (reference)
zip.ads:151:27 (reference)
zip.ads:301:25 (reference)
Internal time definition

Feedback_proc

type Feedback_proc is access
     procedure (percents_done :     Natural;  -- %'s completed
                entry_skipped :     Boolean;  -- indicates one can show "skipped", no %'s
                user_abort    : out Boolean);

References:

zip.ads:203:8 (declaration)
unzip-decompress.adb:13:58 (reference)
unzip-decompress.ads:28:32 (reference)
unzip.adb:21:57 (reference)
unzip.adb:185:29 (reference)
unzip.adb:446:51 (reference)
unzip.adb:496:51 (reference)
unzip.adb:541:51 (reference)
unzip.adb:591:51 (reference)
unzip.adb:625:51 (reference)
unzip.adb:681:51 (reference)
unzip.ads:203:50 (reference)
unzip.ads:216:50 (reference)
unzip.ads:231:41 (reference)
unzip.ads:245:50 (reference)
unzip.ads:259:50 (reference)
unzip.ads:275:50 (reference)

Byte_Buffer

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

References:

zip.ads:219:8 (declaration)
unzip-decompress.adb:41:22 (reference)
unzip-decompress.adb:44:22 (reference)
unzip-decompress.adb:581:26 (reference)
unzip-decompress.adb:683:32 (reference)
unzip-decompress.adb:1904:26 (reference)
zip-crc.adb:25:68 (reference)
zip-crc.ads:11:67 (reference)
zip-headers.adb:13:35 (reference)
zip-headers.adb:15:35 (reference)
zip-headers.adb:34:50 (reference)
zip-headers.adb:36:50 (reference)
zip-headers.adb:38:11 (reference)
zip-headers.adb:56:33 (reference)
zip-headers.adb:59:41 (reference)
zip-headers.adb:72:13 (reference)
zip-headers.adb:104:13 (reference)
zip-headers.adb:135:13 (reference)
zip-headers.adb:161:13 (reference)
zip-headers.adb:183:44 (reference)
zip-headers.adb:206:12 (reference)
zip-headers.adb:225:23 (reference)
zip-headers.adb:287:12 (reference)
zip-headers.adb:307:50 (reference)
zip-headers.adb:324:13 (reference)
zip-headers.adb:334:13 (reference)
zip-headers.ads:41:49 (reference)
zip-headers.ads:142:43 (reference)
zip.adb:575:27 (reference)
zip.adb:586:45 (reference)
zip.adb:607:13 (reference)
zip.adb:616:45 (reference)
zip.adb:636:13 (reference)
zip.adb:642:39 (reference)
zip.adb:654:43 (reference)
zip.adb:666:10 (reference)
zip.adb:746:48 (reference)
zip.ads:220:32 (reference)
zip.ads:223:45 (reference)
zip.ads:230:45 (reference)
zip.ads:239:39 (reference)
zip.ads:245:43 (reference)
zip.ads:264:24 (reference)

p_Byte_Buffer

type p_Byte_Buffer is access Byte_Buffer;

References:

zip.ads:220:8 (declaration)

Dir_node (private)

type Dir_node;

References:

zip.ads:290:8 (declaration)
zip.adb:13:57 (reference)
zip.adb:112:29 (reference)
zip.adb:163:25 (reference)
zip.ads:291:29 (reference)
zip.ads:293:8 (full declaration)

p_Dir_node (private)

type p_Dir_node is access Dir_node;

References:

zip.ads:291:8 (declaration)
zip.adb:13:67 (reference)
zip.adb:17:42 (reference)
zip.adb:31:38 (reference)
zip.adb:37:39 (reference)
zip.adb:60:38 (reference)
zip.adb:66:44 (reference)
zip.adb:68:30 (reference)
zip.adb:105:42 (reference)
zip.adb:109:24 (reference)
zip.adb:159:52 (reference)
zip.adb:189:17 (reference)
zip.adb:331:36 (reference)
zip.adb:355:31 (reference)
zip.adb:371:49 (reference)
zip.adb:399:46 (reference)
zip.adb:532:13 (reference)
zip.ads:294:25 (reference)
zip.ads:313:24 (reference)

p_String (private)

type p_String is access String;

References:

zip.ads:306:8 (declaration)
zip.adb:14:65 (reference)
zip.adb:191:22 (reference)
zip.ads:310:24 (reference)
zip.ads:315:24 (reference)

Constants & Global variables

Zip_file_Error

Zip_file_Error,
  Zip_file_open_Error,
  Duplicate_name : exception;

References:

zip.ads:72:3 (declaration)
unzip-decompress.adb:743:35 (reference)
unzip-decompress.adb:748:32 (reference)
unzip-decompress.adb:769:38 (reference)
unzip-decompress.adb:985:29 (reference)
unzip-decompress.adb:1001:26 (reference)
unzip-decompress.adb:1046:35 (reference)
unzip-decompress.adb:1070:35 (reference)
unzip-decompress.adb:1090:35 (reference)
unzip-decompress.adb:1168:35 (reference)
unzip-decompress.adb:1188:35 (reference)
unzip-decompress.adb:1285:32 (reference)
unzip-decompress.adb:1289:32 (reference)
unzip-decompress.adb:1297:32 (reference)
unzip-decompress.adb:1307:32 (reference)
unzip-decompress.adb:1312:32 (reference)
unzip-decompress.adb:1321:32 (reference)
unzip-decompress.adb:1333:35 (reference)
unzip-decompress.adb:1345:35 (reference)
unzip-decompress.adb:1354:32 (reference)
unzip-decompress.adb:1366:32 (reference)
unzip-decompress.adb:1375:32 (reference)
unzip-decompress.adb:1379:32 (reference)
unzip-decompress.adb:1387:32 (reference)
unzip-decompress.adb:1398:35 (reference)
unzip-decompress.adb:1409:35 (reference)
unzip-decompress.adb:1417:32 (reference)
unzip-decompress.adb:1487:32 (reference)
unzip-decompress.adb:1523:35 (reference)
unzip-decompress.adb:1563:26 (reference)
unzip-decompress.adb:1652:29 (reference)
unzip-decompress.adb:1695:29 (reference)
unzip-decompress.adb:1716:26 (reference)
unzip-decompress.adb:1733:29 (reference)
unzip-decompress.adb:1737:29 (reference)
unzip-decompress.adb:1793:29 (reference)
unzip-decompress.adb:1797:29 (reference)
unzip-decompress.adb:1818:29 (reference)
unzip-decompress.adb:1841:38 (reference)

Zip_file_open_Error

Zip_file_open_Error,
  Duplicate_name : exception;

References:

zip.ads:73:3 (declaration)
globe_3d-textures.adb:86:16 (reference)
globe_3d-textures.adb:92:14 (reference)
globe_3d-textures.adb:194:16 (reference)
globe_3d.adb:909:22 (reference)
unzip.adb:580:16 (reference)
zip.adb:280:16 (reference)

Duplicate_name

Duplicate_name : exception;

References:

zip.ads:74:3 (declaration)
zip.adb:183:19 (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:77:3 (declaration)
unzip-decompress.adb:1932:63 (reference)
unzip-decompress.adb:1935:53 (reference)
zip.adb:710:72 (reference)
zip_streams.adb:166:57 (reference)
zip_streams.adb:173:57 (reference)
Parameter Form added to *_IO.[Open|Create]

Forgot_to_load_zip_info

Forgot_to_load_zip_info : exception;

References:

zip.ads:94:3 (declaration)
zip.adb:300:16 (reference)
zip.adb:309:16 (reference)
zip.adb:318:16 (reference)
zip.adb:343:16 (reference)
zip.adb:537:16 (reference)

File_name_not_found

File_name_not_found : exception;

References:

zip.ads:191:3 (declaration)
globe_3d-textures.adb:67:18 (reference)
globe_3d-textures.adb:78:16 (reference)
globe_3d-textures.adb:85:16 (reference)
globe_3d-textures.adb:91:14 (reference)
zip.adb:520:13 (reference)
zip.adb:552:39 (reference)

version (String)

version    : constant String := "43 - pre";

References:

zip.ads:272:3 (declaration)

reference (String)

reference  : constant String := "14 - Jul - 2012";

References:

zip.ads:273:3 (declaration)

web (String)

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

References:

zip.ads:274:3 (declaration)
hopefully the latest version is at that URL .. . --- ^

Subprograms & Entries

Load

procedure Load 
(info: out Zip_info;
from: String;
-- Zip file name case_sensitive: Boolean := False);

References:

zip.ads:62:14 (declaration)
globe_3d.adb:907:17 (call)
globe_3d.adb:910:20 (call)
unzip-streams.adb:249:11 (call)
zip.adb:264:14 (body)
zip.adb:292:8 (label)

Calls:

Ada.Exceptions.Raise_Exception defined at a-except.ads:93:14
Load defined at zip.ads:68:14
Zip.Dispose defined at zip.adb:14:14
Zip_Streams.Close defined at zip_streams.ads:138:14
Zip_Streams.Open defined at zip_streams.ads:131:14
Zip_Streams.Set_Name defined at zip_streams.ads:56:14

Zip_name

function Zip_name 
(info: Zip_info) return String;

References:

zip.ads:84:12 (declaration)
unzip-streams.adb:202:38 (call)
unzip.adb:645:38 (call)
unzip.adb:700:38 (call)
zip.adb:296:13 (body)
zip.adb:303:8 (label)

Zip_comment

function Zip_comment 
(info: Zip_info) return String;

References:

zip.ads:86:12 (declaration)
zip.adb:305:13 (body)
zip.adb:312:8 (label)

Entries

function Entries 
(info: Zip_info) return Natural;

References:

zip.ads:90:12 (declaration)
zip.adb:323:13 (body)

Method_from_code

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

References:

zip.ads:124:12 (declaration)
unzip-streams.adb:53:17 (call)
unzip.adb:205:21 (call)
zip.adb:235:36 (call)
zip.adb:694:13 (body)
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:125:12 (declaration)
zip.adb:671:13 (body)
zip.adb:692:8 (label)
zip.adb:695:7 (call)

Convert

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

References:

zip.ads:130:12 (declaration)

Convert

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

References:

zip.ads:131:12 (declaration)
unzip.adb:322:53 (call)

Called by:

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

Traverse (generic)

generic with procedure Action 
(name: String);
-- 'name' is compressed entry's name procedure Traverse (z: Zip_info);

References:

zip.ads:140:13 (declaration)
globe_3d-textures.adb:188:37 (reference)
unzip.adb:614:46 (reference)
zip.adb:353:14 (body)
zip.adb:367:8 (label)
Traverse a whole Zip_info directory in sorted order, giving the name for each entry to an user - defined "Action" procedure. Concretely, you can process a whole Zip file that way, by extracting data with Extract, or open a reader stream with UnZip.Streams. See the Comp_Zip or Find_Zip tools as application examples.

Traverse_verbose (generic)

generic with procedure Action 
( name: String;
-- 'name' is compressed entry's name file_index: Positive;
comp_size: File_size_type;
uncomp_size: File_size_type;
crc_32: Interfaces.Unsigned_32;
date_time: Time;
method: PKZip_method;
unicode_file_name: Boolean );
procedure Traverse_verbose (z: Zip_info);

References:

zip.ads:155:13 (declaration)
zip.adb:369:14 (body)
zip.adb:390:8 (label)
Same as Traverse, but Action gives also technical informations about the compressed entry.

Tree_stat

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

References:

zip.ads:158:14 (declaration)
zip.adb:392:14 (body)
zip.adb:422:8 (label)
Academic : see how well the name tree is balanced

Find_first_offset

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

References:

zip.ads:169:14 (declaration)
unzip.adb:562:11 (call)
zip.adb:435:14 (body)
zip.adb:473:8 (label)

Called by:

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

Find_offset

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

References:

zip.ads:175:14 (declaration)
unzip.adb:470:11 (call)
unzip.adb:518:11 (call)
zip.adb:478:14 (body)
zip.adb:521:8 (label)

Find_offset

procedure Find_offset 
(info: Zip_info;
name: String;
case_sensitive: 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:184:14 (declaration)
unzip-streams.adb:139:11 (call)
unzip.adb:653:11 (call)
unzip.adb:708:11 (call)
zip.adb:525:14 (body)
zip.adb:555:8 (label)
zip.adb:566:7 (call)

Calls:

Ada.Exceptions.Raise_Exception defined at a-except.ads:93:14
Zip.Normalize defined at zip.adb:126:13

Get_sizes

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

References:

zip.ads:193:14 (declaration)
zip.adb:557:14 (body)
zip.adb:568:8 (label)

Calls:

Find_offset defined at zip.ads:184:14

BlockRead

procedure BlockRead 
(file: Ada.Streams.Stream_IO.File_Type;
buffer: out Byte_Buffer;
actually_read: out Natural);

References:

zip.ads:222:14 (declaration)
zip.adb:585:14 (body)
zip.adb:613:8 (label)

Calls:

Ada.Streams.Read defined at a-stream.ads:54:14
End_Of_File defined at a-ststio.ads:89:13
Index defined at a-ststio.ads:123:13
Size defined at a-ststio.ads:124:13
Stream defined at a-ststio.ads:91:13
= buffer'Length if no end of file before last buffer element

BlockRead

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

References:

zip.ads:229:14 (declaration)
unzip-decompress.adb:159:23 (call)
zip.adb:615:14 (body)
zip.adb:639:8 (label)
zip.adb:647:7 (call)

Called by:

BlockRead defined at zip.ads:238:14
Decompress.Decompress_data.UnZ_IO.Read_buffer defined at unzip-decompress.adb:145:20

Calls:

Ada.Streams.Read defined at a-stream.ads:54:14
Zip_Streams.End_Of_Stream defined at zip_streams.ads:105:13
Zip_Streams.Index defined at zip_streams.ads:50:13
Zip_Streams.Size defined at zip_streams.ads:53:13
Same for general streams

BlockRead

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

Calls:

BlockRead defined at zip.ads:229:14
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: Byte_Buffer);

Calls:

Ada.Streams.Write defined at a-stream.ads:60: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:250:12 (declaration)
globe_3d.adb:923:18 (call)
globe_3d.adb:936:18 (call)
unzip.adb:131:55 (call)
unzip.adb:145:35 (call)
zip.adb:700:13 (body)
zip.adb:719:8 (label)

Calls:

Close defined at a-textio.ads:98:14
Index defined at a-strfix.ads:36:13
Open defined at a-textio.ads:92:14
To_String defined at a-strunb.ads:100: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:257:13 (declaration)
zip.adb:721:14 (body)
zip.adb:743:8 (label)

Calls:

New_Line defined at a-textio.ads:165:14
Put defined at a-textio.ads:207: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 );

Called by:

Decompress.Decompress_data.UnZ_IO.Flush defined at unzip-decompress.adb:94:20
Decompress.Decompress_data.UnZ_Meth.Unshrink_Flush defined at unzip-decompress.adb:583:20

Calls:

New_Line defined at a-textio.ads:165:14
Put defined at a-textio.ads:207:14