]> git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blame - db/text.c
xfsprogs: Release v6.7.0
[thirdparty/xfsprogs-dev.git] / db / text.c
CommitLineData
959ef981 1// SPDX-License-Identifier: GPL-2.0
c6b24b3b 2/*
da23017d
NS
3 * Copyright (c) 2000-2001,2005 Silicon Graphics, Inc.
4 * All Rights Reserved.
c6b24b3b
NS
5 */
6
6b803e5a 7#include "libxfs.h"
c6b24b3b
NS
8#include <ctype.h>
9#include "block.h"
10#include "bmap.h"
11#include "command.h"
c6b24b3b
NS
12#include "type.h"
13#include "faddr.h"
14#include "fprint.h"
15#include "field.h"
16#include "inode.h"
17#include "io.h"
18#include "output.h"
4ca431fc 19#include "init.h"
4a87b332 20#include "text.h"
c6b24b3b
NS
21
22static void print_rawtext(void *data, int len);
23
24void
25print_text(
dfc130f3
RC
26 const field_t *fields,
27 int argc,
28 char **argv)
c6b24b3b 29{
dfc130f3 30 print_rawtext(iocur_top->data, iocur_top->len);
c6b24b3b
NS
31}
32
33static void
34print_rawtext(
dfc130f3
RC
35 void *data,
36 int len)
c6b24b3b 37{
dfc130f3
RC
38 int i;
39 int j;
40 int lastaddr;
41 int offchars;
42 unsigned char *p;
c6b24b3b 43
dfc130f3
RC
44 lastaddr = (len - 1) & ~(16 - 1);
45 if (lastaddr < 0x10)
46 offchars = 1;
47 else if (lastaddr < 0x100)
48 offchars = 2;
49 else if (lastaddr < 0x1000)
50 offchars = 3;
51 else
52 offchars = 4;
c6b24b3b 53
dfc130f3
RC
54 for (i = 0, p = data; i < len; i += 16) {
55 unsigned char *s = p;
c6b24b3b 56
dfc130f3 57 dbprintf("%-0*.*x: ", offchars, offchars, i);
c6b24b3b 58
dfc130f3
RC
59 for (j = 0; j < 16 && i + j < len; j++, p++) {
60 dbprintf("%02x ", *p);
61 }
c6b24b3b 62
dfc130f3 63 dbprintf(" ");
c6b24b3b 64
dfc130f3
RC
65 for (j = 0; j < 16 && i + j < len; j++, s++) {
66 if (isalnum(*s))
67 dbprintf("%c", *s);
68 else
69 dbprintf(".", *s);
70 }
c6b24b3b 71
dfc130f3
RC
72 dbprintf("\n");
73 }
c6b24b3b 74}