Changeset 1718 for zzuf/trunk


Ignore:
Timestamp:
Jan 25, 2007, 11:34:28 PM (13 years ago)
Author:
Sam Hocevar
Message:
  • Carry DEBUG_FILENO in the ZZUF_DEBUG environment variable.
Location:
zzuf/trunk/src
Files:
5 edited

Legend:

Unmodified
Added
Removed
  • zzuf/trunk/src/debug.c

    r1689 r1718  
    3535#include "libzzuf.h"
    3636
    37 extern int _zz_hasdebug;
     37extern int _zz_debugfd;
    3838
    3939#define WRITE_INT(fd, i, base) \
     
    5858#endif
    5959    va_list args;
    60     int saved_errno, fd = DEBUG_FILENO;
     60    int saved_errno;
    6161
    62     if(!_zz_hasdebug)
     62    if(_zz_debugfd < 0)
    6363        return;
    6464
     
    6666    va_start(args, format);
    6767#ifdef SAFE_FUNCTION
    68     write(fd, "** zzuf debug ** ", 17);
     68    write(_zz_debugfd, "** zzuf debug ** ", 17);
    6969    for(f = format; *f; f++)
    7070    {
    7171        if(*f != '%')
    7272        {
    73             write(fd, f, 1);
     73            write(_zz_debugfd, f, 1);
    7474            continue;
    7575        }
     
    8383            char i = (char)(unsigned char)va_arg(args, int);
    8484            if(i >= 0x20 && i < 0x7f)
    85                 write(fd, &i, 1);
     85                write(_zz_debugfd, &i, 1);
    8686            else if(i == '\n')
    87                 write(fd, "\\n", 2);
     87                write(_zz_debugfd, "\\n", 2);
    8888            else if(i == '\t')
    89                 write(fd, "\\t", 2);
     89                write(_zz_debugfd, "\\t", 2);
    9090            else if(i == '\r')
    91                 write(fd, "\\r", 2);
     91                write(_zz_debugfd, "\\r", 2);
    9292            else
    9393            {
    94                 write(fd, "\\x", 2);
    95                 write(fd, hex2char + ((i & 0xf0) >> 4), 1);
    96                 write(fd, hex2char + (i & 0x0f), 1);
     94                write(_zz_debugfd, "\\x", 2);
     95                write(_zz_debugfd, hex2char + ((i & 0xf0) >> 4), 1);
     96                write(_zz_debugfd, hex2char + (i & 0x0f), 1);
    9797            }
    9898        }
     
    100100        {
    101101            int i = va_arg(args, int);
    102             WRITE_INT(fd, i, 10);
     102            WRITE_INT(_zz_debugfd, i, 10);
    103103        }
    104104        else if(*f == 'x')
    105105        {
    106106            int i = va_arg(args, int);
    107             WRITE_INT(fd, i, 16);
     107            WRITE_INT(_zz_debugfd, i, 16);
    108108        }
    109109        else if(f[0] == 'l' && f[1] == 'i')
    110110        {
    111111            long int i = va_arg(args, long int);
    112             WRITE_INT(fd, i, 10);
     112            WRITE_INT(_zz_debugfd, i, 10);
    113113            f++;
    114114        }
     
    116116        {
    117117            long long int i = va_arg(args, long long int);
    118             WRITE_INT(fd, i, 10);
     118            WRITE_INT(_zz_debugfd, i, 10);
    119119            f += 2;
    120120        }
     
    123123            uintptr_t i = va_arg(args, uintptr_t);
    124124            if(!i)
    125                 write(fd, "NULL", 5);
     125                write(_zz_debugfd, "NULL", 5);
    126126            else
    127127            {
    128                 write(fd, "0x", 2);
    129                 WRITE_INT(fd, i, 16);
     128                write(_zz_debugfd, "0x", 2);
     129                WRITE_INT(_zz_debugfd, i, 16);
    130130            }
    131131        }
     
    134134            char *s = va_arg(args, char *);
    135135            if(!s)
    136                 write(fd, "(nil)", 5);
     136                write(_zz_debugfd, "(nil)", 5);
    137137            else
    138138            {
     
    140140                while(s[l])
    141141                    l++;
    142                 write(fd, s, l);
     142                write(_zz_debugfd, s, l);
    143143            }
    144144        }
     
    146146        {
    147147            int i = va_arg(args, int);
    148             write(fd, hex2char + ((i & 0xf0) >> 4), 1);
    149             write(fd, hex2char + (i & 0x0f), 1);
     148            write(_zz_debugfd, hex2char + ((i & 0xf0) >> 4), 1);
     149            write(_zz_debugfd, hex2char + (i & 0x0f), 1);
    150150            f += 2;
    151151        }
    152152        else
    153153        {
    154             write(fd, f - 1, 2);
     154            write(_zz_debugfd, f - 1, 2);
    155155        }
    156156    }
    157     write(fd, "\n", 1);
     157    write(_zz_debugfd, "\n", 1);
    158158#else
    159159    fprintf(stderr, "** zzuf debug ** ");
  • zzuf/trunk/src/lib-fd.c

    r1699 r1718  
    451451
    452452    /* Hey, it’s our debug channel! Silently pretend we closed it. */
    453     if(fd == DEBUG_FILENO)
     453    if(fd == _zz_debugfd)
    454454        return 0;
    455455
  • zzuf/trunk/src/libzzuf.c

    r1717 r1718  
    5252/* Global variables */
    5353int   _zz_ready    = 0;
    54 int   _zz_hasdebug = 0;
     54int   _zz_debugfd  = -1;
    5555int   _zz_signal   = 0;
    5656int   _zz_memory   = 0;
     
    6666
    6767    tmp = getenv("ZZUF_DEBUG");
    68     if(tmp && *tmp == '1')
    69         _zz_hasdebug = 1;
     68    if(tmp)
     69        _zz_debugfd = atoi(tmp);
    7070
    7171    tmp = getenv("ZZUF_SEED");
  • zzuf/trunk/src/libzzuf.h

    r1714 r1718  
    1616 *  libzzuf.h: preloaded wrapper library
    1717 */
    18 
    19 /* We use file descriptor 17 as the debug channel */
    20 #define DEBUG_FILENO 17
    2118
    2219/* We arbitrarily split files into 1024-byte chunks. Each chunk has an
     
    4845extern int _zz_ready;
    4946extern int _zz_disabled;
    50 extern int _zz_hasdebug;
     47extern int _zz_debugfd;
    5148extern int _zz_signal;
    5249extern int _zz_memory;
  • zzuf/trunk/src/zzuf.c

    r1710 r1718  
    6565#   define SIGKILL 9
    6666#endif
     67
     68/* We use file descriptor 17 as the debug channel */
     69#define DEBUG_FILENO 17
     70#define DEBUG_FILENO_STR "17"
    6771
    6872static void loop_stdin(struct opts *);
     
    200204            break;
    201205        case 'd': /* --debug */
    202             setenv("ZZUF_DEBUG", "1", 1);
     206            setenv("ZZUF_DEBUG", DEBUG_FILENO_STR, 1);
    203207            break;
    204208        case 'D': /* --delay */
Note: See TracChangeset for help on using the changeset viewer.