Changeset 430

Show
Ignore:
Timestamp:
10/16/07 00:13:29 (1 year ago)
Author:
andrei
Message:

Fixed the writeln(void[]) issue

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • candidate/phobos/std/conv.d

    r423 r430  
    241241    static if (isArray!(S)) { 
    242242      // array-to-string conversion 
    243         T result = to!(T)("["); 
    244         foreach (i, e; s) { 
    245             if (i) result ~= ','; 
    246             result ~= to!(T)(e); 
     243        static if (is(S == void[]) 
     244                   || is(S == const(void)[]) || is(S == invariant(void)[])) { 
     245            auto fake = cast(const(ubyte)[]) s; 
     246            T result; 
     247            foreach (i, e; fake) { 
     248                result ~= e; 
     249            } 
     250        } else { 
     251            T result = to!(T)("["); 
     252            foreach (i, e; s) { 
     253                if (i) result ~= ','; 
     254                result ~= to!(T)(e); 
     255            } 
     256            result ~= ']'; 
    247257        } 
    248         result ~= ']'; 
    249258        return result; 
    250259    } else static if (isAssociativeArray!(S)) { 
  • candidate/phobos/std/format.d

    r429 r430  
    19251925{ 
    19261926    D obj = *cast(D*) arg; 
    1927     static if (is(D Original == typedef)) { 
     1927    static if (is(D == void[])) { 
     1928        char[] s = cast(char[]) obj; 
     1929        w.write(s); 
     1930    } else static if (is(D Original == typedef)) { 
    19281931        formatGeneric!(Writer, Original)(w, arg, f); 
    19291932    } else static if (is(D == float) || is(D == double) || is(D == real)) { 
     
    19731976                foreach (i ; 0 .. f.width - s.length) w.putchar(' '); 
    19741977        } 
    1975     } else static if (is(D == void[])) { 
    1976         char[] s = cast(char[]) obj; 
    1977         w.write(s); 
    19781978    } else static if (isArray!(D)) { 
    19791979        w.putchar('['); 
  • candidate/phobos/std/stdio.d

    r426 r430  
    257257unittest 
    258258{ 
     259    void[] buf; 
     260    write(buf); 
    259261    // test write 
    260262    string file = "dmd-build-test.deleteme.txt";