At 11/01/2016 06:22 PM, David Sterba wrote:
On Tue, Nov 01, 2016 at 04:01:44PM +0800, Qu Wenruo wrote:
+/*
+ * Underlying PRINT_DUMP, the only difference is how we handle
+ * the full path.
+ */
+static int __print_dump(int subvol, void *user, const char *path,
+ const char *title, const char *fmt, ...)
printf-like the __attribute__ ((format (printf, ...)))
+{
+ struct btrfs_dump_send_args *r = user;
+ char real_title[TITLE_WIDTH + 1] = { 0 };
+ char full_path[PATH_MAX] = {0};
+ char *out_path;
+ va_list args;
+ int ret;
+
+ if (subvol) {
+ PATH_CAT_OR_RET(title, r->full_subvol_path, r->root_path, path, ret);
+ out_path = r->full_subvol_path;
+ } else {
+ PATH_CAT_OR_RET(title, full_path, r->full_subvol_path, path, ret);
+ out_path = full_path;
+ }
+ string_escape_inplace(out_path, " \n\t\\");
+
+ /* Append ':' to title */
+ strncpy(real_title, title, TITLE_WIDTH - 1);
+ strncat(real_title, ":", TITLE_WIDTH);
I'd rather avoid such string operations, ':', just print everything.
I'm completely OK to remove the ':'.
+
+ /* Unified header, */
+ printf("%-*s%-*s", TITLE_WIDTH, real_title, PATH_WIDTH, out_path);
PATH_WIDTH is used only here, please hardcode it into the format string.
The rest of the patch looks good. I think I've seen some artifacts in
the output, but we can tune this later.
Would you like to share the artifacts so I can handle them in next update?
+ ret = strftime(dest, max_size, "%Y-%m-%d %H:%M:%S", tm);
We should use the RFC 3339 format, as it's standardized and also is a
string without whitespace.
Will use RFC 3339 in next version.
Thanks,
Qu
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html