W3cubDocs

/D

dmd.utils

Compiler implementation of the D programming language. Utility functions for DMD.

This modules defines some utility functions for DMD.

Authors:
Walter Bright
License:
Boost License 1.0
Source
utils.d
Documentation
https://dlang.org/phobos/dmd_utils.html
Coverage
https://codecov.io/gh/dlang/dmd/src/master/src/dmd/utils.d
const(char)* toWinPath(const(char)* src);

Normalize path by turning forward slashes into backslashes

Parameters:
const(char)* src Source path, using unix-style ('/') path separators
Returns:
A newly-allocated string with '/' turned into backslashes
FileBuffer readFile(Loc loc, const(char)* filename);

Reads a file, terminate the program on error

Parameters:
Loc loc The line number information from where the call originates
const(char)* filename Path to file
void writeFile(Loc loc, const(char)[] filename, const void[] data);

Writes a file, terminate the program on error

Parameters:
Loc loc The line number information from where the call originates
const(char)[] filename Path to file
void[] data Full content of the file to be written
void ensurePathToNameExists(Loc loc, const(char)[] name);

Ensure the root path (the path minus the name) of the provided path exists, and terminate the process if it doesn't.

Parameters:
Loc loc The line number information from where the call originates
const(char)[] name a path to check (the name is stripped)
void escapePath(OutBuffer* buf, const(char)* fname);

Takes a path, and escapes '(', ')' and backslashes

Parameters:
OutBuffer* buf Buffer to write the escaped path to
const(char)* fname Path to escape
pure nothrow @nogc inout(char)[] toDString(inout(char)* s);

Slices a \0-terminated C-string, excluding the terminator

static bool iequals(const(char)[] s1, const(char)[] s2);

Compare two slices for equality, in a case-insensitive way

Comparison is based on char and does not do decoding. As a result, it's only really accurate for plain ASCII strings.

Parameters:
const(char)[] s1 string to compare
const(char)[] s2 string to compare
Returns:
true if s1 == s2 regardless of case
nothrow auto toCStringThen(alias dg)(const(char)[] src);

Copy the content of src into a C-string ('\0' terminated) then call dg

The intent of this function is to provide an allocation-less way to call a C function using a D slice. The function internally allocates a buffer if needed, but frees it on exit.

Note
The argument to dg is scope. To keep the data around after dg exits, one has to copy it.
Parameters:
const(char)[] src Slice to use to call the C function
dg Delegate to call afterwards
Returns:
The return value of T

© 1999–2019 The D Language Foundation
Licensed under the Boost License 1.0.
https://dlang.org/phobos/dmd_utils.html