]> granicus.if.org Git - strace/commitdiff
Introduce tprintf_comment and tprints_comment functions
authorDmitry V. Levin <ldv@altlinux.org>
Mon, 24 Apr 2017 19:31:54 +0000 (19:31 +0000)
committerDmitry V. Levin <ldv@altlinux.org>
Mon, 24 Apr 2017 19:31:54 +0000 (19:31 +0000)
* defs.h (tprintf_comment, tprints_comment): New prototypes.
* strace.c (tvprintf): New function.
(tprintf): Use it.
(tprintf_comment, tprints_comment): New functions.
* aio.c (tprint_lio_opcode): Use tprints_comment.
* dm.c (dm_decode_dm_target_spec, dm_decode_dm_target_deps,
dm_decode_dm_name_list, dm_decode_dm_target_versions,
dm_decode_dm_target_msg, dm_decode_string, dm_known_ioctl): Likewise.
* futex.c (SYS_FUNC(futex)): Likewise.
* perf.c (print_perf_event_attr): Likewise.
* seccomp.c (decode_bpf_code): Likewise.
* util.c (printxvals, printxval_searchn, printflags64): Likewise.
* btrfs.c (print_u64, btrfs_print_key_type, btrfs_print_objectid,
print_key_value_internal): Likewise.
(btrfs_ioctl): Use tprints_comment and tprintf_comment.
* dirent.c (SYS_FUNC(getdents)): Likewise.
* dirent64.c (SYS_FUNC(getdents64)): Likewise.
* execve.c (printargc): Use tprintf_comment.
* tests/btrfs.c (btrfs_test_get_dev_stats_ioctl,
btrfs_test_features_ioctls): Update expected output.

13 files changed:
aio.c
btrfs.c
defs.h
dirent.c
dirent64.c
dm.c
execve.c
futex.c
perf.c
seccomp.c
strace.c
tests/btrfs.c
util.c

diff --git a/aio.c b/aio.c
index e246b35351ae7495de58142c3eee8d8ccaf1f985..b69eb25f61f08be61d8bed3deefc487c0fecab91 100644 (file)
--- a/aio.c
+++ b/aio.c
@@ -73,7 +73,8 @@ tprint_lio_opcode(unsigned cmd)
                tprints(cmds[cmd].name);
                return cmds[cmd].sub;
        }
-       tprintf("%u /* SUB_??? */", cmd);
+       tprintf("%u", cmd);
+       tprints_comment("SUB_???");
        return SUB_NONE;
 }
 
diff --git a/btrfs.c b/btrfs.c
index e007040fd1fdc8209616c45cb55f165ed19f8687..4a1a46640f2e731356893843f867e50830c71f2b 100644 (file)
--- a/btrfs.c
+++ b/btrfs.c
@@ -180,7 +180,7 @@ print_u64(const char *name, uint64_t value)
 {
        tprintf(", %s=%" PRIu64, name, value);
        if (value == UINT64_MAX)
-               tprints(" /* UINT64_MAX */");
+               tprints_comment("UINT64_MAX");
 }
 
 #define print_member_u64(obj, name) print_u64(#name, obj->name)
@@ -261,19 +261,15 @@ btrfs_print_qgroup_limit(const struct btrfs_qgroup_limit *lim)
 static void
 btrfs_print_key_type(uint32_t type)
 {
-       const char *str = xlookup(btrfs_key_types, type);
        tprintf("%u", type);
-       if (str)
-               tprintf(" /* %s */", str);
+       tprints_comment(xlookup(btrfs_key_types, type));
 }
 
 static void
 btrfs_print_objectid(uint64_t objectid)
 {
-       const char *str = xlookup(btrfs_tree_objectids, objectid);
        tprintf("%" PRIu64, objectid);
-       if (str)
-               tprintf(" /* %s */", str);
+       tprints_comment(xlookup(btrfs_tree_objectids, objectid));
 }
 
 static void
@@ -412,7 +408,7 @@ print_key_value_internal(struct tcb *tcp, const char *name, uint64_t value)
        if (value) {
                tprintf(", %s=%" PRIu64, name, value);
                if (value == UINT64_MAX)
-                       tprints(" /* UINT64_MAX */");
+                       tprints_comment("UINT64_MAX");
        }
 }
 #define print_key_value(tcp, key, name)                                        \
@@ -610,7 +606,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
 
                tprintf("%" PRIu64, (uint64_t) args.len);
                if (args.len == UINT64_MAX)
-                       tprints(" /* UINT64_MAX */");
+                       tprints_comment("UINT64_MAX");
 
                tprints(", flags=");
                printflags64(btrfs_defrag_flags, args.flags,
@@ -702,35 +698,27 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
                printxval64(btrfs_dev_replace_results, args.result,
                            "BTRFS_IOCTL_DEV_REPLACE_RESULT_???");
                if (args.cmd == BTRFS_IOCTL_DEV_REPLACE_CMD_STATUS) {
-                       char buf[sizeof("HH:MM:SS") + 1];
-                       time_t time;
                        tprints(", ");
                        printxval64(btrfs_dev_replace_state,
                                   args.status.replace_state,
                                   "BTRFS_IOCTL_DEV_REPLACE_STATE_???");
-                       tprintf(", progress_1000=%" PRIu64 " /* ",
+                       tprintf(", progress_1000=%" PRIu64,
                                (uint64_t) args.status.progress_1000);
+
                        if (args.status.progress_1000 <= 1000)
-                               tprintf("%" PRIu64 ".%.2" PRIu64 "%%",
-                                       (uint64_t) args.status.progress_1000 / 10,
-                                       (uint64_t) args.status.progress_1000 % 10);
-                       else
-                               tprints("???");
-                       tprints(" */ ,");
-
-                       time = args.status.time_started;
-                       strftime(buf, sizeof(buf), "%T",
-                                localtime(&time));
-                       tprintf("time_started=%" PRIu64" /* %s */, ",
-                               (uint64_t) args.status.time_started, buf);
-
-                       time = args.status.time_stopped;
-                       strftime(buf, sizeof(buf), "%T",
-                                localtime(&time));
-                       tprintf("time_stopped=%" PRIu64" /* %s */, ",
-                               (uint64_t) args.status.time_stopped, buf);
-
-                       tprintf("num_write_errors=%" PRIu64
+                               tprintf_comment("%u.%u%%",
+                                       (unsigned) args.status.progress_1000 / 10,
+                                       (unsigned) args.status.progress_1000 % 10);
+
+                       tprintf(", time_started=%" PRIu64,
+                               (uint64_t) args.status.time_started);
+                       tprints_comment(sprinttime(args.status.time_started));
+
+                       tprintf(", time_stopped=%" PRIu64,
+                               (uint64_t) args.status.time_stopped);
+                       tprints_comment(sprinttime(args.status.time_stopped));
+
+                       tprintf(", num_write_errors=%" PRIu64
                                ", num_uncorrectable_read_errors=%" PRIu64,
                                (uint64_t) args.status.num_write_errors,
                                (uint64_t) args.status.num_uncorrectable_read_errors);
@@ -779,14 +767,17 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
                if (umove_or_printaddr(tcp, arg, &flarg))
                        break;
 
-               tprints("[ /* supported */ ");
+               tprints("[");
                btrfs_print_features(&flarg[0]);
+               tprints_comment("supported");
 
-               tprints(", /* safe to set */ ");
+               tprints(", ");
                btrfs_print_features(&flarg[1]);
+               tprints_comment("safe to set");
 
-               tprints(", /* safe to clear */ ");
+               tprints(", ");
                btrfs_print_features(&flarg[2]);
+               tprints_comment("safe to clear");
                tprints("]");
 
                break;
@@ -869,10 +860,8 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
                                tprints("...");
                                break;
                        }
-                       const char *name = xlookup(btrfs_dev_stats_values, i);
-                       if (name)
-                               tprintf("/* %s */ ", name);
                        tprintf("%" PRI__u64, args.values[i]);
+                       tprints_comment(xlookup(btrfs_dev_stats_values, i));
                }
                tprints("]}");
                break;
@@ -1108,7 +1097,7 @@ MPERS_PRINTER_DECL(int, btrfs_ioctl,
                                        args.start);
                                tprintf("%" PRI__u64, args.end);
                                if (args.end == UINT64_MAX)
-                                       tprints(" /* UINT64_MAX */");
+                                       tprints_comment("UINT64_MAX");
                                tprints(", flags=");
                                printflags64(btrfs_scrub_flags, args.flags,
                                             "BTRFS_SCRUB_???");
diff --git a/defs.h b/defs.h
index 5b81647c4b29a66f394590e0e04b706f806b2bd2..5a6b5fc6e5f069d9f183b01b038181988358497c 100644 (file)
--- a/defs.h
+++ b/defs.h
@@ -747,6 +747,8 @@ extern void line_ended(void);
 extern void tabto(void);
 extern void tprintf(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2));
 extern void tprints(const char *str);
+extern void tprintf_comment(const char *fmt, ...) ATTRIBUTE_FORMAT((printf, 1, 2));
+extern void tprints_comment(const char *str);
 
 #if SUPPORTED_PERSONALITIES > 1
 extern void set_personality(int personality);
index 2ba6fe7abef6249f4a16e8a656dab16ad4aa5ba4..32d2ed4c0b4892aa8573fcfdc2ac6ebb17e0e2d0 100644 (file)
--- a/dirent.c
+++ b/dirent.c
@@ -78,13 +78,13 @@ SYS_FUNC(getdents)
 
        if (entering(tcp)) {
                printfd(tcp, tcp->u_arg[0]);
-               tprints(", ");
                return 0;
        }
 
        const unsigned int count = tcp->u_arg[2];
 
        if (syserror(tcp) || !verbose(tcp)) {
+               tprints(", ");
                printaddr(tcp->u_arg[1]);
                tprintf(", %u", count);
                return 0;
@@ -101,6 +101,7 @@ SYS_FUNC(getdents)
        if (len) {
                buf = malloc(len);
                if (!buf || umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
+                       tprints(", ");
                        printaddr(tcp->u_arg[1]);
                        tprintf(", %u", count);
                        free(buf);
@@ -110,8 +111,9 @@ SYS_FUNC(getdents)
                buf = NULL;
        }
 
+       tprints(",");
        if (!abbrev(tcp))
-               tprints("[");
+               tprints(" [");
        for (i = 0; len && i <= len - sizeof(kernel_dirent); ) {
                kernel_dirent *d = (kernel_dirent *) &buf[i];
 
@@ -143,7 +145,7 @@ SYS_FUNC(getdents)
                }
                dents++;
                if (d->d_reclen < sizeof(kernel_dirent)) {
-                       tprints("/* d_reclen < sizeof(struct dirent) */");
+                       tprints_comment("d_reclen < sizeof(struct dirent)");
                        break;
                }
                i += d->d_reclen;
@@ -151,7 +153,7 @@ SYS_FUNC(getdents)
        if (!abbrev(tcp))
                tprints("]");
        else
-               tprintf("/* %u entries */", dents);
+               tprintf_comment("%u entries", dents);
        tprintf(", %u", count);
        free(buf);
        return 0;
index 448a2f1a5ea10117c4704a4c7700d7692eb59fc5..81bcebe65f038507bcfbe907952ea20579e072d6 100644 (file)
@@ -46,13 +46,13 @@ SYS_FUNC(getdents64)
 
        if (entering(tcp)) {
                printfd(tcp, tcp->u_arg[0]);
-               tprints(", ");
                return 0;
        }
 
        const unsigned int count = tcp->u_arg[2];
 
        if (syserror(tcp) || !verbose(tcp)) {
+               tprints(", ");
                printaddr(tcp->u_arg[1]);
                tprintf(", %u", count);
                return 0;
@@ -69,6 +69,7 @@ SYS_FUNC(getdents64)
        if (len) {
                buf = malloc(len);
                if (!buf || umoven(tcp, tcp->u_arg[1], len, buf) < 0) {
+                       tprints(", ");
                        printaddr(tcp->u_arg[1]);
                        tprintf(", %u", count);
                        free(buf);
@@ -78,8 +79,9 @@ SYS_FUNC(getdents64)
                buf = NULL;
        }
 
+       tprints(",");
        if (!abbrev(tcp))
-               tprints("[");
+               tprints(" [");
        for (i = 0; len && i <= len - d_name_offset; ) {
                struct dirent64 *d = (struct dirent64 *) &buf[i];
                if (!abbrev(tcp)) {
@@ -110,7 +112,7 @@ SYS_FUNC(getdents64)
                        tprints("}");
                }
                if (d->d_reclen < d_name_offset) {
-                       tprints("/* d_reclen < offsetof(struct dirent64, d_name) */");
+                       tprints_comment("d_reclen < offsetof(struct dirent64, d_name)");
                        break;
                }
                i += d->d_reclen;
@@ -119,7 +121,7 @@ SYS_FUNC(getdents64)
        if (!abbrev(tcp))
                tprints("]");
        else
-               tprintf("/* %u entries */", dents);
+               tprintf_comment("%u entries", dents);
        tprintf(", %u", count);
        free(buf);
        return 0;
diff --git a/dm.c b/dm.c
index c6e8072f312ec4485fc59feb953c871938e663d9..2dc43d43ecd5c44c1aebfa2929e94ce97b93a8c1 100644 (file)
--- a/dm.c
+++ b/dm.c
@@ -195,7 +195,7 @@ dm_decode_dm_target_spec(struct tcb *const tcp, const kernel_ulong_t addr,
 
 misplaced:
        tprints("???");
-       tprints(" /* misplaced struct dm_target_spec */");
+       tprints_comment("misplaced struct dm_target_spec");
 }
 
 bool
@@ -252,7 +252,7 @@ dm_decode_dm_target_deps(struct tcb *const tcp, const kernel_ulong_t addr,
 
 misplaced:
        tprints("???");
-       tprints(" /* misplaced struct dm_target_deps */");
+       tprints_comment("misplaced struct dm_target_deps");
 }
 
 static void
@@ -311,7 +311,7 @@ dm_decode_dm_name_list(struct tcb *const tcp, const kernel_ulong_t addr,
 
 misplaced:
        tprints("???");
-       tprints(" /* misplaced struct dm_name_list */");
+       tprints_comment("misplaced struct dm_name_list");
 }
 
 static void
@@ -368,7 +368,7 @@ dm_decode_dm_target_versions(struct tcb *const tcp, const kernel_ulong_t addr,
 
 misplaced:
        tprints("???");
-       tprints(" /* misplaced struct dm_target_versions */");
+       tprints_comment("misplaced struct dm_target_versions");
 }
 
 static void
@@ -402,7 +402,7 @@ dm_decode_dm_target_msg(struct tcb *const tcp, const kernel_ulong_t addr,
                tprints("}");
        } else {
                tprints("???");
-               tprints(" /* misplaced struct dm_target_msg */");
+               tprints_comment("misplaced struct dm_target_msg");
        }
 }
 
@@ -425,7 +425,7 @@ dm_decode_string(struct tcb *const tcp, const kernel_ulong_t addr,
                            QUOTE_0_TERMINATED);
        } else {
                tprints("???");
-               tprints(" /* misplaced string */");
+               tprints_comment("misplaced string");
        }
 }
 
@@ -503,14 +503,14 @@ dm_known_ioctl(struct tcb *const tcp, const unsigned int code,
         * ioctl fields
         */
        if (ioc->version[0] != DM_VERSION_MAJOR) {
-               tprints(" /* unsupported device mapper ABI version */");
+               tprints_comment("unsupported device mapper ABI version");
                goto skip;
        }
 
        tprintf(", data_size=%u", ioc->data_size);
 
        if (ioc->data_size < offsetof(struct dm_ioctl, data)) {
-               tprints(" /* data_size too small */");
+               tprints_comment("data_size too small");
                goto skip;
        }
 
index aa5303c3f44f5afc7c715afd092e0f4155cb7b26..9b1ee3a0cac98d5a7d32f547a29ca3aed860d81d 100644 (file)
--- a/execve.c
+++ b/execve.c
@@ -98,7 +98,7 @@ printargc(struct tcb *const tcp, kernel_ulong_t addr)
                if (!cp)
                        break;
        }
-       tprintf(" /* %u var%s%s */",
+       tprintf_comment("%u var%s%s",
                count, count == 1 ? "" : "s",
                unterminated ? ", unterminated" : "");
 }
diff --git a/futex.c b/futex.c
index 5267dc482cfd52d66699042a82da72d0c78d3c5c..0a6e46220a0467023cd09b67afb0b381cfb35753 100644 (file)
--- a/futex.c
+++ b/futex.c
@@ -51,6 +51,7 @@ SYS_FUNC(futex)
        const unsigned int val = tcp->u_arg[2];
        const unsigned int val2 = tcp->u_arg[3];
        const unsigned int val3 = tcp->u_arg[5];
+       const char *comment;
 
        printaddr(uaddr);
        tprints(", ");
@@ -94,15 +95,15 @@ SYS_FUNC(futex)
                tprints(", ");
                if ((val3 >> 28) & 8)
                        tprints("FUTEX_OP_OPARG_SHIFT<<28|");
-               if (printxval(futexwakeops, (val3 >> 28) & 0x7, NULL))
-                       tprints("<<28");
-               else
-                       tprints("<<28 /* FUTEX_OP_??? */");
+               comment = printxval(futexwakeops, (val3 >> 28) & 0x7, NULL)
+                       ? NULL : "FUTEX_OP_???";
+               tprints("<<28");
+               tprints_comment(comment);
                tprintf("|%#x<<12|", (val3 >> 12) & 0xfff);
-               if (printxval(futexwakecmps, (val3 >> 24) & 0xf, NULL))
-                       tprints("<<24");
-               else
-                       tprints("<<24 /* FUTEX_OP_CMP_??? */");
+               comment = printxval(futexwakecmps, (val3 >> 24) & 0xf, NULL)
+                       ? NULL : "FUTEX_OP_CMP_???";
+               tprints("<<24");
+               tprints_comment(comment);
                tprintf("|%#x", val3 & 0xfff);
                break;
        case FUTEX_WAIT_REQUEUE_PI:
diff --git a/perf.c b/perf.c
index 71a308328b34804ee1e544490a7eea36c4ad9ca7..f6ba6a999669a7edd8485c17867d7ef8109c0cff 100644 (file)
--- a/perf.c
+++ b/perf.c
@@ -217,10 +217,10 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr)
                           (attr->config >> 16) & 0xFF,
                           "PERF_COUNT_HW_CACHE_RESULT_???");
                tprints("<<16");
-               if (attr->config >> 24)
-                       tprintf("|%#" PRIx64 "<<24 "
-                               "/* PERF_COUNT_HW_CACHE_??? */",
-                               attr->config >> 24);
+               if (attr->config >> 24) {
+                       tprintf("|%#" PRIx64 "<<24", attr->config >> 24);
+                       tprints_comment("PERF_COUNT_HW_CACHE_???");
+               }
                break;
        case PERF_TYPE_RAW:
                /*
@@ -275,18 +275,7 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr)
                ", enable_on_exec=%u"
                ", task=%u"
                ", watermark=%u"
-               ", precise_ip=%u /* %s */"
-               ", mmap_data=%u"
-               ", sample_id_all=%u"
-               ", exclude_host=%u"
-               ", exclude_guest=%u"
-               ", exclude_callchain_kernel=%u"
-               ", exclude_callchain_user=%u"
-               ", mmap2=%u"
-               ", comm_exec=%u"
-               ", use_clockid=%u"
-               ", context_switch=%u"
-               ", write_backward=%u",
+               ", precise_ip=%u",
                attr->disabled,
                attr->inherit,
                attr->pinned,
@@ -302,7 +291,19 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr)
                attr->enable_on_exec,
                attr->task,
                attr->watermark,
-               attr->precise_ip, precise_ip_desc[attr->precise_ip],
+               attr->precise_ip);
+       tprints_comment(precise_ip_desc[attr->precise_ip]);
+       tprintf(", mmap_data=%u"
+               ", sample_id_all=%u"
+               ", exclude_host=%u"
+               ", exclude_guest=%u"
+               ", exclude_callchain_kernel=%u"
+               ", exclude_callchain_user=%u"
+               ", mmap2=%u"
+               ", comm_exec=%u"
+               ", use_clockid=%u"
+               ", context_switch=%u"
+               ", write_backward=%u",
                attr->mmap_data,
                attr->sample_id_all,
                attr->exclude_host,
@@ -319,9 +320,11 @@ print_perf_event_attr(struct tcb *const tcp, const kernel_ulong_t addr)
         * Print it only in case it is non-zero, since it may contain flags we
         * are not aware about.
         */
-       if (attr->__reserved_1)
-               tprintf(", __reserved_1=%#" PRIx64 " /* Bits 63..28 */",
+       if (attr->__reserved_1) {
+               tprintf(", __reserved_1=%#" PRIx64,
                        (uint64_t) attr->__reserved_1);
+               tprints_comment("Bits 63..28");
+       }
 
        if (attr->watermark)
                tprintf(", wakeup_watermark=%u", attr->wakeup_watermark);
index f778a6c4eaade4bf0339f52d0787141357164bae..4363fc0331cfb5ad5f840f291173a51ff338adbf 100644 (file)
--- a/seccomp.c
+++ b/seccomp.c
@@ -75,8 +75,10 @@ decode_bpf_code(uint16_t code)
                        break;
                case BPF_ST:
                case BPF_STX:
-                       if (i)
-                               tprintf("|%#x /* %s */", i, "BPF_???");
+                       if (i) {
+                               tprintf("|%#x", i);
+                               tprints_comment("BPF_???");
+                       }
                        break;
                case BPF_ALU:
                        tprints("|");
@@ -94,15 +96,19 @@ decode_bpf_code(uint16_t code)
                        tprints("|");
                        printxval(bpf_rval, BPF_RVAL(code), "BPF_???");
                        i &= ~BPF_RVAL(code);
-                       if (i)
-                               tprintf("|%#x /* %s */", i, "BPF_???");
+                       if (i) {
+                               tprintf("|%#x", i);
+                               tprints_comment("BPF_???");
+                       }
                        break;
                case BPF_MISC:
                        tprints("|");
                        printxval(bpf_miscop, BPF_MISCOP(code), "BPF_???");
                        i &= ~BPF_MISCOP(code);
-                       if (i)
-                               tprintf("|%#x /* %s */", i, "BPF_???");
+                       if (i) {
+                               tprintf("|%#x", i);
+                               tprints_comment("BPF_???");
+                       }
                        break;
        }
 
index 4ee2d5d3ff40b449683133256a922b6c0b98dee6..aee2097c0ab2a52fef2f70b2126097e4540b677b 100644 (file)
--- a/strace.c
+++ b/strace.c
@@ -569,12 +569,10 @@ strace_popen(const char *command)
        return fp;
 }
 
-void
-tprintf(const char *fmt, ...)
+ATTRIBUTE_FORMAT((printf, 1, 0))
+static void
+tvprintf(const char *const fmt, va_list args)
 {
-       va_list args;
-
-       va_start(args, fmt);
        if (current_tcp) {
                int n = vfprintf(current_tcp->outf, fmt, args);
                if (n < 0) {
@@ -583,6 +581,14 @@ tprintf(const char *fmt, ...)
                } else
                        current_tcp->curcol += n;
        }
+}
+
+void
+tprintf(const char *fmt, ...)
+{
+       va_list args;
+       va_start(args, fmt);
+       tvprintf(fmt, args);
        va_end(args);
 }
 
@@ -604,6 +610,27 @@ tprints(const char *str)
        }
 }
 
+void
+tprints_comment(const char *const str)
+{
+       if (str && *str)
+               tprintf(" /* %s */", str);
+}
+
+void
+tprintf_comment(const char *fmt, ...)
+{
+       if (!fmt || !*fmt)
+               return;
+
+       va_list args;
+       va_start(args, fmt);
+       tprints(" /* ");
+       tvprintf(fmt, args);
+       tprints(" */");
+       va_end(args);
+}
+
 void
 line_ended(void)
 {
index b3e23f80c413c7d72c1f84a3b7b716069c953da1..7e5ccfffffa8f9d4f9d8cf053ee3cd26ce154052 100644 (file)
@@ -1548,9 +1548,9 @@ btrfs_test_get_dev_stats_ioctl(void)
                        const char *name = xlookup(btrfs_dev_stats_values, i);
                        if (i)
                                printf(", ");
-                       if (name)
-                               printf("/* %s */ ", name);
                        printf("%" PRI__u64, args.values[i]);
+                       if (name)
+                               printf(" /* %s */", name);
                }
                printf("]}) = 0\n");
        }
@@ -1799,13 +1799,13 @@ btrfs_test_features_ioctls(void)
                      &supported_features);
                printf("ioctl(%d, BTRFS_IOC_GET_SUPPORTED_FEATURES, ",
                       btrfs_test_dir_fd);
-               printf("[ /* supported */ ");
+               printf("[");
                btrfs_print_features(&supported_features[0]);
-               printf(", /* safe to set */ ");
+               printf(" /* supported */, ");
                btrfs_print_features(&supported_features[1]);
-               printf(", /* safe to clear */ ");
+               printf(" /* safe to set */, ");
                btrfs_print_features(&supported_features[2]);
-               printf("]) = 0\n");
+               printf(" /* safe to clear */]) = 0\n");
        }
 }
 
diff --git a/util.c b/util.c
index 31336a42edbae07db1354c9c991daac7c903ad49..8bf4c5777e9923b2bb6ec2abde2ea39fcf6e1fdc 100644 (file)
--- a/util.c
+++ b/util.c
@@ -251,8 +251,7 @@ printxvals(const uint64_t val, const char *dflt, const struct xlat *xlat, ...)
        }
        /* No hits -- print raw # instead. */
        tprintf("%#" PRIx64, val);
-       if (dflt)
-               tprintf(" /* %s */", dflt);
+       tprints_comment(dflt);
 
        va_end(args);
 
@@ -285,8 +284,7 @@ printxval_searchn(const struct xlat *xlat, size_t xlat_size, uint64_t val,
        }
 
        tprintf("%#" PRIx64, val);
-       if (dflt)
-               tprintf(" /* %s */", dflt);
+       tprints_comment(dflt);
 
        return 0;
 }
@@ -438,8 +436,7 @@ printflags64(const struct xlat *xlat, uint64_t flags, const char *dflt)
        } else {
                if (flags) {
                        tprintf("%#" PRIx64, flags);
-                       if (dflt)
-                               tprintf(" /* %s */", dflt);
+                       tprints_comment(dflt);
                } else {
                        if (dflt)
                                tprints("0");