Show
Ignore:
Timestamp:
07/26/07 20:06:38 (5 years ago)
Author:
KirkMcDonald
Message:

* Pyd now requires D 2.003 or later.
* Pyd now compiles with D 2.003.
* Resolved long-standing string-copying annoyance (thanks to const).

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • trunk/infrastructure/pyd/def.d

    r100 r120  
    3636]; 
    3737 
    38 private PyMethodDef[][char[]] module_methods; 
    39 private PyObject*[char[]] pyd_modules; 
     38private PyMethodDef[][string] module_methods; 
     39private PyObject*[string] pyd_modules; 
    4040 
    41 private void ready_module_methods(char[] modulename) { 
     41private void ready_module_methods(string modulename) { 
    4242    PyMethodDef empty; 
    4343    if (!(modulename in module_methods)) { 
     
    4747} 
    4848 
    49 PyObject* Pyd_Module_p(char[] modulename="") { 
     49PyObject* Pyd_Module_p(string modulename="") { 
    5050    PyObject** m = modulename in pyd_modules; 
    5151    if (m is null) return null; 
     
    8585 *It's greater than 10!) 
    8686 */ 
    87 void def(alias fn, char[] name = symbolnameof!(fn), fn_t=typeof(&fn), uint MIN_ARGS = minArgs!(fn, fn_t)) (char[] docstring="") { 
     87void def(alias fn, string name = symbolnameof!(fn), fn_t=typeof(&fn), uint MIN_ARGS = minArgs!(fn, fn_t)) (string docstring="") { 
    8888    def!("", fn, name, fn_t, MIN_ARGS)(docstring); 
    8989} 
    9090 
    91 void def(char[] modulename, alias fn, char[] name = symbolnameof!(fn), fn_t=typeof(&fn), uint MIN_ARGS = minArgs!(fn, fn_t)) (char[] docstring) { 
     91void def(string modulename, alias fn, string name = symbolnameof!(fn), fn_t=typeof(&fn), uint MIN_ARGS = minArgs!(fn, fn_t)) (string docstring) { 
    9292    pragma(msg, "def: " ~ name); 
    9393    PyMethodDef empty; 
     
    102102} 
    103103 
    104 char[] pyd_module_name; 
     104string pyd_module_name; 
    105105 
    106106/** 
    107107 * Module initialization function. Should be called after the last call to def. 
    108108 */ 
    109 PyObject* module_init(char[] docstring="") { 
     109PyObject* module_init(string docstring="") { 
    110110    //_loadPythonSupport(); 
    111     char[] name = pyd_module_name; 
     111    string name = pyd_module_name; 
    112112    ready_module_methods(""); 
    113113    pyd_modules[""] = Py_InitModule3((name ~ \0).ptr, module_methods[""].ptr, (docstring ~ \0).ptr); 
     
    118118 * Module initialization function. Should be called after the last call to def. 
    119119 */ 
    120 PyObject* add_module(char[] name, char[] docstring="") { 
     120PyObject* add_module(string name, string docstring="") { 
    121121    ready_module_methods(name); 
    122122    pyd_modules[name] = Py_InitModule3((name ~ \0).ptr, module_methods[name].ptr, (docstring ~ \0).ptr);