]>
git.ipfire.org Git - thirdparty/xfsprogs-dev.git/blob - db/fprint.c
2 * Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
4 * This program is free software; you can redistribute it and/or modify it
5 * under the terms of version 2 of the GNU General Public License as
6 * published by the Free Software Foundation.
8 * This program is distributed in the hope that it would be useful, but
9 * WITHOUT ANY WARRANTY; without even the implied warranty of
10 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
12 * Further, this software is distributed without any warranty that it is
13 * free of the rightful claim of any third person regarding infringement
14 * or the like. Any license provided herein, whether implied or
15 * otherwise, applies only to this software file. Patent licenses, if
16 * any, provided herein do not apply to combinations of this program with
17 * other software, or any other product whatsoever.
19 * You should have received a copy of the GNU General Public License along
20 * with this program; if not, write the Free Software Foundation, Inc., 59
21 * Temple Place - Suite 330, Boston MA 02111-1307, USA.
23 * Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
24 * Mountain View, CA 94043, or:
28 * For further information regarding this notice, see:
30 * http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
63 ASSERT(bitoffs(bit
) == 0);
64 ASSERT(size
== bitsz(char));
66 for (i
= 0, p
= (char *)obj
+ byteize(bit
);
67 i
< count
&& !seenint();
69 if (*p
== '\\' || *p
== '\'' || *p
== '"' || *p
== '\?')
71 else if (isgraph(*p
) || *p
== ' ')
73 else if (*p
== '\a' || *p
== '\b' || *p
== '\f' || *p
== '\n' ||
74 *p
== '\r' || *p
== '\t' || *p
== '\v')
75 dbprintf("\\%c", *p
+ ('a' - '\a'));
77 dbprintf("\\%03o", *p
& 0xff);
99 for (i
= 0, bitpos
= bit
;
100 i
< count
&& !seenint();
101 i
++, bitpos
+= size
) {
102 val
= getbitval(obj
, bitpos
, size
,
103 (arg
& FTARG_SIGNED
) ? BVSIGNED
: BVUNSIGNED
);
104 if ((arg
& FTARG_SKIPZERO
) && val
== 0)
106 isnull
= (arg
& FTARG_SIGNED
) || size
== 64 ?
107 val
== -1LL : val
== ((1LL << size
) - 1LL);
108 if ((arg
& FTARG_SKIPNULL
) && isnull
)
111 dbprintf("%d:", i
+ base
);
112 if ((arg
& FTARG_DONULL
) && isnull
)
115 dbprintf(fmtstr
, val
);
117 dbprintf(fmtstr
, (__int32_t
)val
);
136 print_sarray(obj
, bit
, count
, size
, base
, array
,
137 (const field_t
*)fmtstr
, (arg
& FTARG_SKIPNMS
) != 0);
158 ASSERT(bitoffs(bit
) == 0);
159 for (i
= 0, bitpos
= bit
;
160 i
< count
&& !seenint();
161 i
++, bitpos
+= size
) {
163 dbprintf("%d:", i
+ base
);
164 t
=(time_t)getbitval((char *)obj
+ byteize(bitpos
), 0, sizeof(time_t)*8, 0);
166 dbprintf("%24.24s", c
);
185 char bp
[40]; /* UUID string is 36 chars + trailing '\0' */
189 ASSERT(bitoffs(bit
) == 0);
190 for (p
= (uuid_t
*)((char *)obj
+ byteize(bit
)), i
= 0;
191 i
< count
&& !seenint();
194 dbprintf("%d:", i
+ base
);
195 uuid_unparse(*p
, bp
);