Skip to content

Commit 1a71dd5

Browse files
ikegami-tigaw
authored andcommitted
nvme-print-stdout: change stdout_d() to not print equal line
This is for the id-ns command empty vendor-specific fields. Note: This will change for other commands d() outputs. Signed-off-by: Tokunori Ikegami <ikegami.t@gmail.com>
1 parent 93ea93e commit 1a71dd5

File tree

1 file changed

+25
-1
lines changed

1 file changed

+25
-1
lines changed

nvme-print-stdout.c

Lines changed: 25 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4901,10 +4901,19 @@ static void stdout_lba_status_info(__u64 result)
49014901
(__u32)NVME_FEAT_LBAS_LSIRI(result));
49024902
}
49034903

4904+
static bool line_equal(unsigned char *buf, int len, int width, int offset)
4905+
{
4906+
if (!offset || len < offset + width)
4907+
return false;
4908+
4909+
return !memcmp(buf + offset - width, buf + offset, width);
4910+
}
4911+
49044912
void stdout_d(unsigned char *buf, int len, int width, int group)
49054913
{
49064914
int i, offset = 0;
49074915
char ascii[32 + 1] = { 0 };
4916+
bool omitting = false;
49084917

49094918
assert(width < sizeof(ascii));
49104919

@@ -4914,8 +4923,21 @@ void stdout_d(unsigned char *buf, int len, int width, int group)
49144923
printf("%3x", i);
49154924

49164925
for (i = 0; i < len; i++) {
4917-
if (!(i % width))
4926+
if (!(i % width)) {
4927+
if (line_equal(buf, len, width, offset)) {
4928+
if (!omitting) {
4929+
omitting = true;
4930+
printf("\n*");
4931+
}
4932+
offset += width;
4933+
continue;
4934+
} else if (omitting) {
4935+
omitting = false;
4936+
}
49184937
printf("\n%04x:", offset);
4938+
}
4939+
if (omitting)
4940+
continue;
49194941
if (i % group)
49204942
printf("%02x", buf[i]);
49214943
else
@@ -4927,6 +4949,8 @@ void stdout_d(unsigned char *buf, int len, int width, int group)
49274949
memset(ascii, 0, sizeof(ascii));
49284950
}
49294951
}
4952+
if (omitting)
4953+
printf("\n%04x:\n", offset);
49304954

49314955
if (strlen(ascii)) {
49324956
unsigned int b = width - (i % width);

0 commit comments

Comments
 (0)