Visualization Library 2.0.0-b5

A lightweight C++ OpenGL middleware for 2D/3D graphics

VL     Star     Watch     Fork     Issue

[Download] [Tutorials] [All Classes] [Grouped Classes]
Macros | Enumerations | Functions | Variables
untgz.c File Reference
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <errno.h>
#include "zlib.h"
#include <direct.h>
#include <io.h>
#include <utime.h>

Go to the source code of this file.

Macros

#define REGTYPE   '0' /* regular file */
 
#define AREGTYPE   '\0' /* regular file */
 
#define LNKTYPE   '1' /* link */
 
#define SYMTYPE   '2' /* reserved */
 
#define CHRTYPE   '3' /* character special */
 
#define BLKTYPE   '4' /* block special */
 
#define DIRTYPE   '5' /* directory */
 
#define FIFOTYPE   '6' /* FIFO special */
 
#define CONTTYPE   '7' /* reserved */
 
#define GNUTYPE_DUMPDIR   'D' /* file names from dumped directory */
 
#define GNUTYPE_LONGLINK   'K' /* long link name */
 
#define GNUTYPE_LONGNAME   'L' /* long file name */
 
#define GNUTYPE_MULTIVOL   'M' /* continuation of file from another volume */
 
#define GNUTYPE_NAMES   'N' /* file name that does not fit into main hdr */
 
#define GNUTYPE_SPARSE   'S' /* sparse file */
 
#define GNUTYPE_VOLHDR   'V' /* tape/volume header */
 
#define BLOCKSIZE   512
 
#define SHORTNAMESIZE   100
 
#define ISSPECIAL(c)   (((c) == '*') || ((c) == '/'))
 

Enumerations

enum  { TGZ_EXTRACT, TGZ_LIST, TGZ_INVALID }
 

Functions

char *TGZfname OF ((const char *))
 
int getoct OF ((char *, int))
 
char *strtime OF ((time_t *))
 
int setfiletime OF ((char *, time_t))
 
void push_attr OF ((struct attr_item **, char *, int, time_t))
 
void restore_attr OF ((struct attr_item **))
 
int ExprMatch OF ((char *, char *))
 
int makedir OF ((char *))
 
int matchname OF ((int, int, char **, char *))
 
int tar OF ((gzFile, int, int, int, char **))
 
void help OF ((int))
 
int main OF ((int, char **))
 
char * TGZfname (const char *arcname)
 
void TGZnotfound (const char *arcname)
 
int getoct (char *p, int width)
 
char * strtime (time_t *t)
 
int setfiletime (char *fname, time_t ftime)
 
void push_attr (struct attr_item **list, char *fname, int mode, time_t time)
 
void restore_attr (struct attr_item **list)
 
int ExprMatch (char *string, char *expr)
 
int makedir (char *newdir)
 
int matchname (int arg, int argc, char **argv, char *fname)
 
int tar (gzFile in, int action, int arg, int argc, char **argv)
 
void help (int exitval)
 
void error (const char *msg)
 
int main (int argc, char **argv)
 

Variables

char * prog
 
const char * TGZsuffix [] = { "\0", ".tar", ".tar.gz", ".taz", ".tgz", NULL }
 

Macro Definition Documentation

◆ AREGTYPE

#define AREGTYPE   '\0' /* regular file */

Definition at line 43 of file untgz.c.

Referenced by tar().

◆ BLKTYPE

#define BLKTYPE   '4' /* block special */

Definition at line 47 of file untgz.c.

◆ BLOCKSIZE

#define BLOCKSIZE   512

Definition at line 65 of file untgz.c.

Referenced by tar().

◆ CHRTYPE

#define CHRTYPE   '3' /* character special */

Definition at line 46 of file untgz.c.

◆ CONTTYPE

#define CONTTYPE   '7' /* reserved */

Definition at line 50 of file untgz.c.

◆ DIRTYPE

#define DIRTYPE   '5' /* directory */

Definition at line 48 of file untgz.c.

Referenced by tar().

◆ FIFOTYPE

#define FIFOTYPE   '6' /* FIFO special */

Definition at line 49 of file untgz.c.

◆ GNUTYPE_DUMPDIR

#define GNUTYPE_DUMPDIR   'D' /* file names from dumped directory */

Definition at line 54 of file untgz.c.

◆ GNUTYPE_LONGLINK

#define GNUTYPE_LONGLINK   'K' /* long link name */

Definition at line 55 of file untgz.c.

Referenced by tar().

◆ GNUTYPE_LONGNAME

#define GNUTYPE_LONGNAME   'L' /* long file name */

Definition at line 56 of file untgz.c.

Referenced by tar().

◆ GNUTYPE_MULTIVOL

#define GNUTYPE_MULTIVOL   'M' /* continuation of file from another volume */

Definition at line 57 of file untgz.c.

◆ GNUTYPE_NAMES

#define GNUTYPE_NAMES   'N' /* file name that does not fit into main hdr */

Definition at line 58 of file untgz.c.

◆ GNUTYPE_SPARSE

#define GNUTYPE_SPARSE   'S' /* sparse file */

Definition at line 59 of file untgz.c.

◆ GNUTYPE_VOLHDR

#define GNUTYPE_VOLHDR   'V' /* tape/volume header */

Definition at line 60 of file untgz.c.

◆ ISSPECIAL

#define ISSPECIAL (   c)    (((c) == '*') || ((c) == '/'))

Definition at line 288 of file untgz.c.

Referenced by ExprMatch().

◆ LNKTYPE

#define LNKTYPE   '1' /* link */

Definition at line 44 of file untgz.c.

◆ REGTYPE

#define REGTYPE   '0' /* regular file */

Definition at line 42 of file untgz.c.

Referenced by tar().

◆ SHORTNAMESIZE

#define SHORTNAMESIZE   100

Definition at line 66 of file untgz.c.

Referenced by tar().

◆ SYMTYPE

#define SYMTYPE   '2' /* reserved */

Definition at line 45 of file untgz.c.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
TGZ_EXTRACT 
TGZ_LIST 
TGZ_INVALID 

Definition at line 103 of file untgz.c.

Function Documentation

◆ error()

void error ( const char *  msg)

Definition at line 593 of file untgz.c.

References prog.

Referenced by main(), push_attr(), and tar().

◆ ExprMatch()

int ExprMatch ( char *  string,
char *  expr 
)

Definition at line 290 of file untgz.c.

References ISSPECIAL.

Referenced by matchname().

◆ getoct()

int getoct ( char *  p,
int  width 
)

Definition at line 168 of file untgz.c.

Referenced by tar().

◆ help()

void help ( int  exitval)

Definition at line 581 of file untgz.c.

References zlibVersion().

Referenced by main().

◆ main()

int main ( int  argc,
char **  argv 
)

Definition at line 606 of file untgz.c.

References arg, error(), gzopen(), help(), NULL, prog, tar(), TGZ_EXTRACT, TGZ_LIST, TGZfname(), and TGZnotfound().

◆ makedir()

int makedir ( char *  newdir)

Definition at line 328 of file untgz.c.

References free(), and prog.

Referenced by tar().

◆ matchname()

int matchname ( int  arg,
int  argc,
char **  argv,
char *  fname 
)

Definition at line 371 of file untgz.c.

References ExprMatch().

Referenced by tar().

◆ OF() [1/12]

char* TGZfname OF ( (const char *)  )

◆ OF() [2/12]

int getoct OF ( (char *, int )

◆ OF() [3/12]

char* strtime OF ( (time_t *)  )

◆ OF() [4/12]

int setfiletime OF ( (char *, time_t)  )

◆ OF() [5/12]

void push_attr OF ( (struct attr_item **, char *, int, time_t)  )

◆ OF() [6/12]

void restore_attr OF ( (struct attr_item **)  )

◆ OF() [7/12]

int ExprMatch OF ( (char *, char *)  )

◆ OF() [8/12]

int makedir OF ( (char *)  )

◆ OF() [9/12]

int matchname OF ( (int, int, char **, char *)  )

◆ OF() [10/12]

int tar OF ( (gzFile, int, int, int, char **)  )

◆ OF() [11/12]

void help OF ( (int )

◆ OF() [12/12]

int main OF ( (int, char **)  )

◆ push_attr()

void push_attr ( struct attr_item **  list,
char *  fname,
int  mode,
time_t  time 
)

Definition at line 253 of file untgz.c.

References error(), malloc(), and NULL.

Referenced by tar().

◆ restore_attr()

void restore_attr ( struct attr_item **  list)

Definition at line 270 of file untgz.c.

References free(), NULL, and setfiletime().

Referenced by tar().

◆ setfiletime()

int setfiletime ( char *  fname,
time_t  ftime 
)

Definition at line 206 of file untgz.c.

References if(), INVALID_HANDLE_VALUE, and NULL.

Referenced by restore_attr().

◆ strtime()

char* strtime ( time_t *  t)

Definition at line 191 of file untgz.c.

References local.

Referenced by tar().

◆ tar()

int tar ( gzFile  in,
int  action,
int  arg,
int  argc,
char **  argv 
)

◆ TGZfname()

char* TGZfname ( const char *  arcname)

Definition at line 132 of file untgz.c.

References i, NULL, and TGZsuffix.

Referenced by main().

◆ TGZnotfound()

void TGZnotfound ( const char *  arcname)

Definition at line 152 of file untgz.c.

References i, prog, and TGZsuffix.

Referenced by main().

Variable Documentation

◆ prog

char* prog

Definition at line 125 of file untgz.c.

Referenced by error(), main(), makedir(), tar(), and TGZnotfound().

◆ TGZsuffix

const char* TGZsuffix[] = { "\0", ".tar", ".tar.gz", ".taz", ".tgz", NULL }

Definition at line 127 of file untgz.c.

Referenced by TGZfname(), and TGZnotfound().