Changeset e1efd54 in rtems


Ignore:
Timestamp:
Oct 1, 2008, 8:07:09 PM (11 years ago)
Author:
Joel Sherrill <joel.sherrill@…>
Branches:
4.9
Children:
224a429b
Parents:
4566e9c1
Message:

2008-10-01 Gene Smith <gene.smith@…>

PR 1328/cpukit

  • libmisc/shell/main_mdump.c, libmisc/shell/main_mwdump.c: Fix printing of more than 256 bytes.
Location:
cpukit
Files:
3 edited

Legend:

Unmodified
Added
Removed
  • cpukit/ChangeLog

    r4566e9c1 re1efd54  
     12008-10-01      Gene Smith <gene.smith@siemens.com>
     2
     3        PR 1328/cpukit
     4        * libmisc/shell/main_mdump.c, libmisc/shell/main_mwdump.c: Fix printing
     5        of more than 256 bytes.
     6
    172008-09-26      Joel Sherrill <joel.sherrill@OARcorp.com>
    28
  • cpukit/libmisc/shell/main_mdump.c

    r4566e9c1 re1efd54  
    3535)
    3636{
    37   unsigned char  n, m, max=20;
     37  unsigned char  n, m;
     38  int            max;
     39  int            res;
    3840  uintptr_t      addr = 0;
    3941  unsigned char *pb;
     
    4446  if (argc>2) {
    4547    max = rtems_shell_str2int(argv[2]);
    46     max /= 16;
     48    if (max <= 0) {
     49      max = 1;      /* print 1 item if 0 or neg. */
     50      res = 0;
     51    }
     52    else {
     53      max--;
     54      res = max & 0xf;/* num bytes in last row */
     55      max >>= 4;      /* div by 16 */
     56      max++;          /* num of rows to print */
     57      if (max > 20) { /* limit to 20 */
     58        max = 20;
     59        res = 0xf;    /* 16 bytes print in last row */
     60      }
     61    }
    4762  }
    48 
    49 
    50   if (!max)
    51     max = 1;
     63  else {
     64    max = 20;
     65    res = 0xf;
     66  }
    5267
    5368  for (m=0; m<max; m++) {
    5469    printf("0x%08" PRIXPTR " ", addr);
    5570    pb = (unsigned char*) addr;
    56     for (n=0;n<16;n++)
    57       printf("%02X%c", pb[n], (n == 7) ? '-' : ' ');
    58     for (n=0;n<16;n++) {
     71    for (n=0;n<=(m==(max-1)?res:0xf);n++)
     72      printf("%02X%c",pb[n],n==7?'-':' ');
     73    for (;n<=0xf;n++)
     74      printf("  %c",n==7?'-':' ');
     75    for (n=0;n<=(m==(max-1)?res:0xf);n++) {
    5976      printf("%c", isprint(pb[n]) ? pb[n] : '.');
    6077    }
  • cpukit/libmisc/shell/main_mwdump.c

    r4566e9c1 re1efd54  
    3131)
    3232{
    33   unsigned char   n, m, max=20;
    34   uintptr_t       addr=0;
    35   unsigned short *pw;
    36   unsigned char  *p;
     33  unsigned char  n, m;
     34  int            max;
     35  int            res;
     36  uintptr_t      addr = 0;
     37  unsigned char *pb;
    3738
    3839  if (argc>1)
     
    4142  if (argc>2) {
    4243    max = rtems_shell_str2int(argv[2]);
    43     max /= 16;
     44    if (max <= 0) {
     45      max = 1;      /* print 1 item if 0 or neg. */
     46      res = 0;
     47    }
     48    else {
     49      max--;
     50      res = max & 0xf;/* num bytes in last row */
     51      max >>= 4;      /* div by 16 */
     52      max++;          /* num of rows to print */
     53      if (max > 20) { /* limit to 20 */
     54        max = 20;
     55        res = 0xf;    /* 16 bytes print in last row */
     56      }
     57    }
    4458  }
    45 
    46   if (!max)
    47     max = 1;
     59  else {
     60    max = 20;
     61    res = 0xf;
     62  }
    4863
    4964  for (m=0;m<max;m++) {
    5065    printf("0x%08" PRIXPTR " ",addr);
    51     p = (unsigned char *) addr;
    52     pw = (unsigned short*) addr;
    53     for (n=0;n<8;n++)
    54       printf("%04X%c",pw[n],n==3?'-':' ');
    55     for (n=0;n<16;n++) {
    56       printf("%c",isprint(p[n])?p[n]:'.');
     66    pb = (unsigned char *) addr;
     67    for (n=0;n<=(m==(max-1)?res:0xf);n+=2)
     68      printf("%04X%c",*((unsigned short*)(pb+n)),n==6?'-':' ');
     69    for (;n<=0xf;n+=2)
     70      printf("    %c", n==6?'-':' ');
     71    for (n=0;n<=(m==(max-1)?res:0xf);n++) {
     72      printf("%c", isprint(pb[n]) ? pb[n] : '.');
    5773    }
    5874    printf("\n");
Note: See TracChangeset for help on using the changeset viewer.