Change size to unsinged long long, so if -1 is passed it will read as much as possible.
authorGlenn L McGrath <bug1@ihug.co.nz>
Thu, 12 Apr 2001 13:47:12 +0000 (13:47 -0000)
committerGlenn L McGrath <bug1@ihug.co.nz>
Thu, 12 Apr 2001 13:47:12 +0000 (13:47 -0000)
include/libbb.h
libbb/copy_file_chunk.c
libbb/libbb.h

index 46a0682b25b15966f892b1f0a12588088fe80a26..ec2a3a8ce5428f67633955484871f85a5ccdb6d0 100644 (file)
@@ -95,7 +95,7 @@ void reset_ino_dev_hashtable(void);
 
 int copy_file(const char *src_name, const char *dst_name,
                 int set_modes, int follow_links, int force_flag, int quiet_flag);
-int copy_file_chunk(FILE *src_file, FILE *dst_file, off_t chunksize);
+int copy_file_chunk(FILE *src_file, FILE *dst_file, unsigned long long chunksize);
 char *buildName(const char *dirName, const char *fileName);
 int makeString(int argc, const char **argv, char *buf, int bufLen);
 char *getChunk(int size);
@@ -234,10 +234,11 @@ typedef enum extract_function_e {
        extract_info = 4,
        extract_extract = 8,
        extract_verbose_extract = 16,
-       extract_list = 32
+       extract_list = 32,
+       extract_fsys_tarfile = 64
 } extract_function_t;
 extern int deb_extract(const char *package_filename, int function, char *target_dir);
-extern int untar(FILE *src_tar_file, int function, char *base_path);
+extern int untar(FILE *src_tar_file, int untar_function, char *base_path);
 
 extern int unzip(FILE *l_in_file, FILE *l_out_file);
 extern void gz_close(int gunzip_pid);
index 90b6b823874263ee7c99a45463b762f781aadd14..e9663c3542e5e12bf24cfe7e7adaddff7d6df3cd 100644 (file)
 
 /*
  * Copy chunksize bytes between two file descriptors
+ *
+ * unsigned long is used so that if -1 is passed as chunksize it will read as
+ * much as possible, and it will work with off_t or off64_t
  */
-extern int copy_file_chunk(FILE *src_file, FILE *dst_file, off_t chunksize)
+extern int copy_file_chunk(FILE *src_file, FILE *dst_file, unsigned long long chunksize)
 {
        off_t size, amount_written;
        char buffer[BUFSIZ]; /* BUFSIZ is declared in stdio.h */
index 46a0682b25b15966f892b1f0a12588088fe80a26..ec2a3a8ce5428f67633955484871f85a5ccdb6d0 100644 (file)
@@ -95,7 +95,7 @@ void reset_ino_dev_hashtable(void);
 
 int copy_file(const char *src_name, const char *dst_name,
                 int set_modes, int follow_links, int force_flag, int quiet_flag);
-int copy_file_chunk(FILE *src_file, FILE *dst_file, off_t chunksize);
+int copy_file_chunk(FILE *src_file, FILE *dst_file, unsigned long long chunksize);
 char *buildName(const char *dirName, const char *fileName);
 int makeString(int argc, const char **argv, char *buf, int bufLen);
 char *getChunk(int size);
@@ -234,10 +234,11 @@ typedef enum extract_function_e {
        extract_info = 4,
        extract_extract = 8,
        extract_verbose_extract = 16,
-       extract_list = 32
+       extract_list = 32,
+       extract_fsys_tarfile = 64
 } extract_function_t;
 extern int deb_extract(const char *package_filename, int function, char *target_dir);
-extern int untar(FILE *src_tar_file, int function, char *base_path);
+extern int untar(FILE *src_tar_file, int untar_function, char *base_path);
 
 extern int unzip(FILE *l_in_file, FILE *l_out_file);
 extern void gz_close(int gunzip_pid);