]> granicus.if.org Git - strace/blobdiff - dirent64.c
CREDITS.in: use UTF-8 consistently
[strace] / dirent64.c
index 448a2f1a5ea10117c4704a4c7700d7692eb59fc5..4172d649a0801f8f424d85af991a59ea0267aee2 100644 (file)
@@ -4,6 +4,7 @@
  * Copyright (c) 1993, 1994, 1995, 1996 Rick Sladkey <jrs@world.std.com>
  * Copyright (c) 1996-1999 Wichert Akkerman <wichert@cistron.nl>
  * Copyright (c) 2005-2015 Dmitry V. Levin <ldv@altlinux.org>
+ * Copyright (c) 2015-2017 The strace developers.
  * All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
@@ -46,13 +47,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 +70,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 +80,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)) {
@@ -102,15 +105,12 @@ SYS_FUNC(getdents64)
                        printxval(dirent_types, d->d_type, "DT_???");
 
                        tprints(", d_name=");
-                       if (print_quoted_string(d->d_name, d_name_len,
-                                               QUOTE_0_TERMINATED) > 0) {
-                               tprints("...");
-                       }
+                       print_quoted_cstring(d->d_name, d_name_len);
 
                        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 +119,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;