Run through indent, fix comments
This commit is contained in:
418
libbb/dump.c
418
libbb/dump.c
@ -30,21 +30,21 @@
|
||||
|
||||
enum _vflag vflag = FIRST;
|
||||
FS *fshead; /* head of format strings */
|
||||
extern FS *fshead; /* head of format strings */
|
||||
extern FS *fshead; /* head of format strings */
|
||||
extern int blocksize;
|
||||
static FU *endfu;
|
||||
static char **_argv;
|
||||
static off_t savaddress; /* saved address/offset in stream */
|
||||
static off_t eaddress; /* end address */
|
||||
static off_t address; /* address/offset in stream */
|
||||
off_t skip; /* bytes to skip */
|
||||
static off_t savaddress; /* saved address/offset in stream */
|
||||
static off_t eaddress; /* end address */
|
||||
static off_t address; /* address/offset in stream */
|
||||
off_t skip; /* bytes to skip */
|
||||
off_t saveaddress;
|
||||
int exitval; /* final exit value */
|
||||
int blocksize; /* data block size */
|
||||
int length = -1; /* max bytes to read */
|
||||
int exitval; /* final exit value */
|
||||
int blocksize; /* data block size */
|
||||
int length = -1; /* max bytes to read */
|
||||
|
||||
|
||||
int size(FS *fs)
|
||||
int size(FS * fs)
|
||||
{
|
||||
register FU *fu;
|
||||
register int bcnt, cursize;
|
||||
@ -69,23 +69,33 @@ int size(FS *fs)
|
||||
prec = atoi(fmt);
|
||||
while (isdigit(*++fmt));
|
||||
}
|
||||
switch(*fmt) {
|
||||
switch (*fmt) {
|
||||
case 'c':
|
||||
bcnt += 1;
|
||||
break;
|
||||
case 'd': case 'i': case 'o': case 'u':
|
||||
case 'x': case 'X':
|
||||
case 'd':
|
||||
case 'i':
|
||||
case 'o':
|
||||
case 'u':
|
||||
case 'x':
|
||||
case 'X':
|
||||
bcnt += 4;
|
||||
break;
|
||||
case 'e': case 'E': case 'f': case 'g': case 'G':
|
||||
case 'e':
|
||||
case 'E':
|
||||
case 'f':
|
||||
case 'g':
|
||||
case 'G':
|
||||
bcnt += 8;
|
||||
break;
|
||||
case 's':
|
||||
bcnt += prec;
|
||||
break;
|
||||
case '_':
|
||||
switch(*++fmt) {
|
||||
case 'c': case 'p': case 'u':
|
||||
switch (*++fmt) {
|
||||
case 'c':
|
||||
case 'p':
|
||||
case 'u':
|
||||
bcnt += 1;
|
||||
break;
|
||||
}
|
||||
@ -93,10 +103,10 @@ int size(FS *fs)
|
||||
}
|
||||
cursize += bcnt * fu->reps;
|
||||
}
|
||||
return(cursize);
|
||||
return (cursize);
|
||||
}
|
||||
|
||||
void rewrite(FS *fs)
|
||||
void rewrite(FS * fs)
|
||||
{
|
||||
enum { NOTOKAY, USEBCNT, USEPREC } sokay;
|
||||
register PR *pr, **nextpr = NULL;
|
||||
@ -112,7 +122,7 @@ void rewrite(FS *fs)
|
||||
*/
|
||||
for (nconv = 0, fmtp = fu->fmt; *fmtp; nextpr = &pr->nextpr) {
|
||||
/* NOSTRICT */
|
||||
pr = (PR *)xmalloc(sizeof(PR));
|
||||
pr = (PR *) xmalloc(sizeof(PR));
|
||||
if (!fu->nextpr)
|
||||
fu->nextpr = pr;
|
||||
else
|
||||
@ -143,53 +153,64 @@ void rewrite(FS *fs)
|
||||
sokay = USEPREC;
|
||||
prec = atoi(p1);
|
||||
while (isdigit(*++p1));
|
||||
}
|
||||
else
|
||||
} else
|
||||
sokay = NOTOKAY;
|
||||
}
|
||||
|
||||
p2 = p1 + 1; /* set end pointer */
|
||||
p2 = p1 + 1; /* set end pointer */
|
||||
|
||||
/*
|
||||
* figure out the byte count for each conversion;
|
||||
* rewrite the format as necessary, set up blank-
|
||||
* padding for end of data.
|
||||
*/
|
||||
switch(*p1) {
|
||||
switch (*p1) {
|
||||
case 'c':
|
||||
pr->flags = F_CHAR;
|
||||
switch(fu->bcnt) {
|
||||
case 0: case 1:
|
||||
switch (fu->bcnt) {
|
||||
case 0:
|
||||
case 1:
|
||||
pr->bcnt = 1;
|
||||
break;
|
||||
default:
|
||||
p1[1] = '\0';
|
||||
error_msg_and_die("bad byte count for conversion character %s.", p1);
|
||||
error_msg_and_die
|
||||
("bad byte count for conversion character %s.", p1);
|
||||
}
|
||||
break;
|
||||
case 'd': case 'i':
|
||||
case 'd':
|
||||
case 'i':
|
||||
pr->flags = F_INT;
|
||||
goto sw1;
|
||||
case 'l':
|
||||
++p2;
|
||||
switch(p1[1]) {
|
||||
case 'd': case 'i':
|
||||
switch (p1[1]) {
|
||||
case 'd':
|
||||
case 'i':
|
||||
++p1;
|
||||
pr->flags = F_INT;
|
||||
goto sw1;
|
||||
case 'o': case 'u': case 'x': case 'X':
|
||||
case 'o':
|
||||
case 'u':
|
||||
case 'x':
|
||||
case 'X':
|
||||
++p1;
|
||||
pr->flags = F_UINT;
|
||||
goto sw1;
|
||||
default:
|
||||
p1[2] = '\0';
|
||||
error_msg_and_die("hexdump: bad conversion character %%%s.\n", p1);
|
||||
error_msg_and_die
|
||||
("hexdump: bad conversion character %%%s.\n", p1);
|
||||
}
|
||||
/* NOTREACHED */
|
||||
case 'o': case 'u': case 'x': case 'X':
|
||||
case 'o':
|
||||
case 'u':
|
||||
case 'x':
|
||||
case 'X':
|
||||
pr->flags = F_UINT;
|
||||
sw1: switch(fu->bcnt) {
|
||||
case 0: case 4:
|
||||
sw1:switch (fu->bcnt) {
|
||||
case 0:
|
||||
case 4:
|
||||
pr->bcnt = 4;
|
||||
break;
|
||||
case 1:
|
||||
@ -200,13 +221,19 @@ sw1: switch(fu->bcnt) {
|
||||
break;
|
||||
default:
|
||||
p1[1] = '\0';
|
||||
error_msg_and_die("bad byte count for conversion character %s.", p1);
|
||||
error_msg_and_die
|
||||
("bad byte count for conversion character %s.", p1);
|
||||
}
|
||||
break;
|
||||
case 'e': case 'E': case 'f': case 'g': case 'G':
|
||||
case 'e':
|
||||
case 'E':
|
||||
case 'f':
|
||||
case 'g':
|
||||
case 'G':
|
||||
pr->flags = F_DBL;
|
||||
switch(fu->bcnt) {
|
||||
case 0: case 8:
|
||||
switch (fu->bcnt) {
|
||||
case 0:
|
||||
case 8:
|
||||
pr->bcnt = 8;
|
||||
break;
|
||||
case 4:
|
||||
@ -214,14 +241,16 @@ sw1: switch(fu->bcnt) {
|
||||
break;
|
||||
default:
|
||||
p1[1] = '\0';
|
||||
error_msg_and_die("bad byte count for conversion character %s.", p1);
|
||||
error_msg_and_die
|
||||
("bad byte count for conversion character %s.", p1);
|
||||
}
|
||||
break;
|
||||
case 's':
|
||||
pr->flags = F_STR;
|
||||
switch(sokay) {
|
||||
switch (sokay) {
|
||||
case NOTOKAY:
|
||||
error_msg_and_die("%%s requires a precision or a byte count.");
|
||||
error_msg_and_die
|
||||
("%%s requires a precision or a byte count.");
|
||||
case USEBCNT:
|
||||
pr->bcnt = fu->bcnt;
|
||||
break;
|
||||
@ -232,7 +261,7 @@ sw1: switch(fu->bcnt) {
|
||||
break;
|
||||
case '_':
|
||||
++p2;
|
||||
switch(p1[1]) {
|
||||
switch (p1[1]) {
|
||||
case 'A':
|
||||
endfu = fu;
|
||||
fu->flags |= F_IGNORE;
|
||||
@ -240,18 +269,21 @@ sw1: switch(fu->bcnt) {
|
||||
case 'a':
|
||||
pr->flags = F_ADDRESS;
|
||||
++p2;
|
||||
switch(p1[2]) {
|
||||
case 'd': case 'o': case'x':
|
||||
switch (p1[2]) {
|
||||
case 'd':
|
||||
case 'o':
|
||||
case 'x':
|
||||
*p1 = p1[2];
|
||||
break;
|
||||
default:
|
||||
p1[3] = '\0';
|
||||
error_msg_and_die("hexdump: bad conversion character %%%s.\n", p1);
|
||||
error_msg_and_die
|
||||
("hexdump: bad conversion character %%%s.\n", p1);
|
||||
}
|
||||
break;
|
||||
case 'c':
|
||||
pr->flags = F_C;
|
||||
/* *p1 = 'c'; set in conv_c */
|
||||
/* *p1 = 'c'; set in conv_c */
|
||||
goto sw2;
|
||||
case 'p':
|
||||
pr->flags = F_P;
|
||||
@ -259,24 +291,29 @@ sw1: switch(fu->bcnt) {
|
||||
goto sw2;
|
||||
case 'u':
|
||||
pr->flags = F_U;
|
||||
/* *p1 = 'c'; set in conv_u */
|
||||
sw2: switch(fu->bcnt) {
|
||||
case 0: case 1:
|
||||
/* *p1 = 'c'; set in conv_u */
|
||||
sw2:switch (fu->bcnt) {
|
||||
case 0:
|
||||
case 1:
|
||||
pr->bcnt = 1;
|
||||
break;
|
||||
default:
|
||||
p1[2] = '\0';
|
||||
error_msg_and_die("bad byte count for conversion character %s.", p1);
|
||||
error_msg_and_die
|
||||
("bad byte count for conversion character %s.",
|
||||
p1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
p1[2] = '\0';
|
||||
error_msg_and_die("hexdump: bad conversion character %%%s.\n", p1);
|
||||
error_msg_and_die
|
||||
("hexdump: bad conversion character %%%s.\n", p1);
|
||||
}
|
||||
break;
|
||||
default:
|
||||
p1[1] = '\0';
|
||||
error_msg_and_die("hexdump: bad conversion character %%%s.\n", p1);
|
||||
error_msg_and_die("hexdump: bad conversion character %%%s.\n",
|
||||
p1);
|
||||
}
|
||||
|
||||
/*
|
||||
@ -292,8 +329,9 @@ sw2: switch(fu->bcnt) {
|
||||
fmtp = p2;
|
||||
|
||||
/* only one conversion character if byte count */
|
||||
if (!(pr->flags&F_ADDRESS) && fu->bcnt && nconv++) {
|
||||
error_msg_and_die("hexdump: byte count with multiple conversion characters.\n");
|
||||
if (!(pr->flags & F_ADDRESS) && fu->bcnt && nconv++) {
|
||||
error_msg_and_die
|
||||
("hexdump: byte count with multiple conversion characters.\n");
|
||||
}
|
||||
}
|
||||
/*
|
||||
@ -315,7 +353,7 @@ sw2: switch(fu->bcnt) {
|
||||
*/
|
||||
for (fu = fs->nextfu;; fu = fu->nextfu) {
|
||||
if (!fu->nextfu && fs->bcnt < blocksize &&
|
||||
!(fu->flags&F_SETREP) && fu->bcnt)
|
||||
!(fu->flags & F_SETREP) && fu->bcnt)
|
||||
fu->reps += (blocksize - fs->bcnt) / fu->bcnt;
|
||||
if (fu->reps > 1) {
|
||||
for (pr = fu->nextpr;; pr = pr->nextpr)
|
||||
@ -339,11 +377,10 @@ static void doskip(char *fname, int statok)
|
||||
if (fstat(fileno(stdin), &sbuf)) {
|
||||
perror_msg_and_die("hexdump: %s", fname);
|
||||
}
|
||||
if ( ( ! (S_ISCHR(sbuf.st_mode) ||
|
||||
S_ISBLK(sbuf.st_mode) ||
|
||||
S_ISFIFO(sbuf.st_mode)) ) &&
|
||||
skip >= sbuf.st_size) {
|
||||
/* If size valid and skip >= size */
|
||||
if ((!(S_ISCHR(sbuf.st_mode) ||
|
||||
S_ISBLK(sbuf.st_mode) ||
|
||||
S_ISFIFO(sbuf.st_mode))) && skip >= sbuf.st_size) {
|
||||
/* If size valid and skip >= size */
|
||||
skip -= sbuf.st_size;
|
||||
address += sbuf.st_size;
|
||||
return;
|
||||
@ -363,7 +400,7 @@ int next(char **argv)
|
||||
|
||||
if (argv) {
|
||||
_argv = argv;
|
||||
return(1);
|
||||
return (1);
|
||||
}
|
||||
for (;;) {
|
||||
if (*_argv) {
|
||||
@ -376,7 +413,7 @@ int next(char **argv)
|
||||
statok = done = 1;
|
||||
} else {
|
||||
if (done++)
|
||||
return(0);
|
||||
return (0);
|
||||
statok = 0;
|
||||
}
|
||||
if (skip)
|
||||
@ -384,13 +421,12 @@ int next(char **argv)
|
||||
if (*_argv)
|
||||
++_argv;
|
||||
if (!skip)
|
||||
return(1);
|
||||
return (1);
|
||||
}
|
||||
/* NOTREACHED */
|
||||
}
|
||||
|
||||
static u_char *
|
||||
get(void)
|
||||
static u_char *get(void)
|
||||
{
|
||||
static int ateof = 1;
|
||||
static u_char *curp, *savp;
|
||||
@ -399,8 +435,8 @@ get(void)
|
||||
u_char *tmpp;
|
||||
|
||||
if (!curp) {
|
||||
curp = (u_char *)xmalloc(blocksize);
|
||||
savp = (u_char *)xmalloc(blocksize);
|
||||
curp = (u_char *) xmalloc(blocksize);
|
||||
savp = (u_char *) xmalloc(blocksize);
|
||||
} else {
|
||||
tmpp = curp;
|
||||
curp = savp;
|
||||
@ -413,22 +449,22 @@ get(void)
|
||||
* and no other files are available, zero-pad the rest of the
|
||||
* block and set the end flag.
|
||||
*/
|
||||
if (!length || (ateof && !next((char **)NULL))) {
|
||||
if (!length || (ateof && !next((char **) NULL))) {
|
||||
if (need == blocksize) {
|
||||
return((u_char *)NULL);
|
||||
return ((u_char *) NULL);
|
||||
}
|
||||
if (vflag != ALL && !bcmp(curp, savp, nread)) {
|
||||
if (vflag != DUP) {
|
||||
printf("*\n");
|
||||
}
|
||||
return((u_char *)NULL);
|
||||
return ((u_char *) NULL);
|
||||
}
|
||||
bzero((char *)curp + nread, need);
|
||||
bzero((char *) curp + nread, need);
|
||||
eaddress = address + nread;
|
||||
return(curp);
|
||||
return (curp);
|
||||
}
|
||||
n = fread((char *)curp + nread, sizeof(u_char),
|
||||
length == -1 ? need : MIN(length, need), stdin);
|
||||
n = fread((char *) curp + nread, sizeof(u_char),
|
||||
length == -1 ? need : MIN(length, need), stdin);
|
||||
if (!n) {
|
||||
if (ferror(stdin)) {
|
||||
perror_msg("%s", _argv[-1]);
|
||||
@ -441,12 +477,11 @@ get(void)
|
||||
length -= n;
|
||||
}
|
||||
if (!(need -= n)) {
|
||||
if (vflag == ALL || vflag == FIRST ||
|
||||
bcmp(curp, savp, blocksize)) {
|
||||
if (vflag == ALL || vflag == FIRST || bcmp(curp, savp, blocksize)) {
|
||||
if (vflag == DUP || vflag == FIRST) {
|
||||
vflag = WAIT;
|
||||
}
|
||||
return(curp);
|
||||
return (curp);
|
||||
}
|
||||
if (vflag == WAIT) {
|
||||
printf("*\n");
|
||||
@ -461,7 +496,7 @@ get(void)
|
||||
}
|
||||
}
|
||||
|
||||
static void bpad(PR *pr)
|
||||
static void bpad(PR * pr)
|
||||
{
|
||||
register char *p1, *p2;
|
||||
|
||||
@ -473,18 +508,18 @@ static void bpad(PR *pr)
|
||||
*pr->cchar = 's';
|
||||
for (p1 = pr->fmt; *p1 != '%'; ++p1);
|
||||
for (p2 = ++p1; *p1 && index(" -0+#", *p1); ++p1);
|
||||
while ((*p2++ = *p1++) != 0) ;
|
||||
while ((*p2++ = *p1++) != 0);
|
||||
}
|
||||
|
||||
void conv_c(PR *pr, u_char *p)
|
||||
void conv_c(PR * pr, u_char * p)
|
||||
{
|
||||
char buf[10], *str;
|
||||
|
||||
switch(*p) {
|
||||
switch (*p) {
|
||||
case '\0':
|
||||
str = "\\0";
|
||||
goto strpr;
|
||||
/* case '\a': */
|
||||
/* case '\a': */
|
||||
case '\007':
|
||||
str = "\\a";
|
||||
goto strpr;
|
||||
@ -511,22 +546,22 @@ void conv_c(PR *pr, u_char *p)
|
||||
}
|
||||
if (isprint(*p)) {
|
||||
*pr->cchar = 'c';
|
||||
(void)printf(pr->fmt, *p);
|
||||
(void) printf(pr->fmt, *p);
|
||||
} else {
|
||||
sprintf(str = buf, "%03o", (int)*p);
|
||||
strpr:
|
||||
sprintf(str = buf, "%03o", (int) *p);
|
||||
strpr:
|
||||
*pr->cchar = 's';
|
||||
printf(pr->fmt, str);
|
||||
}
|
||||
}
|
||||
|
||||
void conv_u(PR *pr, u_char *p)
|
||||
void conv_u(PR * pr, u_char * p)
|
||||
{
|
||||
static char *list[] = {
|
||||
"nul", "soh", "stx", "etx", "eot", "enq", "ack", "bel",
|
||||
"bs", "ht", "lf", "vt", "ff", "cr", "so", "si",
|
||||
"bs", "ht", "lf", "vt", "ff", "cr", "so", "si",
|
||||
"dle", "dcl", "dc2", "dc3", "dc4", "nak", "syn", "etb",
|
||||
"can", "em", "sub", "esc", "fs", "gs", "rs", "us",
|
||||
"can", "em", "sub", "esc", "fs", "gs", "rs", "us",
|
||||
};
|
||||
|
||||
/* od used nl, not lf */
|
||||
@ -541,118 +576,128 @@ void conv_u(PR *pr, u_char *p)
|
||||
printf(pr->fmt, *p);
|
||||
} else {
|
||||
*pr->cchar = 'x';
|
||||
printf(pr->fmt, (int)*p);
|
||||
printf(pr->fmt, (int) *p);
|
||||
}
|
||||
}
|
||||
|
||||
void display(void)
|
||||
{
|
||||
// extern FU *endfu;
|
||||
/* extern FU *endfu; */
|
||||
register FS *fs;
|
||||
register FU *fu;
|
||||
register PR *pr;
|
||||
register int cnt;
|
||||
register u_char *bp;
|
||||
// off_t saveaddress;
|
||||
|
||||
/* off_t saveaddress; */
|
||||
u_char savech = 0, *savebp;
|
||||
|
||||
while ((bp = get()) != NULL) {
|
||||
for (fs = fshead, savebp = bp, saveaddress = address; fs;
|
||||
fs = fs->nextfs, bp = savebp, address = saveaddress) {
|
||||
for (fu = fs->nextfu; fu; fu = fu->nextfu) {
|
||||
for (fs = fshead, savebp = bp, saveaddress = address; fs;
|
||||
fs = fs->nextfs, bp = savebp, address = saveaddress) {
|
||||
for (fu = fs->nextfu; fu; fu = fu->nextfu) {
|
||||
if (fu->flags & F_IGNORE) {
|
||||
break;
|
||||
}
|
||||
for (cnt = fu->reps; cnt; --cnt) {
|
||||
for (pr = fu->nextpr; pr; address += pr->bcnt,
|
||||
bp += pr->bcnt, pr = pr->nextpr) {
|
||||
if (eaddress && address >= eaddress &&
|
||||
!(pr->flags&(F_TEXT|F_BPAD))) {
|
||||
for (pr = fu->nextpr; pr; address += pr->bcnt,
|
||||
bp += pr->bcnt, pr = pr->nextpr) {
|
||||
if (eaddress && address >= eaddress &&
|
||||
!(pr->flags & (F_TEXT | F_BPAD))) {
|
||||
bpad(pr);
|
||||
}
|
||||
if (cnt == 1 && pr->nospace) {
|
||||
if (cnt == 1 && pr->nospace) {
|
||||
savech = *pr->nospace;
|
||||
*pr->nospace = '\0';
|
||||
}
|
||||
// PRINT;
|
||||
switch(pr->flags) {
|
||||
case F_ADDRESS:
|
||||
printf(pr->fmt, address);
|
||||
break;
|
||||
case F_BPAD:
|
||||
printf(pr->fmt, "");
|
||||
break;
|
||||
case F_C:
|
||||
conv_c(pr, bp);
|
||||
break;
|
||||
case F_CHAR:
|
||||
printf(pr->fmt, *bp);
|
||||
break;
|
||||
case F_DBL: {
|
||||
double dval;
|
||||
float fval;
|
||||
switch(pr->bcnt) {
|
||||
case 4:
|
||||
bcopy((char *)bp, (char *)&fval, sizeof(fval));
|
||||
printf(pr->fmt, fval);
|
||||
break;
|
||||
case 8:
|
||||
bcopy((char *)bp, (char *)&dval, sizeof(dval));
|
||||
printf(pr->fmt, dval);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case F_INT: {
|
||||
int ival;
|
||||
short sval;
|
||||
switch(pr->bcnt) {
|
||||
case 1:
|
||||
printf(pr->fmt, (int)*bp);
|
||||
break;
|
||||
case 2:
|
||||
bcopy((char *)bp, (char *)&sval, sizeof(sval));
|
||||
printf(pr->fmt, (int)sval);
|
||||
break;
|
||||
case 4:
|
||||
bcopy((char *)bp, (char *)&ival, sizeof(ival));
|
||||
printf(pr->fmt, ival);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case F_P:
|
||||
printf(pr->fmt, isprint(*bp) ? *bp : '.');
|
||||
break;
|
||||
case F_STR:
|
||||
printf(pr->fmt, (char *)bp);
|
||||
break;
|
||||
case F_TEXT:
|
||||
printf(pr->fmt);
|
||||
break;
|
||||
case F_U:
|
||||
conv_u(pr, bp);
|
||||
break;
|
||||
case F_UINT: {
|
||||
u_int ival;
|
||||
u_short sval;
|
||||
switch(pr->bcnt) {
|
||||
case 1:
|
||||
printf(pr->fmt, (u_int)*bp);
|
||||
break;
|
||||
case 2:
|
||||
bcopy((char *)bp, (char *)&sval, sizeof(sval));
|
||||
printf(pr->fmt, (u_int)sval);
|
||||
break;
|
||||
case 4:
|
||||
bcopy((char *)bp, (char *)&ival, sizeof(ival));
|
||||
printf(pr->fmt, ival);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (cnt == 1 && pr->nospace) {
|
||||
/* PRINT; */
|
||||
switch (pr->flags) {
|
||||
case F_ADDRESS:
|
||||
printf(pr->fmt, address);
|
||||
break;
|
||||
case F_BPAD:
|
||||
printf(pr->fmt, "");
|
||||
break;
|
||||
case F_C:
|
||||
conv_c(pr, bp);
|
||||
break;
|
||||
case F_CHAR:
|
||||
printf(pr->fmt, *bp);
|
||||
break;
|
||||
case F_DBL:{
|
||||
double dval;
|
||||
float fval;
|
||||
|
||||
switch (pr->bcnt) {
|
||||
case 4:
|
||||
bcopy((char *) bp, (char *) &fval,
|
||||
sizeof(fval));
|
||||
printf(pr->fmt, fval);
|
||||
break;
|
||||
case 8:
|
||||
bcopy((char *) bp, (char *) &dval,
|
||||
sizeof(dval));
|
||||
printf(pr->fmt, dval);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case F_INT:{
|
||||
int ival;
|
||||
short sval;
|
||||
|
||||
switch (pr->bcnt) {
|
||||
case 1:
|
||||
printf(pr->fmt, (int) *bp);
|
||||
break;
|
||||
case 2:
|
||||
bcopy((char *) bp, (char *) &sval,
|
||||
sizeof(sval));
|
||||
printf(pr->fmt, (int) sval);
|
||||
break;
|
||||
case 4:
|
||||
bcopy((char *) bp, (char *) &ival,
|
||||
sizeof(ival));
|
||||
printf(pr->fmt, ival);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
case F_P:
|
||||
printf(pr->fmt, isprint(*bp) ? *bp : '.');
|
||||
break;
|
||||
case F_STR:
|
||||
printf(pr->fmt, (char *) bp);
|
||||
break;
|
||||
case F_TEXT:
|
||||
printf(pr->fmt);
|
||||
break;
|
||||
case F_U:
|
||||
conv_u(pr, bp);
|
||||
break;
|
||||
case F_UINT:{
|
||||
u_int ival;
|
||||
u_short sval;
|
||||
|
||||
switch (pr->bcnt) {
|
||||
case 1:
|
||||
printf(pr->fmt, (u_int) * bp);
|
||||
break;
|
||||
case 2:
|
||||
bcopy((char *) bp, (char *) &sval,
|
||||
sizeof(sval));
|
||||
printf(pr->fmt, (u_int) sval);
|
||||
break;
|
||||
case 4:
|
||||
bcopy((char *) bp, (char *) &ival,
|
||||
sizeof(ival));
|
||||
printf(pr->fmt, ival);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (cnt == 1 && pr->nospace) {
|
||||
*pr->nospace = savech;
|
||||
}
|
||||
}
|
||||
@ -672,12 +717,12 @@ void display(void)
|
||||
eaddress = address;
|
||||
}
|
||||
for (pr = endfu->nextpr; pr; pr = pr->nextpr) {
|
||||
switch(pr->flags) {
|
||||
switch (pr->flags) {
|
||||
case F_ADDRESS:
|
||||
(void)printf(pr->fmt, eaddress);
|
||||
(void) printf(pr->fmt, eaddress);
|
||||
break;
|
||||
case F_TEXT:
|
||||
(void)printf(pr->fmt);
|
||||
(void) printf(pr->fmt);
|
||||
break;
|
||||
}
|
||||
}
|
||||
@ -703,7 +748,7 @@ int dump(char **argv)
|
||||
next(argv);
|
||||
display();
|
||||
|
||||
return(exitval);
|
||||
return (exitval);
|
||||
}
|
||||
|
||||
void add(char *fmt)
|
||||
@ -718,7 +763,7 @@ void add(char *fmt)
|
||||
|
||||
/* start new linked list of format units */
|
||||
/* NOSTRICT */
|
||||
tfs = (FS *)xmalloc(sizeof(FS));
|
||||
tfs = (FS *) xmalloc(sizeof(FS));
|
||||
if (!fshead) {
|
||||
fshead = tfs;
|
||||
} else {
|
||||
@ -737,7 +782,7 @@ void add(char *fmt)
|
||||
|
||||
/* allocate a new format unit and link it in */
|
||||
/* NOSTRICT */
|
||||
tfu = (FU *)xmalloc(sizeof(FU));
|
||||
tfu = (FU *) xmalloc(sizeof(FU));
|
||||
*nextfu = tfu;
|
||||
nextfu = &tfu->nextfu;
|
||||
tfu->reps = 1;
|
||||
@ -785,7 +830,7 @@ void add(char *fmt)
|
||||
}
|
||||
strncpy(tfu->fmt, savep, p - savep);
|
||||
tfu->fmt[p - savep] = '\0';
|
||||
// escape(tfu->fmt);
|
||||
/* escape(tfu->fmt); */
|
||||
|
||||
p1 = tfu->fmt;
|
||||
|
||||
@ -796,9 +841,9 @@ void add(char *fmt)
|
||||
break;
|
||||
}
|
||||
if (*p1 == '\\') {
|
||||
switch(*++p1) {
|
||||
switch (*++p1) {
|
||||
case 'a':
|
||||
/* *p2 = '\a'; */
|
||||
/* *p2 = '\a'; */
|
||||
*p2 = '\007';
|
||||
break;
|
||||
case 'b':
|
||||
@ -829,6 +874,7 @@ void add(char *fmt)
|
||||
p++;
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Copyright (c) 1989 The Regents of the University of California.
|
||||
* All rights reserved.
|
||||
|
Reference in New Issue
Block a user