Show
Ignore:
Timestamp:
10/15/10 09:50:50 (2 years ago)
Author:
aarti_pl
Message:

- another bunch of changes to make everything compile in D2.0

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/examples/util/config/FunctionTest.d

    r39 r81  
    2121import std.stdio; 
    2222import std.string; 
    23 import std2.conv; 
     23import std.conv; 
    2424 
    2525import doost.core.Any; 
    2626import doost.util.DUnit; 
    2727import doost.util.config.ProgramOptions;        //Always 
    28 import doost.util.config.CommandLineStorage;    //Only if backend is necessary 
    29 import doost.util.config.ConfigFileStorage;     //Only if backend is necessary 
    30 import doost.util.config.EnvironmentStorage;    //Only if backend is necessary 
    31 import doost.util.config.DbStorage;             //Only if backend is necessary 
     28import doost.util.config.storages.CommandLineStorage;    //Only if backend is necessary 
     29import doost.util.config.storages.ConfigFileStorage;     //Only if backend is necessary 
     30import doost.util.config.storages.EnvironmentStorage;    //Only if backend is necessary 
     31//import doost.util.config.storages.DbStorage;             //Only if backend is necessary 
    3232import doost.util.config.Formatter;             //Only for non-standard output 
    3333                                                //description and for user defined 
    3434                                                //formatters 
    35  
    36 //import doost.util.config.Value; 
    37  
    3835version(ddbi_v62) { 
    3936    import dbi.Database; 
     
    8683        ("turnItOn,r", boolSwitch, "makecoffee") 
    8784        ("compression,c", define!(int), "set compression level") 
    88         ("title,t", define!(char[]).defaultValue("title"), "set title of window") 
    89         ("include,i", define!(char[][]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
     85        ("title,t", define!(string).defaultValue("title"), "set title of window") 
     86        ("include,i", define!(string[]).composing.defaultValue(["default1", "default2"]), "include paths") 
    9087        ("myVal", define!(MyVal).parser(&parseMyValue), "include paths") 
    91         ("firstname", define!(char[][]).composing, "firstname") 
    92         ("secondname", define!(char[][]).composing, "secondname") 
    93         ("nickname,n", define!(char[][]).composing, "nickname") 
    94         ("date", define!(char[])(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
    95         ("regexp[ression]*,g", define!(char[]), "regular expression", new RegExpOption) 
     88        ("firstname", define!(string[]).composing, "firstname") 
     89        ("secondname", define!(string[]).composing, "secondname") 
     90        ("nickname,n", define!(string[]).composing, "nickname") 
     91        ("date", define!(string)(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
     92        ("regexp[ression]*,g", define!(string), "regular expression", new RegExpOption) 
    9693        ("number\\d\\d", define!(byte), "following numbers", new RegExpOption) 
    97         ("int,p", define!(char[])(r"\d\d\d"), new RegExpOption) 
    98         ("string,s", define!(char[]), "text parameter") 
     94        ("int,p", define!(string)(r"\d\d\d"), new RegExpOption) 
     95        ("string,s", define!(string), "text parameter") 
    9996        ("other,o", define!(double), "other parameter") 
    10097        //Only alias option 
    101         (",J", define!(char[][]), "import paths") 
     98        (",J", define!(string[]), "import paths") 
    10299    ; 
    103100});} 
     
    114111        ("help,h", "produce help message") 
    115112        ("compression,c", define!(uint), "compression level") 
    116         ("date", define!(char[]), "start date") 
     113        ("date", define!(string), "start date") 
    117114    ; 
    118115 
    119116    ro1 = new RegularOptions("Second group"); 
    120117    ro1.options() 
    121         ("title,t", define!(char[]), "window title") 
     118        ("title,t", define!(string), "window title") 
    122119        ("process,p", define!(uint), "process number") 
    123120    ; 
     
    155152    ro2 = new RegularOptions("All options"); 
    156153    ro2.options() 
    157         ("firstname", define!(char[][]).composing, "firstname") 
    158         ("secondname", define!(char[][]).composing, "secondname") 
     154        ("firstname", define!(string[]).composing, "firstname") 
     155        ("secondname", define!(string[]).composing, "secondname") 
    159156        (ro) 
    160157        (ro1); 
     
    177174    "; 
    178175 
    179     //writefln("\n", real_desc); 
     176    //writeln("\n", real_desc); 
    180177    assert(removechars(real_desc, " \t\n\r") == removechars(expc_desc, " \t\n\r")); 
    181178});} 
     
    203200        ro = new RegularOptions; 
    204201        ro.options() 
    205             ("title,t", define!(char[]), "window title") 
     202            ("title,t", define!(string), "window title") 
    206203            ("process,t", define!(uint), "process number") 
    207204        ; 
     
    211208        ro = new RegularOptions; 
    212209        ro.options() 
    213             ("title", define!(char[]), "window title") 
     210            ("title", define!(string), "window title") 
    214211            ("title,t", define!(uint), "process number") 
    215212        ; 
     
    219216        ro = new RegularOptions; 
    220217        ro.options() 
    221             ("title", define!(char[]), "window title") 
     218            ("title", define!(string), "window title") 
    222219            ("title,t", define!(uint), "process number") 
    223220        ; 
     
    227224        ro = new RegularOptions; 
    228225        ro.options() 
    229             (".*", define!(char[]), "all other options") 
    230             (".*", define!(char[]), "other other options") 
     226            (".*", define!(string), "all other options") 
     227            (".*", define!(string), "other other options") 
    231228        ; 
    232229    })); 
     
    245242 
    246243unittest { testCase.execute("CL Storage - lists", { 
    247     char[][] args; 
     244    string[] args; 
    248245    RegularOptions ro; 
    249246    ProgramOptions po; 
     
    254251    ro.options() 
    255252        ("help,h", "produce help message") 
    256         ("include,i", define!(char[][]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
    257         ("firstname", define!(char[][]).composing, "firstname") 
    258         ("secondname", define!(char[][]).composing, "secondname") 
    259         ("nickname,n", define!(char[][]).composing, "nickname") 
     253        ("include,i", define!(string[]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
     254        ("firstname", define!(string[]).composing, "firstname") 
     255        ("secondname", define!(string[]).composing, "secondname") 
     256        ("nickname,n", define!(string[]).composing, "nickname") 
    260257    ; 
    261258 
     
    268265    assert(checkException!(UnknownOptionException)({"blah" in po; })); 
    269266 
    270     assert(po["include"].as!(char[][]) == ["a", "b", "c"]); 
     267    assert(po["include"].as!(string[]) == ["a", "b", "c"]); 
    271268    po.disconnect; 
    272269 
     
    277274    po.connect; 
    278275 
    279     trace(po["include"].as!(char[][])); 
    280     assert(po["include"].as!(char[][]) == ["a", "b", "c"]); 
    281     assert(po["firstname"].as!(char[][]) == ["Anita", "Ewa Krystyna", "Paulina"]); 
    282     trace(po["secondname"].as!(char[][])); 
    283     assert(po["secondname"].as!(char[][]) == ["Korwin\tMikke"]); 
    284     trace(po["nickname"].as!(char[][])); 
    285     assert(po["nickname"].as!(char[][]) == ["Aarti", "Bono", "Bruce"]); 
     276    trace(po["include"].as!(string[])); 
     277    assert(po["include"].as!(string[]) == ["a", "b", "c"]); 
     278    assert(po["firstname"].as!(string[]) == ["Anita", "Ewa Krystyna", "Paulina"]); 
     279    trace(po["secondname"].as!(string[])); 
     280    assert(po["secondname"].as!(string[]) == ["Korwin\tMikke"]); 
     281    trace(po["nickname"].as!(string[])); 
     282    assert(po["nickname"].as!(string[]) == ["Aarti", "Bono", "Bruce"]); 
    286283 
    287284    po.disconnect; 
     
    291288 
    292289unittest { testCase.execute("CL Storage - long/short options", { 
    293     char[][] args; 
     290    string[] args; 
    294291    RegularOptions ro; 
    295292    ProgramOptions po; 
     
    320317unittest { testCase.execute("CL Storage - response files", { 
    321318    void[] buffer; 
    322     char[][] args; 
     319    string[] args; 
    323320    RegularOptions ro; 
    324321    ProgramOptions po; 
     
    335332    ro.options() 
    336333        ("turnItOn,r", boolSwitch, "makecoffee") 
    337         ("date", define!(char[])(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
    338         ("firstname", define!(char[][]).composing, "firstname") 
    339         ("secondname", define!(char[][]).composing, "secondname") 
     334        ("date", define!(string)(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
     335        ("firstname", define!(string[]).composing, "firstname") 
     336        ("secondname", define!(string[]).composing, "secondname") 
    340337    ; 
    341338 
     
    347344 
    348345    assert(("turnItOn" in po) !is null); 
    349     assert(po["date"].as!(char[]) == "1975-07-04"); 
    350     assert(po["firstname"].as!(char[][]) == ["Ala", "Ola", "Sylwia"]); 
    351     assert(po["secondname"].as!(char[][]) == ["Atkinson", "Bullock"]); 
     346    assert(po["date"].as!(string) == "1975-07-04"); 
     347    assert(po["firstname"].as!(string[]) == ["Ala", "Ola", "Sylwia"]); 
     348    assert(po["secondname"].as!(string[]) == ["Atkinson", "Bullock"]); 
    352349 
    353350    po.disconnect; 
     
    357354 
    358355unittest { testCase.execute("CL Storage - custom values", { 
    359     char[][] args; 
     356    string[] args; 
    360357    RegularOptions ro; 
    361358    ProgramOptions po; 
     
    365362        ("help,h", "produce help message") 
    366363        ("compression,c", define!(int), "set compression level") 
    367         ("title,t", define!(char[]).defaultValue("title"), "set title of window") 
     364        ("title,t", define!(string).defaultValue("title"), "set title of window") 
    368365        ("doTheTest,d", "maketest") 
    369366        ("myVal", define!(MyVal).parser(&parseMyValue), "include paths") 
     
    381378    assert(po["compression"].as!(int) == 8); 
    382379    assert(("title" in po) !is null); 
    383     assert(po["title"].as!(char[]) == "title"); 
     380    assert(po["title"].as!(string) == "title"); 
    384381    assert(po["myVal"].as!(MyVal) == new MyVal(7)); 
    385382    po.disconnect; 
     
    389386 
    390387unittest { testCase.execute("CL Storage - self path", { 
    391     char[][] args; 
     388    string[] args; 
    392389    string str1, str2, str3; 
    393390    RegularOptions ro; 
     
    428425    po.connect; 
    429426    assert(("selfpath" in po) !is null); 
    430     trace(po["selfpath"].as!(char[])); 
    431     assert(po["selfpath"].as!(char[]) == str1); 
     427    trace(po["selfpath"].as!(string)); 
     428    assert(po["selfpath"].as!(string) == str1); 
    432429    assert(("selfdir" in po) !is null); 
    433     assert(po["selfdir"].as!(char[]) == str2); 
     430    assert(po["selfdir"].as!(string) == str2); 
    434431    assert(("selfname" in po) !is null); 
    435     assert(po["selfname"].as!(char[]) == str3); 
     432    assert(po["selfname"].as!(string) == str3); 
    436433    po.disconnect; 
    437434});} 
     
    440437 
    441438unittest { testCase.execute("CL Storage - synchronization", { 
    442     char[][] args; 
     439    string[] args; 
    443440    RegularOptions ro; 
    444441    ProgramOptions po; 
     
    448445        ("help,h", "produce help message") 
    449446        ("compression,c", define!(int), "set compression level") 
    450         ("title,t", define!(char[]).defaultValue("title"), "set title of window") 
     447        ("title,t", define!(string).defaultValue("title"), "set title of window") 
    451448        ("doTheTest,d", "maketest") 
    452449    ; 
     
    465462 
    466463unittest { testCase.execute("CL Storage - constraints", { 
    467     char[][] args; 
     464    string[] args; 
    468465    RegularOptions ro; 
    469466    ProgramOptions po; 
     
    474471    ro.options() 
    475472        ("compression,c", define!(int), "set compression level") 
    476         ("title,t", define!(char[]).defaultValue("title"), "set title of window") 
     473        ("title,t", define!(string).defaultValue("title"), "set title of window") 
    477474        ("doTheTest,d", "maketest") 
    478         ("include,i", define!(char[][]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
     475        ("include,i", define!(string[]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
    479476        ("myVal", define!(MyVal).parser(&parseMyValue), "include paths") 
    480         ("int,p", define!(char[])(r"\d\d\d"), new RegExpOption) 
    481         ("string,s", define!(char[]), "text parameter") 
    482         ("firstname", define!(char[][]).composing, "firstname") 
    483         ("secondname", define!(char[][]).composing, "secondname") 
    484         ("nickname,n", define!(char[][]).composing, "nickname") 
     477        ("int,p", define!(string)(r"\d\d\d"), new RegExpOption) 
     478        ("string,s", define!(string), "text parameter") 
     479        ("firstname", define!(string[]).composing, "firstname") 
     480        ("secondname", define!(string[]).composing, "secondname") 
     481        ("nickname,n", define!(string[]).composing, "nickname") 
    485482    ; 
    486483 
     
    505502 
    506503unittest { testCase.execute("CL Storage - input options composing", { 
    507     char[][] args; 
     504    string[] args; 
    508505    RegularOptions ro; 
    509506    ProgramOptions po; 
     
    512509    ro.options() 
    513510        ("compression,c", define!(int), "set compression level") 
    514         ("title,t", define!(char[]).defaultValue("title"), "set title of window") 
     511        ("title,t", define!(string).defaultValue("title"), "set title of window") 
    515512        ("doTheTest,d", "maketest") 
    516         ("include,i", define!(char[][]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
    517         ("int,p", define!(char[])(r"\d\d\d"), new RegExpOption) 
    518         ("string,s", define!(char[]), "text parameter") 
    519         ("firstname", define!(char[][]).composing, "firstname") 
    520         ("secondname", define!(char[][]).composing, "secondname") 
    521         ("nickname,n", define!(char[][]).composing, "nickname") 
     513        ("include,i", define!(string[]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
     514        ("int,p", define!(string)(r"\d\d\d"), new RegExpOption) 
     515        ("string,s", define!(string), "text parameter") 
     516        ("firstname", define!(string[]).composing, "firstname") 
     517        ("secondname", define!(string[]).composing, "secondname") 
     518        ("nickname,n", define!(string[]).composing, "nickname") 
    522519    ; 
    523520 
     
    535532    assert(("compression" in po.storage!(CommandLineStorage)) is null); 
    536533    assert(checkException!(OptionHasNoValueException)({po.storage!(CommandLineStorage)["compression"];})); 
    537     trace(po["include"].as!(char[][])); 
    538     assert(po["include"].as!(char[][]) == ["/usr/local", "/usr/", "/bin/"]); 
     534    trace(po["include"].as!(string[])); 
     535    assert(po["include"].as!(string[]) == ["/usr/local", "/usr/", "/bin/"]); 
    539536    po.disconnect; 
    540537});} 
     
    543540 
    544541unittest { testCase.execute("CL Storage - positional options", { 
    545     char[][] args; 
     542    string[] args; 
    546543    RegularOptions ro; 
    547544    CommandLineOptions clo; 
     
    551548    ro.options() 
    552549        ("compression,c", define!(int), "set compression level") 
    553         ("title,t", define!(char[]).defaultValue("title"), "set title of window") 
     550        ("title,t", define!(string).defaultValue("title"), "set title of window") 
    554551        ("doTheTest,d", "maketest") 
    555         ("include,i", define!(char[][]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
    556         ("int,p", define!(char[])(r"\d\d\d"), new RegExpOption) 
    557         ("string,s", define!(char[]), "text parameter") 
    558         ("firstname", define!(char[][]).composing, "firstname") 
    559         ("secondname", define!(char[][]).composing, "secondname") 
    560         ("nickname,n", define!(char[][]).composing, "nickname") 
     552        ("include,i", define!(string[]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
     553        ("int,p", define!(string)(r"\d\d\d"), new RegExpOption) 
     554        ("string,s", define!(string), "text parameter") 
     555        ("firstname", define!(string[]).composing, "firstname") 
     556        ("secondname", define!(string[]).composing, "secondname") 
     557        ("nickname,n", define!(string[]).composing, "nickname") 
    561558    ; 
    562559 
     
    573570 
    574571    po.connect; 
    575     assert(po["firstname"].as!(char[][]) == ["Ala", "Ola"]); 
    576     assert(po["secondname"].as!(char[][]) == ["Kowalska", "Nowak"]); 
    577     assert(po["nickname"].as!(char[][]) == ["Aarti_pl"]); 
     572    assert(po["firstname"].as!(string[]) == ["Ala", "Ola"]); 
     573    assert(po["secondname"].as!(string[]) == ["Kowalska", "Nowak"]); 
     574    assert(po["nickname"].as!(string[]) == ["Aarti_pl"]); 
    578575    po.disconnect; 
    579576});} 
     
    582579 
    583580unittest { testCase.execute("CL Storage - regular expression options", { 
    584     char[][] args; 
     581    string[] args; 
    585582    RegularOptions ro; 
    586583    CommandLineOptions clo; 
     
    598595        ("turnItOn,r", boolSwitch, "makecoffee") 
    599596        ("compression,c", define!(int), "set compression level") 
    600         ("title,t", define!(char[]).defaultValue("title"), "set title of window") 
    601         ("include,i", define!(char[][]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
    602         ("firstname", define!(char[][]).composing, "firstname") 
    603         ("secondname", define!(char[][]).composing, "secondname") 
    604         ("nickname,n", define!(char[][]).composing, "nickname") 
    605         ("date", define!(char[])(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
    606         ("regexp[ression]*,g", define!(char[]), "regular expression", new RegExpOption) 
     597        ("title,t", define!(string).defaultValue("title"), "set title of window") 
     598        ("include,i", define!(string[]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
     599        ("firstname", define!(string[]).composing, "firstname") 
     600        ("secondname", define!(string[]).composing, "secondname") 
     601        ("nickname,n", define!(string[]).composing, "nickname") 
     602        ("date", define!(string)(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
     603        ("regexp[ression]*,g", define!(string), "regular expression", new RegExpOption) 
    607604        ("number\\d\\d", define!(byte), "following numbers", new RegExpOption) 
    608         ("int,p", define!(char[])(r"\d\d\d"), new RegExpOption) 
    609         ("string,s", define!(char[]), "text parameter") 
     605        ("int,p", define!(string)(r"\d\d\d"), new RegExpOption) 
     606        ("string,s", define!(string), "text parameter") 
    610607        ("other,o", define!(double), "other parameter") 
    611608        //Only alias name 
    612         (",J", define!(char[][]), "import paths") 
     609        (",J", define!(string[]), "import paths") 
    613610    ; 
    614611 
     
    626623 
    627624    assert(("regexpression" in po) !is null); 
    628     assert(po["regexpression"].as!(char[]) == "regexpstring"); 
     625    assert(po["regexpression"].as!(string) == "regexpstring"); 
    629626    assert(po["compression"].as!(int) == 8); 
    630     assert(po["date"].as!(char[]) == "1975-7-4"); 
    631     trace(po["string"].as!(char[])); 
    632     assert(po["string"].as!(char[]) == "D language"); 
     627    assert(po["date"].as!(string) == "1975-7-4"); 
     628    trace(po["string"].as!(string)); 
     629    assert(po["string"].as!(string) == "D language"); 
    633630 
    634631    po.disconnect; 
     
    642639 
    643640    assert(("date" in po) !is null); 
    644     assert(po["date"].as!(char[]) == "1975-07-04"); 
     641    assert(po["date"].as!(string) == "1975-07-04"); 
    645642    assert(("regexp" in po) !is null); 
    646     assert(po["regexp"].as!(char[]) == "regexpstring"); 
     643    assert(po["regexp"].as!(string) == "regexpstring"); 
    647644    assert(("number00" in po) !is null); 
    648645    assert(po["number00"].as!(byte) == 34); 
     
    652649    assert(po["compression"].as!(int) == 5); 
    653650    assert(("title" in po) !is null); 
    654     assert(po["title"].as!(char[]) == "title"); 
     651    assert(po["title"].as!(string) == "title"); 
    655652    assert(("doTheTest" in po) !is null); 
    656653    assert(("doTheCoffee" in po) !is null); 
     
    665662 
    666663unittest { testCase.execute("CL Storage - option styles", { 
    667     char[][] args; 
     664    string[] args; 
    668665    RegularOptions ro; 
    669666    ProgramOptions po; 
     
    682679        ("turnItOn,r", boolSwitch, "makecoffee") 
    683680        ("compression,c", define!(int), "set compression level") 
    684         ("title,t", define!(char[]).defaultValue("title"), "set title of window") 
    685         ("include,i", define!(char[][]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
    686         ("firstname", define!(char[][]).composing, "firstname") 
    687         ("secondname", define!(char[][]).composing, "secondname") 
    688         ("nickname,n", define!(char[][]).composing, "nickname") 
    689         ("date", define!(char[])(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
    690         ("regexp[ression]*,g", define!(char[]), "regular expression", new RegExpOption) 
     681        ("title,t", define!(string).defaultValue("title"), "set title of window") 
     682        ("include,i", define!(string[]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
     683        ("firstname", define!(string[]).composing, "firstname") 
     684        ("secondname", define!(string[]).composing, "secondname") 
     685        ("nickname,n", define!(string[]).composing, "nickname") 
     686        ("date", define!(string)(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
     687        ("regexp[ression]*,g", define!(string), "regular expression", new RegExpOption) 
    691688        ("number\\d\\d", define!(byte), "following numbers", new RegExpOption) 
    692         ("int,p", define!(char[])(r"\d\d\d"), new RegExpOption) 
    693         ("string,s", define!(char[]), "text parameter") 
     689        ("int,p", define!(string)(r"\d\d\d"), new RegExpOption) 
     690        ("string,s", define!(string), "text parameter") 
    694691        ("other,o", define!(double), "other parameter") 
    695692        //Only alias name 
    696         (",J", define!(char[][]), "import paths") 
     693        (",J", define!(string[]), "import paths") 
    697694    ; 
    698695 
     
    723720        ("turnItOn,r", boolSwitch, "makecoffee") 
    724721        ("compression,c", define!(int), "set compression level") 
    725         ("title,t", define!(char[]).defaultValue("title"), "set title of window") 
    726         ("include,i", define!(char[][]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
    727         ("firstname", define!(char[][]).composing, "firstname") 
    728         ("secondname", define!(char[][]).composing, "secondname") 
    729         ("nickname,n", define!(char[][]).composing, "nickname") 
    730         ("date", define!(char[])(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
    731         ("regexp[ression]*,g", define!(char[]), "regular expression", new RegExpOption) 
     722        ("title,t", define!(string).defaultValue("title"), "set title of window") 
     723        ("include,i", define!(string[]).composing.defaultValue(["default1"[], "default2"]), "include paths") 
     724        ("firstname", define!(string[]).composing, "firstname") 
     725        ("secondname", define!(string[]).composing, "secondname") 
     726        ("nickname,n", define!(string[]).composing, "nickname") 
     727        ("date", define!(string)(r"\d\d\d\d-\d?\d-\d?\d"), "date of birth") 
     728        ("regexp[ression]*,g", define!(string), "regular expression", new RegExpOption) 
    732729        ("number\\d\\d", define!(byte), "following numbers", new RegExpOption) 
    733         ("int,p", define!(char[])(r"\d\d\d"), new RegExpOption) 
    734         ("string,s", define!(char[]), "text parameter") 
     730        ("int,p", define!(string)(r"\d\d\d"), new RegExpOption) 
     731        ("string,s", define!(string), "text parameter") 
    735732        ("other,o", define!(double), "other parameter") 
    736733        //Only alias name 
    737         (",J", define!(char[][]), "import paths") 
     734        (",J", define!(string[]), "import paths") 
    738735    ; 
    739736 
     
    749746 
    750747    assert(po["compression"].as!(int) == 8); 
    751     assert(po["title"].as!(char[]) == "1984"); 
     748    assert(po["title"].as!(string) == "1984"); 
    752749 
    753750    po.disconnect; 
     
    765762    ro.options() 
    766763        ("compression", define!(int), "set compression level") 
    767         ("author", define!(char[]).defaultValue("drX"), "name of author") 
    768         ("include,i", define!(char[][]).composing, "include paths") 
    769         ("myname", define!(char[]), "name") 
    770         ("database.user", define!(char[]), "Database User") 
    771         ("database.password", define!(char[]), "Database Password") 
    772         ("database.ip", define!(char[])(r"[0|1|2]?\d?\d\.[0|1|2]?\d?\d\.[0|1|2]?\d?\d\.[0|1|2]?\d?\d"), "Database IP") 
     764        ("author", define!(string).defaultValue("drX"), "name of author") 
     765        ("include,i", define!(string[]).composing, "include paths") 
     766        ("myname", define!(string), "name") 
     767        ("database.user", define!(string), "Database User") 
     768        ("database.password", define!(string), "Database Password") 
     769        ("database.ip", define!(string)(r"[0|1|2]?\d?\d\.[0|1|2]?\d?\d\.[0|1|2]?\d?\d\.[0|1|2]?\d?\d"), "Database IP") 
    773770        ("interaction.help", "activate help") 
    774771        ("interaction.tips", "activate tips") 
     
    799796    assert(po["compression"].as!(int) == 6); 
    800797    po["compression"] = any!(int)(18); 
    801     po["database.ip"]= any!(char[])("127.0.0.1"); 
    802     po["database.user"]= any!(char[])("marcin"); 
    803     po["database.password"]= any!(char[])("******"); 
     798    po["database.ip"]= any!(string)("127.0.0.1"); 
     799    po["database.user"]= any!(string)("marcin"); 
     800    po["database.password"]= any!(string)("******"); 
    804801    assert(po["compression"].as!(int) == 18); 
    805     assert(po["database.ip"].as!(char[]) == "127.0.0.1"[]); 
     802    assert(po["database.ip"].as!(string) == "127.0.0.1"[]); 
    806803 
    807804    po.synchronize; 
     
    809806 
    810807    assert(po["compression"].as!(int) == 18); 
    811     assert(po["database.ip"].as!(char[]) == "127.0.0.1"[]); 
    812     assert(po["database.user"].as!(char[]) == "marcin"[]); 
    813     assert(po["database.password"].as!(char[]) == "******"[]); 
     808    assert(po["database.ip"].as!(string) == "127.0.0.1"[]); 
     809    assert(po["database.user"].as!(string) == "marcin"[]); 
     810    assert(po["database.password"].as!(string) == "******"[]); 
    814811    assert("interaction.balloons" in po); 
    815     assert(po["author"].as!(char[]) == "Szklarski"); 
    816     po["author"] = any!(char[])("Niziurski"); 
    817     assert(po["author"].as!(char[]) == "Niziurski"); 
     812    assert(po["author"].as!(string) == "Szklarski"); 
     813    po["author"] = any!(string)("Niziurski"); 
     814    assert(po["author"].as!(string) == "Niziurski"); 
    818815 
    819816    po.syncPolicy(SyncPolicy.Cached); 
    820817 
    821     assert(po["include"].as!(char[][]) == ["/usr/local/import/"]); 
    822     po.storage!(ConfigFileStorage)()["include"] = any!(char[][])(["/usr/local/bin/", "/bin/", "/usr/bin/"]); 
     818    assert(po["include"].as!(string[]) == ["/usr/local/import/"]); 
     819    po.storage!(ConfigFileStorage)()["include"] = any!(string[])(["/usr/local/bin/", "/bin/", "/usr/bin/"]); 
    823820 
    824821    po.synchronize; 
    825822 
    826     assert(po["include"].as!(char[][]) == ["/usr/local/bin/", "/bin/", "/usr/bin/"]); 
    827     po["myname"] = any!(char[])("Aarti_pl"); 
     823    assert(po["include"].as!(string[]) == ["/usr/local/bin/", "/bin/", "/usr/bin/"]); 
     824    po["myname"] = any!(string)("Aarti_pl"); 
    828825 
    829826    po.synchronize; 
    830     assert(po["myname"].as!(char[]) == "Aarti_pl"); 
    831  
    832     real_desc = cast(char[])std.file.read("test01.cfg"); 
     827    assert(po["myname"].as!(string) == "Aarti_pl"); 
     828 
     829    real_desc = cast(string)std.file.read("test01.cfg"); 
    833830    expc_desc = 
    834831"compression = 18 # Kompresja pliku 
     
    852849    po.synchronize; 
    853850 
    854     real_desc = cast(char[])std.file.read("test01.cfg"); 
     851    real_desc = cast(string)std.file.read("test01.cfg"); 
    855852    expc_desc = 
    856853"compression = 18 # Kompresja pliku 
     
    873870    po.synchronize; 
    874871 
    875     real_desc = cast(char[])std.file.read("test01.cfg"); 
     872    real_desc = cast(string)std.file.read("test01.cfg"); 
    876873    expc_desc =" 
    877874        compression = 18 # Kompresja pliku 
     
    891888 
    892889    assert(po["compression"].as!(int) == 18); 
    893     assert(po["myname"].as!(char[]) == "Aarti_pl"); 
     890    assert(po["myname"].as!(string) == "Aarti_pl"); 
    894891    po.disconnect; 
    895892 
     
    933930 
    934931    po.storage!(ConfigFileStorage).remove("compression"); 
    935     po.storage!(ConfigFileStorage)()["author"] = any!(char[])("Nienacki"); 
    936     po["database.ip"] = any!(char[])("223.14.80.34"); 
    937     po["database.password"] = any!(char[])("***"); 
    938     po["database.user"] = any!(char[])("Magda"); 
     932    po.storage!(ConfigFileStorage)()["author"] = any!(string)("Nienacki"); 
     933    po["database.ip"] = any!(string)("223.14.80.34"); 
     934    po["database.password"] = any!(string)("***"); 
     935    po["database.user"] = any!(string)("Magda"); 
    939936    po["interaction.help"] = any!()(); 
    940937    po["interaction.tips"] = any!()(); 
    941938 
    942     real_desc = cast(char[])std.file.read("test03.cfg"); 
     939    real_desc = cast(string)std.file.read("test03.cfg"); 
    943940    expc_desc =" 
    944941        author = \"Nienacki\" # Autor ksiƄ 
     
    960957    po.disconnect; 
    961958 
    962     real_desc = cast(char[])std.file.read("test03.cfg"); 
     959    real_desc = cast(string)std.file.read("test03.cfg"); 
    963960    assert(removechars(real_desc, " \t\n\r") == removechars(expc_desc, " \t\n\r")); 
    964961});} 
     
    972969    ro = new RegularOptions("Environment options"); 
    973970    ro.options() 
    974         ("po_include", define!(char[][]).composing, "include paths") 
    975         ("po_compiler", define!(char[]).defaultValue("dmd"), "default compiler") 
    976         ("po_linker", define!(char[]).defaultValue("link"), "default linker") 
     971        ("po_include", define!(string[]).composing, "include paths") 
     972        ("po_compiler", define!(string).defaultValue("dmd"), "default compiler") 
     973        ("po_linker", define!(string).defaultValue("link"), "default linker") 
    977974        ("po_threads", define!(uint).defaultValue(3), "number of compilation threads") 
    978975    ; 
     
    988985    assert(!("po_include" in po)); 
    989986    assert("po_compiler" in po); 
    990     assert(po["po_compiler"].as!(char[]) == "dmd"); 
     987    assert(po["po_compiler"].as!(string) == "dmd"); 
    991988    assert("po_linker" in po); 
    992     assert(po["po_linker"].as!(char[]) == "link"); 
     989    assert(po["po_linker"].as!(string) == "link"); 
    993990    assert("po_threads" in po); 
    994991    assert(po["po_threads"].as!(uint) == 3); 
    995992 
    996     po["po_compiler"] = any!(char[])("gdb"); 
    997     assert(po["po_compiler"].as!(char[]) == "gdb"); 
    998     po["po_linker"] = any!(char[])("gcc"); 
    999     assert(po["po_linker"].as!(char[]) == "gcc"); 
    1000  
    1001     po.disconnect; 
    1002  
    1003     po.connect; 
    1004  
    1005     assert(po["po_compiler"].as!(char[]) == "gdb"); 
    1006     assert(po["po_linker"].as!(char[]) == "gcc"); 
     993    po["po_compiler"] = any!(string)("gdb"); 
     994    assert(po["po_compiler"].as!(string) == "gdb"); 
     995    po["po_linker"] = any!(string)("gcc"); 
     996    assert(po["po_linker"].as!(string) == "gcc"); 
     997 
     998    po.disconnect; 
     999 
     1000    po.connect; 
     1001 
     1002    assert(po["po_compiler"].as!(string) == "gdb"); 
     1003    assert(po["po_linker"].as!(string) == "gcc"); 
    10071004 
    10081005    po.disconnect; 
     
    10231020        ("help,h", "produce help message") 
    10241021        ("compression", define!(int).defaultValue(2), "set compression level") 
    1025         ("title", define!(char[]).defaultValue("title"), "set title of window") 
    1026         ("include,i", define!(char[][]).composing, "include paths") 
     1022        ("title", define!(string).defaultValue("title"), "set title of window") 
     1023        ("include,i", define!(string[]).composing, "include paths") 
    10271024    ; 
    10281025 
     
    10301027    ro1.options() 
    10311028        ("help,h", "produce help message") 
    1032         ("title", define!(char[]).defaultValue("title"), "set title of window") 
    1033         ("include,i", define!(char[][]).composing, "include paths") 
     1029        ("title", define!(string).defaultValue("title"), "set title of window") 
     1030        ("include,i", define!(string[]).composing, "include paths") 
    10341031    ; 
    10351032 
     
    10371034    fil.options() 
    10381035        ("compression", define!(int), "set compression level") 
    1039         ("author", define!(char[]).defaultValue("drX"), "name of author") 
    1040         ("include,i", define!(char[][]).composing, "include paths") 
     1036        ("author", define!(string).defaultValue("drX"), "name of author") 
     1037        ("include,i", define!(string[]).composing, "include paths") 
    10411038    ; 
    10421039 
    10431040    fil1 = new RegularOptions("File storage 1"); 
    10441041    fil1.options() 
    1045         ("comment", define!(char[]).defaultValue("my comment"), "comment to last news") 
     1042        ("comment", define!(string).defaultValue("my comment"), "comment to last news") 
    10461043        ("list,l", "list all paths") 
    1047         ("title", define!(char[]).defaultValue("title"), "title of window") 
     1044        ("title", define!(string).defaultValue("title"), "title of window") 
    10481045    ; 
    10491046 
     
    10931090    assert(("compression" in po) !is null); 
    10941091    assert(po["compression"].as!(int) == 6); 
    1095     assert(po["author"].as!(char[]) == "Szklarski"); 
    1096  
    1097     assert(po.composedOptions("include").as!(char[][]) == ["/usr/local", "/usr/", "/bin/", "/usr/local/import/"]); 
    1098     assert(po.composedOptions("title").as!(char[][]) == ["title", "mytitle"]); 
     1092    assert(po["author"].as!(string) == "Szklarski"); 
     1093 
     1094    assert(po.composedOptions("include").as!(string[]) == ["/usr/local", "/usr/", "/bin/", "/usr/local/import/"]); 
     1095    assert(po.composedOptions("title").as!(string[]) == ["title", "mytitle"]); 
    10991096 
    11001097    po.storage!(CommandLineStorage)()["compression"] = any!(int)(2); 
     
    11541151    assert(compression == 15); 
    11551152 
    1156     assert(po.storage!(ConfigFileStorage)().storage!(ConfigFileStorage)()["title"].as!(char[])=="mytitle"); 
     1153    assert(po.storage!(ConfigFileStorage)().storage!(ConfigFileStorage)()["title"].as!(string)=="mytitle"); 
    11571154 
    11581155    po.disconnect; 
     
    12111208                .options() 
    12121209                    ("compression", define!(int), "set compression level") 
    1213                     ("author", define!(char[]).defaultValue("drX"), "name of author") 
    1214                     ("include,i", define!(char[][]).composing, "include paths") 
     1210                    ("author", define!(string).defaultValue("drX"), "name of author") 
     1211                    ("include,i", define!(string[]).composing, "include paths") 
    12151212                    () 
    12161213                .formatter(new BasicFormatter) 
     
    12491246    fil1 = new RegularOptions("File storage 1"); 
    12501247    fil1.options() 
    1251         ("comment", define!(char[]).defaultValue("my comment"), "comment to last news") 
     1248        ("comment", define!(string).defaultValue("my comment"), "comment to last news") 
    12521249    ; 
    12531250 
     
    12821279    po.synchronize; 
    12831280 
    1284     real_desc = cast(char[])std.file.read("test06.cfg"); 
     1281    real_desc = cast(string)std.file.read("test06.cfg"); 
    12851282    expc_desc ="compression = 128"; 
    12861283    assert(removechars(real_desc, " \t\n\r") == removechars(expc_desc, " \t\n\r")); 
     
    13011298    ro.options() 
    13021299        ("compression", define!(int).defaultValue(2), "set compression level") 
    1303         ("name", define!(char[]), "name of zip") 
     1300        ("name", define!(string), "name of zip") 
    13041301        ("help,h", "help for options") 
    13051302        (r"chanel\d", define!(int), "chanel number", new RegExpOption) 
     
    13091306    fil.options() 
    13101307        ("compression", define!(int), "set compression level") 
    1311         ("package", define!(char[]), "package name") 
     1308        ("package", define!(string), "package name") 
    13121309        (r"port\d\d\d,h", boolSwitch, "port to activate", new RegExpOption) 
    13131310    ; 
     
    13701367    ro.options() 
    13711368        ("compression", define!(int).defaultValue(2), "set compression level") 
    1372         ("name", define!(char[]), "name of zip") 
     1369        ("name", define!(string), "name of zip") 
    13731370        ("help,h", "help for options") 
    13741371        (r"chanel\d", define!(int), "chanel number", new RegExpOption) 
     
    13781375    fil.options() 
    13791376        ("compression", define!(int), "set compression level") 
    1380         ("package", define!(char[]), "package name") 
     1377        ("package", define!(string), "package name") 
    13811378        (r"port\d\d\d,h", boolSwitch, "port to activate", new RegExpOption) 
    13821379    ; 
     
    14231420    ro.options() 
    14241421        ("compression", define!(int).defaultValue(2), "set compression level") 
    1425         ("name", define!(char[]), "name of zip") 
     1422        ("name", define!(string), "name of zip") 
    14261423        ("help,h", "help for options") 
    14271424        (r"chanel\d", define!(int), "chanel number", new RegExpOption) 
     
    14441441    assert(po["compression"].as!(int) == 52); 
    14451442 
    1446     po["name"] = any!(char[])("Aarti_pl"); 
    1447     assert(po["name"].as!(char[]) == "Aarti_pl"); 
    1448  
    1449     po["name"] = any!(char[])("Wacek"); 
    1450     assert(po["name"].as!(char[]) == "Wacek"); 
     1443    po["name"] = any!(string)("Aarti_pl"); 
     1444    assert(po["name"].as!(string) == "Aarti_pl"); 
     1445 
     1446    po["name"] = any!(string)("Wacek"); 
     1447    assert(po["name"].as!(string) == "Wacek"); 
    14511448 
    14521449    //NOTE: for unknown reasons when using execute() in DbStorage below test fails 
     
    14711468    Program entry point 
    14721469 ******************************************************************************/ 
    1473 int main(char[][] args) { 
     1470int main(string[] args) { 
    14741471    try { 
    14751472        char sep = ';'; 
     
    14891486                    (new EnvironmentStorage) 
    14901487                        .options() 
    1491                             ("Path,PATH", define!(char[][]).separator(sep), "paths defined in system") 
     1488                            ("Path,PATH", define!(string[]).separator(sep), "paths defined in system") 
    14921489                            () 
    14931490                        .next( 
     
    14951492                        .options() 
    14961493                            ("optimization", define!(int), "level") 
    1497                             ("include-path", define!(char[][]), "include paths") 
     1494                            ("include-path", define!(string[]), "include paths") 
    14981495                            ("compression", define!(int), "set compression level") 
    14991496                            () 
     
    15011498                    (new ConfigFileStorage("file2.cfg")) 
    15021499                        .options() 
    1503                             ("name", define!(char[]), "name of game") 
     1500                            ("name", define!(string), "name of game") 
    15041501                            ("pi", define!(double), "value of eternity") 
    15051502                            () 
     
    15091506 
    15101507        if ("help" in po) { 
    1511             writefln(po); 
     1508            writeln(po); 
    15121509            return 0; 
    15131510        } 
    15141511 
    15151512        if ("compression" in po) { 
    1516             writefln("Compression level was set to ", po["compression"]); 
     1513            writeln("Compression level was set to ", po["compression"]); 
    15171514        } else { 
    1518             writefln("Compression level was not set."); 
     1515            writeln("Compression level was not set."); 
    15191516        } 
    15201517 
    15211518        if ("optimization" in po) { 
    1522             writefln("Optimization set to: ", po["optimization"]); 
     1519            writeln("Optimization set to: ", po["optimization"]); 
    15231520        } 
    15241521 
    15251522        if ("pi" in po) { 
    1526             writefln("Pi set to: ", po["pi"]); 
     1523            writeln("Pi set to: ", po["pi"]); 
    15271524        } 
    15281525 
    15291526        if ("name" in po) { 
    1530             writefln("Name set to: ", po["name"]); 
     1527            writeln("Name set to: ", po["name"]); 
    15311528        } 
    15321529 
    15331530        if ("PATH" in po) { 
    1534             writefln("\n\nThere are following directories in your system path: \n"); 
    1535  
    1536             foreach(p; po["Path"].as!(char[][])) { 
    1537                 writefln(p); 
     1531            writeln("\n\nThere are following directories in your system path: \n"); 
     1532 
     1533            foreach(p; po["Path"].as!(string[])) { 
     1534                writeln(p); 
    15381535            } 
    15391536        } 
     
    15481545    } 
    15491546    catch(ProgramOptionsException e) { 
    1550         writefln("Exception: ", e); 
     1547        writeln("Exception: ", e); 
    15511548        return 1; 
    15521549    }