D bindings for Shapefile C Library

Gary Willoughby dev at nomad.so
Wed Jan 29 06:34:55 PST 2014


A few things i tend to do when porting headers:

1). 
https://github.com/craig-dillabaugh/shplib.d/blob/master/source/shapefil.d#L267

'const char *filename' should usually be translated to 
'const(char)* filename',
'const double * padfX' => 'const(double)* padfX'
etc..

Reference:
http://forum.dlang.org/thread/qvjjzoxoufxnxzokywgq@forum.dlang.org

2). 
https://github.com/craig-dillabaugh/shplib.d/blob/master/source/shapefil.d#L275

Underscores on identifiers that match keywords are usually added 
to the end.

Reference:
http://dlang.org/dstyle.html

3). 
https://github.com/craig-dillabaugh/shplib.d/blob/master/source/shapefil.d#L263
longs/ulongs tend to be substituted for c_long/c_ulong from 
core.stdc.config.

Reference:
http://dlang.org/interfaceToC.html

4). 
https://github.com/craig-dillabaugh/shplib.d/blob/master/source/shapefil.d#L721
I tend to add const to all char* types as above.

In general, add 'nothrow' to all functions and move the '*' to be 
part of the type. e.g.:
'const(char)* text' instead of 'const(char) *text', this is my 
own personal preference though. :p


More information about the Digitalmars-d-announce mailing list