Download Reference Manual
The Developer's Library for D
About Wiki Forums Source Search Contact

Changeset 3452

Show
Ignore:
Timestamp:
04/22/08 00:23:42 (4 months ago)
Author:
sean
Message:

Added static ctor. This fixes #1007

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/tango/stdc/stdio.d

    r3437 r3452  
    6666else version ( freebsd ) 
    6767{ 
    68    const int EOF           = -1; 
    69    const int FOPEN_MAX     = 20; 
    70    const int FILENAME_MAX  = 1024; 
    71    const int TMP_MAX       = 308915776; 
    72    const int L_tmpnam      = 1024; 
    73  
    74    private 
    75    
    76        struct __sbuf 
    77        
    78            ubyte *_base; 
    79            int _size; 
    80        
    81        struct __sFILEX 
    82        
    83        
    84    
     68    const int EOF           = -1; 
     69    const int FOPEN_MAX     = 20; 
     70    const int FILENAME_MAX  = 1024; 
     71    const int TMP_MAX       = 308915776; 
     72    const int L_tmpnam      = 1024; 
     73 
     74    private 
     75   
     76        struct __sbuf 
     77       
     78            ubyte *_base; 
     79            int _size; 
     80       
     81        struct __sFILEX 
     82       
     83       
     84   
    8585} 
    8686else 
     
    160160        fpos_t    _offset; 
    161161    } 
    162    else version( freebsd ) 
     162    else version( freebsd ) 
    163163    { 
    164164        ubyte*    _p; 
     
    170170        int       _lbfsize; 
    171171 
    172        void* function()                        _cookie; 
     172        void* function()                        _cookie; 
    173173        int* function(void*)                    _close; 
    174174        int* function(void*, char*, int)        _read; 
     
    188188        fpos_t    _offset; 
    189189    } 
    190    else 
    191    
    192        static assert( false ); 
    193    
     190    else 
     191   
     192        static assert( false ); 
     193   
    194194} 
    195195 
     
    229229    } 
    230230 
    231    extern void function() _fcloseallp; 
    232  
    233    version (GNU) 
    234    
    235        extern FILE[_NFILE]* _imp___iob; 
    236  
    237        const FILE* stdin; 
    238        const FILE* stdout; 
    239        const FILE* stderr; 
    240        const FILE* stdaux; 
    241        const FILE* stdprn; 
    242  
    243        static this() 
    244        
    245            stdin  = &(*_imp___iob)[0]; 
    246            stdout = &(*_imp___iob)[1]; 
    247            stderr = &(*_imp___iob)[2]; 
    248            stdaux = &(*_imp___iob)[3]; 
    249            stdprn = &(*_imp___iob)[4]; 
    250        
    251    
    252    else 
    253    
    254        extern FILE[_NFILE] _iob; 
    255  
    256        const FILE* stdin  = &_iob[0]; 
    257        const FILE* stdout = &_iob[1]; 
    258        const FILE* stderr = &_iob[2]; 
    259        const FILE* stdaux = &_iob[3]; 
    260        const FILE* stdprn = &_iob[4]; 
    261    
     231    extern void function() _fcloseallp; 
     232 
     233    version (GNU) 
     234   
     235        extern FILE[_NFILE]* _imp___iob; 
     236 
     237        const FILE* stdin; 
     238        const FILE* stdout; 
     239        const FILE* stderr; 
     240        const FILE* stdaux; 
     241        const FILE* stdprn; 
     242 
     243        static this() 
     244       
     245            stdin  = &(*_imp___iob)[0]; 
     246            stdout = &(*_imp___iob)[1]; 
     247            stderr = &(*_imp___iob)[2]; 
     248            stdaux = &(*_imp___iob)[3]; 
     249            stdprn = &(*_imp___iob)[4]; 
     250       
     251   
     252    else 
     253   
     254        extern FILE[_NFILE] _iob; 
     255 
     256        const FILE* stdin  = &_iob[0]; 
     257        const FILE* stdout = &_iob[1]; 
     258        const FILE* stderr = &_iob[2]; 
     259        const FILE* stdaux = &_iob[3]; 
     260        const FILE* stdprn = &_iob[4]; 
     261   
    262262} 
    263263else version( linux ) 
     
    280280    extern FILE* __stderrp; 
    281281 
    282     const FILE* stdin  = __stdinp; 
    283     const FILE* stdout = __stdoutp; 
    284     const FILE* stderr = __stdoutp; 
     282    const FILE* stdin; 
     283    const FILE* stdout; 
     284    const FILE* stderr; 
     285 
     286    static this() 
     287    { 
     288        stdin  = __stdinp; 
     289        stdout = __stdoutp; 
     290        stderr = __stderrp; 
     291    } 
    285292} 
    286293else version( freebsd ) 
    287294{ 
    288    extern FILE[3] __sF; 
     295    extern FILE[3] __sF; 
    289296 
    290297    const FILE* stdin  = &__sF[0]; 
     
    392399else version( freebsd ) 
    393400{ 
    394    void rewind(FILE*); 
     401    void rewind(FILE*); 
    395402    void clearerr(FILE*); 
    396403    int  feof(FILE*);