Mercurial > projects > ldc
annotate tools/binding/llvm/util.d @ 1642:f49cb50c6064
Revert 1637 because it breaks HelloWorld with Tangos Stdout. There may be another way to fix this so that Deewiants case works, as well as Tango.
author | Kelly Wilson <wilsonk cpsc.ucalgary.ca> |
---|---|
date | Mon, 08 Mar 2010 23:10:26 -0700 |
parents | 1ba61de8796b |
children |
rev | line source |
---|---|
1273
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
1 // Written in the D programming language by Tomas Lindquist Olsen 2008 |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
2 // Binding of llvm.c.Core values for D. |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
3 // |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
4 // This file is distributed under the University of Illinois Open Source |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
5 // License. See LICENSE.TXT for details. |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
6 // |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
7 module llvm.util; |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
8 |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
9 //we need <cstring> |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
10 version(Tango) { |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
11 import tango.stdc.string; |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
12 } |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
13 else { |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
14 import std.c.string; |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
15 } |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
16 |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
17 /// |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
18 char[] from_stringz(char* p) |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
19 { |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
20 if (p is null) |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
21 return ""; |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
22 return p[0..strlen(p)]; |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
23 } |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
24 |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
25 /// |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
26 char* to_stringz(char[] s) |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
27 { |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
28 return (s~\0).ptr; |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
29 } |
1ba61de8796b
Committing LLVM binding for D as it currently exists in the SVN repository.
Frits van Bommel <fvbommel wxs.nl>
parents:
diff
changeset
|
30 |