+in the rsync source code distribution in the "support" subdirectory.
+
+The %i format is a set of cryptic characters that are output as follows:
+
+quote(tt( *Xcstpog ITEM_NAME))
+
+The bf(*) is either bf(<) (receive), bf(>) (send), or bf(*) (--dry-run) if
+the item is being transferred, otherwise it is a space. This lets you
+distinguish between a file that is getting its attributes changed and a
+file whose content is being updated. Note that when a symlink or a device
+gets its value changed, that is considered to be a transfer.
+
+The bf(X) will be replaced by one of the following: an "f" for a file, a
+"d" for a dir, an "L" for a symlink, or a "D" for a device.
+
+The rest of the letters in the string above are the actual letters that
+will be output if the associated attribute for the item is being updated;
+otherwise the letter will be replaced by a "." for no change, a "+"
+for a new item, or a "?" if the attribute is not known (which happens when
+talking to an older rsync). The meanings of the attribute letters are as
+follows:
+
+quote(itemize(
+ it() A bf(c) means the checksum of the file is different and will be
+ updated by the file transfer (requries bf(--checksum)).
+ it() A bf(s) means the size of the file is different and will be updated
+ by the file transfer.
+ it() A bf(t) means the modified time is different and is being updated to
+ the server's value (requires bf(--times)). An alternate value of bf(T)
+ means that the time will be set to the transfer time, which happens
+ anytime a symlink is transferred, or when a file or device is transferred
+ without bf(--times).
+ it() A bf(p) means the permissions are different and are being updated to
+ the server's value (requires bf(--perms)).
+ it() An bf(o) means the owner is being updated (requires bf(--owner) and
+ root privileges).
+ it() A bf(g) means the group is being updated (requires bf(--group) and
+ the authority to set the requested group).
+))