Wayne Davison [Tue, 5 Dec 2006 15:59:53 +0000 (15:59 +0000)]
Saved 9 more bytes per file in a typical transfer by making the length
32 bits by default, by removing the basename pointer, and by making the
mode value a unsigned short.
Wayne Davison [Sun, 3 Dec 2006 06:44:16 +0000 (06:44 +0000)]
- Typical tranfers now save 12-20 bytes per file because several vars
were moved out of file_struct into an optional member-var setup.
- Renamed and reorganized the FLAG_* defines.
- Use NDX_DONE instead of a literal -1 when sending/checking the
end-of-phase index value.
Wayne Davison [Fri, 24 Nov 2006 08:38:44 +0000 (08:38 +0000)]
- Fixed a bug when sending a negative 64-bit number (which may not
be needed, but it at least works right now).
- Improved the transmission of 32-bit negative numbers on systems
where the 32-bit type is larger than 32 bits.
- Changed the sending of 64-bit numbers for protocol 30: we send
them in MSB-first order with the number of bytes used in the
transmission encoded into the earliest bits. This lets us save
transmitted bytes for both small and large numbers. The new
method sends from 3 to 9 bytes, the old sent either 4 or 12.
Wayne Davison [Sat, 11 Nov 2006 16:39:57 +0000 (16:39 +0000)]
- Added the 'p' (perishable) flag to the filter rules, as suggested
by Matt.
- If ignore_perishable is set, we ignore all perishable rules.
- Mark all default-cvsignore rules as perishable (e.g. excludes such
as *.o CVS .svn/ will not prevent a directory from being deleted).
Wayne Davison [Sat, 11 Nov 2006 16:39:02 +0000 (16:39 +0000)]
- Restored some of Matt's suggested logic that I left out, as it
is needed to get --dry-run to output appropriately.
- Got rid of DR_PINNED from the enum delret.
- Set a flag when we're deleting outside the transfer hierarchy and
initialize a counter that flist.c will use to count excluded files.
Wayne Davison [Sat, 11 Nov 2006 15:34:31 +0000 (15:34 +0000)]
When make_file() gets a stat() error on a file, the check-for-
exclusion-before-reporting-an-error code allows a dir-specific
rule to match the unknown file, not just a non-dir rule.
Wayne Davison [Sat, 11 Nov 2006 14:45:00 +0000 (14:45 +0000)]
- Make delete_dir_contents() use less stack by recursing directly
to itself, and then calling delete_item() w/o DEL_RECURSE.
- Fixed the return value handling of delete_dir_contents().
Wayne Davison [Sat, 11 Nov 2006 07:03:57 +0000 (07:03 +0000)]
My adaptation of Matt's cleanup of the delete_item() code.
The new code splits out part of the directory deletion into
its own function, delete_dir_contents(), and it outputs more
warnings when something could not be deleted.
Wayne Davison [Fri, 10 Nov 2006 07:13:21 +0000 (07:13 +0000)]
- Fixed a problem where the real stat struct for a newly-created
root-of-transfer directory could get overwritten by the check
for basis dirs.
- Fixed a potential problem where the stat struct for a new dir
could get passed uninitialized to delete_in_dir().
Wayne Davison [Fri, 10 Nov 2006 05:06:56 +0000 (05:06 +0000)]
- Improved try_dests_non() so that it works with all non-regular
files (including dirs).
- Changed the directory-creating code to call try_dests_non() when a
--*-dest option is used.
- Revamped the device/special-files code to have the same logic as
the symlink code, making it both simpler and more correct.
- All the above makes us output changes for all items consistently
when a --*-dest option is used.
- Fixed an output bug in try_dests_reg() and try_dests_non() when
-ii is enabled (we use to fail to output unchanged files).