Changeset 1443


Ignore:
Timestamp:
May 16, 2004, 10:31:05 PM (21 years ago)
Author:
bird
Message:

started on extensions.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/emx/src/lib/sys/logstrict.c

    • Property cvs2svn:cvs-rev changed from 1.7 to 1.8
    r1442 r1443  
    14211421static int      __libc_logVSNPrintf(char *pszBuffer, size_t cchBuffer, const char *pszFormat, va_list args)
    14221422{
     1423    static const char szHexChars[17] = "0123456789abcdef";
    14231424    int             rc;
    14241425    char           *pszBufferIn = pszBuffer;
     
    16621663                        }
    16631664
     1665                        /* extensions. */
     1666                        case 'Z':
     1667                        {
     1668                            pszFormat++;
     1669                            switch (*pszFormat++)
     1670                            {
     1671                                /* hex dump */
     1672                                case 'd':
     1673                                {
     1674                                    const char *pb = va_arg(args, const char *);
     1675                                    int cb = cchPrecision;
     1676                                    if (cb <= 0)
     1677                                        cb = cchWidth;
     1678                                    if (cb <= 0)
     1679                                        cb = 4;
     1680                                    if (pb < (const char *)0x10000)
     1681                                    {
     1682                                        if (cb && cchBuffer >= 2)
     1683                                        {
     1684                                            char ch = *pb++;
     1685                                            *pszBuffer++ = szHexChars[(unsigned)ch >> 4];
     1686                                            *pszBuffer++ = szHexChars[(unsigned)ch & 0xf];
     1687                                            cb--;
     1688                                            cchBuffer -= 2;
     1689                                            cch += 2;
     1690
     1691                                            while (cb && cchBuffer >= 3)
     1692                                            {
     1693                                                ch = *pb++;
     1694                                                cb--;
     1695                                                *pszBuffer++ = ' ';
     1696                                                *pszBuffer++ = szHexChars[(unsigned)ch >> 4];
     1697                                                *pszBuffer++ = szHexChars[(unsigned)ch & 0xf];
     1698                                                cchBuffer -= 3;
     1699                                                cch += 3;
     1700                                            }
     1701                                        }
     1702                                    }
     1703                                    else
     1704                                    {
     1705                                        pb = "<NULL>";
     1706                                        cb = 6;
     1707                                        while (cb && cchBuffer)
     1708                                        {
     1709                                            *pszBuffer++ = *pb++;
     1710                                            cb--;
     1711                                            cchBuffer--;
     1712                                            cch++;
     1713                                        }
     1714                                    }
     1715                                    break;
     1716                                }
     1717
     1718                                default:
     1719                                    continue;
     1720                            }
     1721                        }
     1722
    16641723
    16651724                        default:
Note: See TracChangeset for help on using the changeset viewer.