2006-03-25 17:40:51 +00:00
|
|
|
|
--- cpio-2.6/src/util.c.lfs 2004-09-08 12:44:49.000000000 +0200
|
|
|
|
|
+++ cpio-2.6/src/util.c 2006-03-25 13:34:10.000000000 +0100
|
2005-01-14 13:39:53 +00:00
|
|
|
|
@@ -207,7 +207,7 @@
|
|
|
|
|
Exit with an error if end of file is reached. */
|
|
|
|
|
|
|
|
|
|
static int
|
|
|
|
|
-disk_fill_input_buffer (int in_des, int num_bytes)
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+disk_fill_input_buffer (int in_des, off_t num_bytes)
|
2005-01-14 13:39:53 +00:00
|
|
|
|
{
|
|
|
|
|
in_buff = input_buffer;
|
|
|
|
|
num_bytes = (num_bytes < DISK_IO_BLOCK_SIZE) ? num_bytes : DISK_IO_BLOCK_SIZE;
|
2006-03-15 16:23:55 +00:00
|
|
|
|
@@ -227,10 +227,10 @@
|
2005-01-14 13:39:53 +00:00
|
|
|
|
When `out_buff' fills up, flush it to file descriptor OUT_DES. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
-tape_buffered_write (char *in_buf, int out_des, long num_bytes)
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+tape_buffered_write (char *in_buf, int out_des, off_t num_bytes)
|
2005-01-14 13:39:53 +00:00
|
|
|
|
{
|
|
|
|
|
- register long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
2006-03-15 16:23:55 +00:00
|
|
|
|
- register long space_left; /* Room left in output buffer. */
|
|
|
|
|
+ off_t bytes_left = num_bytes; /* Bytes needing to be copied. */
|
|
|
|
|
+ off_t space_left; /* Room left in output buffer. */
|
2005-01-14 13:39:53 +00:00
|
|
|
|
|
|
|
|
|
while (bytes_left > 0)
|
2006-03-15 16:23:55 +00:00
|
|
|
|
{
|
|
|
|
|
@@ -254,10 +254,10 @@
|
2005-01-14 13:39:53 +00:00
|
|
|
|
When `out_buff' fills up, flush it to file descriptor OUT_DES. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
-disk_buffered_write (char *in_buf, int out_des, long num_bytes)
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+disk_buffered_write (char *in_buf, int out_des, off_t num_bytes)
|
|
|
|
|
{
|
|
|
|
|
- register long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
|
|
|
|
- register long space_left; /* Room left in output buffer. */
|
|
|
|
|
+ off_t bytes_left = num_bytes; /* Bytes needing to be copied. */
|
|
|
|
|
+ off_t space_left; /* Room left in output buffer. */
|
|
|
|
|
|
|
|
|
|
while (bytes_left > 0)
|
|
|
|
|
{
|
|
|
|
|
@@ -282,10 +282,10 @@
|
|
|
|
|
When `in_buff' is exhausted, refill it from file descriptor IN_DES. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
-tape_buffered_read (char *in_buf, int in_des, long num_bytes)
|
|
|
|
|
+tape_buffered_read (char *in_buf, int in_des, off_t num_bytes)
|
2005-01-14 13:39:53 +00:00
|
|
|
|
{
|
|
|
|
|
- register long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
2006-03-15 16:23:55 +00:00
|
|
|
|
- register long space_left; /* Bytes to copy from input buffer. */
|
|
|
|
|
+ off_t bytes_left = num_bytes; /* Bytes needing to be copied. */
|
|
|
|
|
+ off_t space_left; /* Bytes to copy from input buffer. */
|
2005-01-14 13:39:53 +00:00
|
|
|
|
|
|
|
|
|
while (bytes_left > 0)
|
2006-03-15 16:23:55 +00:00
|
|
|
|
{
|
|
|
|
|
@@ -376,10 +376,10 @@
|
2005-07-01 14:37:24 +00:00
|
|
|
|
/* Skip the next NUM_BYTES bytes of file descriptor IN_DES. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
-tape_toss_input (int in_des, long num_bytes)
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+tape_toss_input (int in_des, off_t num_bytes)
|
2005-07-01 14:37:24 +00:00
|
|
|
|
{
|
|
|
|
|
- register long bytes_left = num_bytes; /* Bytes needing to be copied. */
|
2006-03-15 16:23:55 +00:00
|
|
|
|
- register long space_left; /* Bytes to copy from input buffer. */
|
|
|
|
|
+ off_t bytes_left = num_bytes; /* Bytes needing to be copied. */
|
|
|
|
|
+ off_t space_left; /* Bytes to copy from input buffer. */
|
2005-07-01 14:37:24 +00:00
|
|
|
|
|
|
|
|
|
while (bytes_left > 0)
|
2006-03-15 16:23:55 +00:00
|
|
|
|
{
|
2005-07-01 14:37:24 +00:00
|
|
|
|
@@ -404,12 +404,12 @@
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
-write_nuls_to_file (long num_bytes, int out_des,
|
2006-03-15 16:23:55 +00:00
|
|
|
|
- void (*writer) (char *in_buf, int out_des, long num_bytes))
|
|
|
|
|
+write_nuls_to_file (off_t num_bytes, int out_des,
|
|
|
|
|
+ void (*writer) (char *in_buf, int out_des, off_t num_bytes))
|
2005-01-14 13:39:53 +00:00
|
|
|
|
{
|
|
|
|
|
- long blocks;
|
2006-03-15 16:23:55 +00:00
|
|
|
|
- long extra_bytes;
|
2005-01-14 13:39:53 +00:00
|
|
|
|
- long i;
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+ off_t blocks;
|
|
|
|
|
+ off_t extra_bytes;
|
|
|
|
|
+ off_t i;
|
2005-01-14 13:39:53 +00:00
|
|
|
|
|
|
|
|
|
blocks = num_bytes / 512;
|
|
|
|
|
extra_bytes = num_bytes % 512;
|
2006-03-15 16:23:55 +00:00
|
|
|
|
@@ -428,7 +428,7 @@
|
2005-01-14 13:39:53 +00:00
|
|
|
|
NUM_BYTES is the number of bytes to copy. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
-copy_files_tape_to_disk (int in_des, int out_des, long num_bytes)
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+copy_files_tape_to_disk (int in_des, int out_des, off_t num_bytes)
|
2005-01-14 13:39:53 +00:00
|
|
|
|
{
|
2006-03-15 16:23:55 +00:00
|
|
|
|
long size;
|
|
|
|
|
long k;
|
2005-01-14 13:39:53 +00:00
|
|
|
|
@@ -458,13 +458,13 @@
|
|
|
|
|
NUM_BYTES is the number of bytes to copy. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
-copy_files_disk_to_tape (int in_des, int out_des, long num_bytes,
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+copy_files_disk_to_tape (int in_des, int out_des, off_t num_bytes,
|
2005-01-14 13:39:53 +00:00
|
|
|
|
char *filename)
|
|
|
|
|
{
|
2006-03-15 16:23:55 +00:00
|
|
|
|
long size;
|
|
|
|
|
long k;
|
2005-01-14 13:39:53 +00:00
|
|
|
|
int rc;
|
|
|
|
|
- long original_num_bytes;
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+ off_t original_num_bytes;
|
2005-01-14 13:39:53 +00:00
|
|
|
|
|
|
|
|
|
original_num_bytes = num_bytes;
|
|
|
|
|
|
|
|
|
|
@@ -476,10 +476,10 @@
|
|
|
|
|
num_bytes : DISK_IO_BLOCK_SIZE))
|
|
|
|
|
{
|
|
|
|
|
if (rc > 0)
|
|
|
|
|
- error (0, 0, _("File %s shrunk by %ld bytes, padding with zeros"),
|
|
|
|
|
+ error (0, 0, _("File %s shrunk by %lld bytes, padding with zeros"),
|
|
|
|
|
filename, num_bytes);
|
|
|
|
|
else
|
|
|
|
|
- error (0, 0, _("Read error at byte %ld in file %s, padding with zeros"),
|
|
|
|
|
+ error (0, 0, _("Read error at byte %lld in file %s, padding with zeros"),
|
|
|
|
|
original_num_bytes - num_bytes, filename);
|
|
|
|
|
write_nuls_to_file (num_bytes, out_des, tape_buffered_write);
|
|
|
|
|
break;
|
|
|
|
|
@@ -505,12 +505,12 @@
|
|
|
|
|
NUM_BYTES is the number of bytes to copy. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
-copy_files_disk_to_disk (int in_des, int out_des, long num_bytes,
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+copy_files_disk_to_disk (int in_des, int out_des, off_t num_bytes,
|
2005-01-14 13:39:53 +00:00
|
|
|
|
char *filename)
|
|
|
|
|
{
|
2006-03-15 16:23:55 +00:00
|
|
|
|
long size;
|
|
|
|
|
long k;
|
2005-01-14 13:39:53 +00:00
|
|
|
|
- long original_num_bytes;
|
2006-03-15 16:23:55 +00:00
|
|
|
|
+ off_t original_num_bytes;
|
2005-01-14 13:39:53 +00:00
|
|
|
|
int rc;
|
|
|
|
|
|
|
|
|
|
original_num_bytes = num_bytes;
|
|
|
|
|
@@ -520,10 +520,10 @@
|
|
|
|
|
if (rc = disk_fill_input_buffer (in_des, num_bytes))
|
|
|
|
|
{
|
|
|
|
|
if (rc > 0)
|
|
|
|
|
- error (0, 0, _("File %s shrunk by %ld bytes, padding with zeros"),
|
|
|
|
|
+ error (0, 0, _("File %s shrunk by %lld bytes, padding with zeros"),
|
|
|
|
|
filename, num_bytes);
|
|
|
|
|
else
|
|
|
|
|
- error (0, 0, _("Read error at byte %ld in file %s, padding with zeros"),
|
|
|
|
|
+ error (0, 0, _("Read error at byte %lld in file %s, padding with zeros"),
|
|
|
|
|
original_num_bytes - num_bytes, filename);
|
|
|
|
|
write_nuls_to_file (num_bytes, out_des, disk_buffered_write);
|
|
|
|
|
break;
|
2006-03-15 16:23:55 +00:00
|
|
|
|
@@ -544,7 +544,7 @@
|
|
|
|
|
/* Warn if file changed while it was being copied. */
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
-warn_if_file_changed (char *file_name, unsigned long old_file_size,
|
|
|
|
|
+warn_if_file_changed (char *file_name, off_t old_file_size,
|
|
|
|
|
unsigned long old_file_mtime)
|
|
|
|
|
{
|
|
|
|
|
struct stat new_file_stat;
|
|
|
|
|
@@ -696,8 +696,8 @@
|
|
|
|
|
temp = (temp + 1) % hash_size)
|
|
|
|
|
{
|
|
|
|
|
if (hash_table[temp]->inode == node_num
|
|
|
|
|
- && hash_table[start]->major_num == major_num
|
|
|
|
|
- && hash_table[start]->minor_num == minor_num)
|
|
|
|
|
+ && hash_table[temp]->major_num == major_num
|
|
|
|
|
+ && hash_table[temp]->minor_num == minor_num)
|
|
|
|
|
return hash_table[temp]->file_name;
|
|
|
|
|
}
|
|
|
|
|
}
|
2006-03-25 17:40:51 +00:00
|
|
|
|
--- cpio-2.6/src/copyin.c.lfs 2004-09-08 13:10:02.000000000 +0200
|
|
|
|
|
+++ cpio-2.6/src/copyin.c 2006-03-25 13:35:43.000000000 +0100
|
|
|
|
|
@@ -106,7 +106,7 @@
|
|
|
|
|
header type. */
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
-tape_skip_padding (int in_file_des, int offset)
|
|
|
|
|
+tape_skip_padding (int in_file_des, off_t offset)
|
|
|
|
|
{
|
|
|
|
|
int pad;
|
|
|
|
|
|
|
|
|
|
@@ -911,7 +911,7 @@
|
|
|
|
|
printf ("%3u, %3u ", file_hdr->c_rdev_maj,
|
|
|
|
|
file_hdr->c_rdev_min);
|
|
|
|
|
else
|
|
|
|
|
- printf ("%8lu ", file_hdr->c_filesize);
|
|
|
|
|
+ printf ("%8llu ", file_hdr->c_filesize);
|
|
|
|
|
|
|
|
|
|
printf ("%s ", tbuf + 4);
|
|
|
|
|
|
|
|
|
|
@@ -1153,7 +1153,7 @@
|
|
|
|
|
tape_buffered_read (ascii_header, in_des, 70L);
|
|
|
|
|
ascii_header[70] = '\0';
|
|
|
|
|
sscanf (ascii_header,
|
|
|
|
|
- "%6lo%6lo%6lo%6lo%6lo%6lo%6lo%11lo%6lo%11lo",
|
|
|
|
|
+ "%6lo%6lo%6lo%6lo%6lo%6lo%6lo%11lo%6lo%11llo",
|
|
|
|
|
&dev, &file_hdr->c_ino,
|
|
|
|
|
&file_hdr->c_mode, &file_hdr->c_uid, &file_hdr->c_gid,
|
|
|
|
|
&file_hdr->c_nlink, &rdev, &file_hdr->c_mtime,
|
|
|
|
|
@@ -1211,7 +1211,7 @@
|
|
|
|
|
tape_buffered_read (ascii_header, in_des, 104L);
|
|
|
|
|
ascii_header[104] = '\0';
|
|
|
|
|
sscanf (ascii_header,
|
|
|
|
|
- "%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx%8lx",
|
|
|
|
|
+ "%8lx%8lx%8lx%8lx%8lx%8lx%8llx%8lx%8lx%8lx%8lx%8lx%8lx",
|
|
|
|
|
&file_hdr->c_ino, &file_hdr->c_mode, &file_hdr->c_uid,
|
|
|
|
|
&file_hdr->c_gid, &file_hdr->c_nlink, &file_hdr->c_mtime,
|
|
|
|
|
&file_hdr->c_filesize, &file_hdr->c_dev_maj, &file_hdr->c_dev_min,
|
|
|
|
|
--- cpio-2.6/src/extern.h.lfs 2004-09-08 12:49:57.000000000 +0200
|
|
|
|
|
+++ cpio-2.6/src/extern.h 2006-03-25 13:34:10.000000000 +0100
|
|
|
|
|
@@ -161,14 +161,14 @@
|
|
|
|
|
void tape_empty_output_buffer P_((int out_des));
|
|
|
|
|
void disk_empty_output_buffer P_((int out_des));
|
|
|
|
|
void swahw_array P_((char *ptr, int count));
|
|
|
|
|
-void tape_buffered_write P_((char *in_buf, int out_des, long num_bytes));
|
|
|
|
|
-void tape_buffered_read P_((char *in_buf, int in_des, long num_bytes));
|
|
|
|
|
+void tape_buffered_write P_((char *in_buf, int out_des, off_t num_bytes));
|
|
|
|
|
+void tape_buffered_read P_((char *in_buf, int in_des, off_t num_bytes));
|
|
|
|
|
int tape_buffered_peek P_((char *peek_buf, int in_des, int num_bytes));
|
|
|
|
|
-void tape_toss_input P_((int in_des, long num_bytes));
|
|
|
|
|
-void copy_files_tape_to_disk P_((int in_des, int out_des, long num_bytes));
|
|
|
|
|
-void copy_files_disk_to_tape P_((int in_des, int out_des, long num_bytes, char *filename));
|
|
|
|
|
-void copy_files_disk_to_disk P_((int in_des, int out_des, long num_bytes, char *filename));
|
|
|
|
|
-void warn_if_file_changed P_((char *file_name, unsigned long old_file_size,
|
|
|
|
|
+void tape_toss_input P_((int in_des, off_t num_bytes));
|
|
|
|
|
+void copy_files_tape_to_disk P_((int in_des, int out_des, off_t num_bytes));
|
|
|
|
|
+void copy_files_disk_to_tape P_((int in_des, int out_des, off_t num_bytes, char *filename));
|
|
|
|
|
+void copy_files_disk_to_disk P_((int in_des, int out_des, off_t num_bytes, char *filename));
|
|
|
|
|
+void warn_if_file_changed P_((char *file_name, off_t old_file_size,
|
|
|
|
|
unsigned long old_file_mtime));
|
|
|
|
|
void create_all_directories P_((char *name));
|
|
|
|
|
void prepare_append P_((int out_file_des));
|
|
|
|
|
--- cpio-2.6/src/cpiohdr.h.lfs 2003-11-21 15:48:13.000000000 +0100
|
|
|
|
|
+++ cpio-2.6/src/cpiohdr.h 2006-03-25 13:34:10.000000000 +0100
|
2006-03-15 16:23:55 +00:00
|
|
|
|
@@ -34,8 +34,8 @@
|
|
|
|
|
unsigned short c_mtimes[2];
|
|
|
|
|
unsigned short c_namesize;
|
|
|
|
|
unsigned short c_filesizes[2];
|
|
|
|
|
- unsigned long c_mtime; /* Long-aligned copy of `c_mtimes'. */
|
|
|
|
|
- unsigned long c_filesize; /* Long-aligned copy of `c_filesizes'. */
|
|
|
|
|
+ unsigned int c_mtime; /* aligned copy of `c_mtimes'. */
|
|
|
|
|
+ unsigned int c_filesize; /* aligned copy of `c_filesizes'. */
|
|
|
|
|
char *c_name;
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
@@ -76,7 +76,7 @@
|
|
|
|
|
unsigned long c_gid;
|
|
|
|
|
unsigned long c_nlink;
|
|
|
|
|
unsigned long c_mtime;
|
|
|
|
|
- unsigned long c_filesize;
|
|
|
|
|
+ off_t c_filesize;
|
|
|
|
|
long c_dev_maj;
|
|
|
|
|
long c_dev_min;
|
|
|
|
|
long c_rdev_maj;
|