- dirs and symlinks have changed, which makes the outputting of the
- information more consistent and less prone to screen corruption (it
- resorts to the old-style outputting of generator-created change-
- messages for older protocol versions).
-
- - If --inplace is specified, the generator flags any transfer that is
- using an alternate basis file so that the sender can use the entire
- file in the rsync algorithm (unlike a normal --inplace update).
+ dirs and symlinks have changed (instead of producing a message),
+ which makes the outputting of the information more consistent and
+ less prone to screen corruption (because the local receiver/sender is
+ now outputting all the file-change info messages).
+
+ - If a file is being hard-linked, the ITEM_XNAME_FOLLOWS bit is enabled
+ in the flag-word and the name of the file that was linked immediately
+ follows in vstring format (see below).
+
+ - If a file is being transferred with an alternate-basis file, the
+ ITEM_BASIS_TYPE_FOLLOWS bit is enabled in the flag-word and a single
+ byte follows, indicating what type of basis file was chosen. If that
+ indicates that a fuzzy-match was selected, the ITEM_XNAME_FOLLOWS bit
+ is set in the flag-word and the name of the match in vstring format
+ follows the basis byte. A vstring is a variable length string that
+ has its size written prior to the string, and no terminating null.
+ If the string is from 1-127 bytes, the length is a single byte. If
+ it is from 128-32767 bytes, the length is written as ((len >> 8) |
+ 0x80) followed by (len % 0x100).