if ((options & ENCRYPT_OPT) && !(options & RAW_OPT)) {
if (f)
return fprintf(f, "<encrypted (%d)>", len);
- else {
- char tmp[1];
- return snprintf(tmp, sizeof(tmp),
- "<encrypted (%d)>", len);
- }
+ else
+ return snprintf(NULL, 0, "<encrypted (%d)>", len);
}
while (len--) {
ch = *cp++;
- if (ch > 128) {
+ if (ch < 32 || ch >= 127 || ch == '\\') {
if (f)
- fputs("M-", f);
- ch -= 128;
- retlen += 2;
- }
- if ((ch < 32) || (ch == 0x7f)) {
+ fprintf(f, "\\x%02x", ch);
+ retlen += 4;
+ } else {
if (f)
- fputc('^', f);
- ch ^= 0x40; /* ^@, ^A, ^B; ^? for DEL */
+ fputc(ch, f);
retlen++;
}
- if (f)
- fputc(ch, f);
- retlen++;
}
return retlen;
}
return 0;
} else
memset(&inode, 0, sizeof(struct ext2_inode));
- fprintf(ls->f,"/%u/%06o/%d/%d/%*s/", ino, inode.i_mode,
- inode.i_uid, inode.i_gid, thislen, dirent->name);
+ fprintf(ls->f,"/%u/%06o/%d/%d/%.*s/", ino, inode.i_mode,
+ inode_uid(inode), inode_gid(inode), thislen, dirent->name);
if (LINUX_S_ISDIR(inode.i_mode))
fprintf(ls->f, "/");
else
- fprintf(ls->f, "%lld/", EXT2_I_SIZE(&inode));
+ fprintf(ls->f, "%llu/",
+ (unsigned long long) EXT2_I_SIZE(&inode));
fprintf(ls->f, "\n");
} else if (options & LONG_OPT) {
if (ino) {
fprintf(ls->f, "(%d) %5d %5d ",
ext2fs_dirent_file_type(dirent),
inode_uid(inode), inode_gid(inode));
- if (LINUX_S_ISDIR(inode.i_mode))
- fprintf(ls->f, "%5d", inode.i_size);
- else
- fprintf(ls->f, "%5llu", EXT2_I_SIZE(&inode));
+ fprintf(ls->f, "%5llu",
+ (unsigned long long) EXT2_I_SIZE(&inode));
fprintf(ls->f, " %s ", datestr);
print_filename(ls->f, dirent, options);
fputc('\n', ls->f);
return 0;
}
-void do_list_dir(int argc, char *argv[])
+void do_list_dir(int argc, char *argv[], int sci_idx EXT2FS_ATTR((unused)),
+ void *infop EXT2FS_ATTR((unused)))
{
struct ext2_inode inode;
ext2_ino_t ino;
if (argc > optind+1) {
print_usage:
- com_err(0, 0, "Usage: ls [-l] [-d] [-p] file");
+ com_err(0, 0, "Usage: ls [-c] [-d] [-l] [-p] [-r] file");
return;
}