* the containing directory.
* %r <blkcount> interpret blkcount as refcount
* %s <str> miscellaneous string
+ * %t time (in <num>)
+ * %T current time
+ * %U quota type (in <num>)
* %S backup superblock
* %X <num> hexadecimal format
*
#include <string.h>
#include <ctype.h>
#include <termios.h>
+#include "support/quotaio.h"
#include "e2fsck.h"
-
#include "problem.h"
#ifdef __GNUC__
static int do_gmt = -1;
#ifdef __dietlibc__
- /* The diet libc doesn't respect the TZ environemnt variable */
+ /* The diet libc doesn't respect the TZ environment variable */
if (do_gmt == -1) {
time_str = getenv("TZ");
if (!time_str)
switch (ch) {
case 's':
- if (LINUX_S_ISDIR(inode->i_mode))
- fprintf(f, "%u", inode->i_size);
- else {
-#ifdef EXT2_NO_64_TYPE
- if (inode->i_size_high)
- fprintf(f, "0x%x%08x", inode->i_size_high,
- inode->i_size);
- else
- fprintf(f, "%u", inode->i_size);
-#else
- fprintf(f, "%llu", EXT2_I_SIZE(inode));
-#endif
- }
+ fprintf(f, "%llu", (unsigned long long) EXT2_I_SIZE(inode));
break;
case 'S':
fprintf(f, "%u", large_inode->i_extra_isize);
fprintf(f, "%u", inode->i_faddr);
break;
case 'f':
- fprintf(f, "%llu", ext2fs_file_acl_block(fs, inode));
+ fprintf(f, "%llu",
+ (unsigned long long) ext2fs_file_acl_block(fs, inode));
break;
case 'd':
fprintf(f, "%u", (LINUX_S_ISDIR(inode->i_mode) ?
fputc('%', f);
break;
case 'b':
-#ifdef EXT2_NO_64_TYPE
- fprintf(f, "%*u", width, (unsigned long) ctx->blk);
-#else
fprintf(f, "%*llu", width, (unsigned long long) ctx->blk);
-#endif
break;
case 'B':
if (ctx->blkcount == BLOCK_COUNT_IND)
if (*first && islower(m[0]))
fputc(toupper(*m++), f);
fputs(m, f);
- if (ctx->blkcount >= 0) {
-#ifdef EXT2_NO_64_TYPE
- fprintf(f, "%d", ctx->blkcount);
-#else
+ if (ctx->blkcount >= 0)
fprintf(f, "%lld", (long long) ctx->blkcount);
-#endif
- }
break;
case 'c':
-#ifdef EXT2_NO_64_TYPE
- fprintf(f, "%*u", width, (unsigned long) ctx->blk2);
-#else
fprintf(f, "%*llu", width, (unsigned long long) ctx->blk2);
-#endif
break;
case 'd':
fprintf(f, "%*u", width, ctx->dir);
fprintf(f, "%*s", width, error_message(ctx->errcode));
break;
case 'N':
-#ifdef EXT2_NO_64_TYPE
- fprintf(f, "%*u", width, ctx->num);
-#else
fprintf(f, "%*llu", width, (long long)ctx->num);
-#endif
break;
case 'n':
-#ifdef EXT2_NO_64_TYPE
- fprintf(f, "%*u", width, ctx->num2);
-#else
fprintf(f, "%*llu", width, (long long)ctx->num2);
-#endif
break;
case 'p':
print_pathname(f, fs, ctx->ino, 0);
print_pathname(f, fs, ctx->dir, ctx->ino);
break;
case 'r':
-#ifdef EXT2_NO_64_TYPE
- fprintf(f, "%*d", width, ctx->blkcount);
-#else
fprintf(f, "%*lld", width, (long long) ctx->blkcount);
-#endif
break;
case 'S':
- fprintf(f, "%llu", get_backup_sb(NULL, fs, NULL, NULL));
+ fprintf(f, "%llu",
+ (unsigned long long) get_backup_sb(NULL, fs,
+ NULL, NULL));
break;
case 's':
fprintf(f, "%*s", width, ctx->str ? ctx->str : "NULL");
case 'T':
print_time(f, e2fsck_ctx ? e2fsck_ctx->now : time(0));
break;
+ case 'U':
+ switch (ctx->num) {
+ case USRQUOTA:
+ m = _("user");
+ break;
+ case GRPQUOTA:
+ m = _("group");
+ break;
+ case PRJQUOTA:
+ m = _("project");
+ break;
+ default:
+ m = _("unknown quota type");
+ break;
+ }
+ if (*first && islower(m[0]))
+ fputc(toupper(*m++), f);
+ fputs(m, f);
+ if (ctx->num > PRJQUOTA)
+ fprintf(f, " %d", (int) ctx->num);
+ break;
case 'x':
fprintf(f, "0x%0*x", width, ctx->csum1);
break;
case 'X':
-#ifdef EXT2_NO_64_TYPE
- fprintf(f, "0x%0*x", width, ctx->num);
-#else
fprintf(f, "0x%0*llx", width, (long long)ctx->num);
-#endif
break;
case 'y':
fprintf(f, "0x%0*x", width, ctx->csum2);