MCPcopy Create free account
hub / github.com/coreutils/coreutils / print_ascii

Function print_ascii

src/od.c:635–692  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

633}
634
635static void
636print_ascii (idx_t fields, idx_t blank, void const *block,
637 MAYBE_UNUSED char const *unused_fmt_string, int width,
638 idx_t pad)
639{
640 unsigned char const *p = block;
641 idx_t pad_remaining = pad;
642 for (idx_t i = fields; blank < i; i--)
643 {
644 unsigned char c = *p++;
645 char const *s;
646 char buf[4];
647
648 switch (c)
649 {
650 case '\0':
651 s = "\\0";
652 break;
653
654 case '\a':
655 s = "\\a";
656 break;
657
658 case '\b':
659 s = "\\b";
660 break;
661
662 case '\f':
663 s = "\\f";
664 break;
665
666 case '\n':
667 s = "\\n";
668 break;
669
670 case '\r':
671 s = "\\r";
672 break;
673
674 case '\t':
675 s = "\\t";
676 break;
677
678 case '\v':
679 s = "\\v";
680 break;
681
682 default:
683 sprintf (buf, (isprint (c) ? "%c" : "%03o"), c);
684 s = buf;
685 }
686
687 idx_t next_pad = pad_at (fields, i - 1, pad);
688 int adjusted_width = pad_remaining - next_pad + width;
689 xprintf ("%*s", adjusted_width, s);
690 pad_remaining = next_pad;
691 }
692}

Callers

nothing calls this directly

Calls 1

pad_atFunction · 0.85

Tested by

no test coverage detected