+ /* Figure out padding and print the whole line. */
+
+ pad = strlen (user) + strlen (group) + strlen (size) + 1;
+ if (pad > ugswidth)
+ ugswidth = pad;
+
+#if USE_OLD_CTIME
+ fprintf (stdlis, "%s %s/%s %*s%s %s %s",
+ modes, user, group, ugswidth - pad, "",
+ size, timestamp + 4, timestamp + 20);
+#else
+ fprintf (stdlis, "%s %s/%s %*s%s %s",
+ modes, user, group, ugswidth - pad, "", size, timestamp);
+#endif
+
+ name = quote_copy_string (current_file_name);
+ if (name)
+ {
+ fprintf (stdlis, " %s", name);
+ free (name);
+ }
+ else
+ fprintf (stdlis, " %s", current_file_name);
+
+ switch (current_header->header.typeflag)
+ {
+ case SYMTYPE:
+ name = quote_copy_string (current_link_name);
+ if (name)
+ {
+ fprintf (stdlis, " -> %s\n", name);
+ free (name);
+ }
+ else
+ fprintf (stdlis, " -> %s\n", current_link_name);
+ break;
+
+ case LNKTYPE:
+ name = quote_copy_string (current_link_name);
+ if (name)
+ {
+ fprintf (stdlis, _(" link to %s\n"), name);
+ free (name);
+ }
+ else
+ fprintf (stdlis, _(" link to %s\n"), current_link_name);
+ break;
+
+ default:
+ fprintf (stdlis, _(" unknown file type `%c'\n"),
+ current_header->header.typeflag);
+ break;
+
+ case AREGTYPE:
+ case REGTYPE:
+ case GNUTYPE_SPARSE:
+ case CHRTYPE:
+ case BLKTYPE:
+ case DIRTYPE:
+ case FIFOTYPE:
+ case CONTTYPE:
+ case GNUTYPE_DUMPDIR:
+ putc ('\n', stdlis);
+ break;
+
+ case GNUTYPE_VOLHDR:
+ fprintf (stdlis, _("--Volume Header--\n"));
+ break;
+
+ case GNUTYPE_MULTIVOL:
+ strcpy (size,
+ STRINGIFY_BIGINT
+ (UINTMAX_FROM_OCT (current_header->oldgnu_header.offset),
+ uintbuf));
+ fprintf (stdlis, _("--Continued at byte %s--\n"), size);
+ break;
+
+ case GNUTYPE_NAMES:
+ fprintf (stdlis, _("--Mangled file names--\n"));
+ break;