of storing it into the files[] array.
- Made flist_find() return "no match" if the found item differs in
its directory-ness from the search item.
- Changed f_name_cmp() to sort sub-directories after non-directories
for each directory's contents. This makes things like the upcoming
--fuzzy patch easier to get right.
- One complicating factor is that clean_flist() needed some extra
code to ensure that a directory doesn't duplicate a non-directory
of the same name.
- Make sure that the "strip_root" code in clean_flist() (for relative
paths) strips off all leading slashes.
trying to stat() any items inside that dir's hierarchy. This fixes
a bug where a symlink to a dir getting replaced by a dir with
identical contents to the dir at the other end of the symlink would
not report the updated files in the new hierarchy. (See bug #1673)
apply to the indicated (sender/receiver) side.
- Added the hide/show and protect/risk filter rules as an alternate
way to specify sender-/receiver-specific include/exclude rules.
- send_rules() now allows f_out to be -1 to indicate that the list
should be scanned but not sent.
- send_rules() now filters the list to remove any items that don't
apply to the current side (after sending the item to the other
side when f_out != -1).
- {send,recv}_filter_list() now transfer the list, even when the
receiver is the server and --delete-excluded was specified (the
exchanged list is appropriately filtered, of course).
- recv_filter_list() uses send_rules() to trim non-applicable rules
when we're a local-server (because we got our filter list without
send/recv calls when fork() duplicated it).
of all the conditional code to support that.
- Improved the comment before send_directory() to indicate that it
gets called with f == -1 from delete_in_dir().
have been refused on the server daemon. This allows us to reject
implied options (e.g. if --partial is refused and -P specified).
- Changed the handling of the --delete refusals from the old idiom
of upgrading "delete" to "delete*" into the new idiom of checking
if refused_delete is set when we determine --delete was implied.
- Changed the --del option from a popt alias into a normal option.
- Mark all the daemon options as refused when a daemon is parsing
the over-the-socket options.
- Created a new function, create_refuse_error(), which is now called
from all the spots that check for refused options.
- Don't call clean_fname() on an empty string -- either reject it
or handle it without erroneously expanding the string.
- If --delay-updates was specified without a --partial-dir option,
don't send the default "--partial-dir=.~tmp~" option if the server
is the receiver -- just let it default.
- Modified f_name_cmp() so that, beginning with protocol 29,
it will guarantee that a directory name will sort one slot
before its contents (prior versions could sort other items
in between in rare instances).