Report a bug
If you spot a problem with this page, click here to create a Bugzilla issue.
Improve this page
Quickly fork, edit online, and submit a pull request for this page.
Requires a signed-in GitHub account. This works well for small changes.
If you'd like to make larger changes you may want to consider using
a local clone.
dmd.utils
This module defines some utility functions for DMD.
Authors:
License:
Source utils.d
Documentation https://dlang.org/phobos/dmd_utils.html
- nothrow const(char)*
toWinPath
(const(char)*src
); - Normalize path by turning forward slashes into backslashesParameters:
const(char)* src
Source path, using unix-style ('/') path separators Returns:A newly-allocated string with '/' turned into backslashes - nothrow bool
readFile
(Locloc
, const(char)[]filename
, ref OutBufferbuf
); - Reads a file, terminate the program on errorParameters:
Loc loc
The line number information from where the call originates const(char)[] filename
Path to file OutBuffer buf
append contents of file to Returns:true on failure - nothrow bool
writeFile
(Locloc
, const(char)[]filename
, const void[]data
); - Writes a file, terminate the program on errorParameters:
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 Returns:false on error - nothrow bool
ensurePathToNameExists
(Locloc
, 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) Returns:false on error - nothrow void
escapePath
(OutBuffer*buf
, const(char)*fname
); - Takes a path, and escapes '(', ')' and backslashesParameters:
OutBuffer* buf
Buffer to write the escaped path to const(char)* fname
Path to escape - nothrow void
writeEscapedMakePath
(ref OutBufferbuf
, const(char)*fname
); - Takes a path, and make it compatible with GNU Makefile format.GNU make uses a weird quoting scheme for white space. A space or tab preceded by 2N+1 backslashes represents N backslashes followed by space; a space or tab preceded by 2N backslashes represents N backslashes at the end of a file name; and backslashes in other contexts should not be doubled.Parameters:
OutBuffer buf
Buffer to write the escaped path to const(char)* fname
Path to escape Examples:version (Windows) { enum input = `C:\My Project\file#4$.ext`; enum expected = `C:\My\ Project\file\#4$$.ext`; } else { enum input = `/foo\bar/weird$.:name#\ with spaces.ext`; enum expected = `/foo\bar/weird$$.\:name\#\\\ with\ spaces.ext`; } OutBuffer buf; buf.writeEscapedMakePath(input); assert(buf[] == expected);
- pure nothrow @nogc @safe bool
parseDigits
(T)(ref Tval
, const(char)[]p
, const Tmax
= T.max
); - Convert string to integer.Parameters:
T Type of integer to parse T val
Variable to store the result in const(char)[] p
slice to start of string digits T max
max allowable value (inclusive), defaults to T. max
Returns:false on error, true on successExamples:byte b; ubyte ub; short s; ushort us; int i; uint ui; long l; ulong ul; assert(b.parseDigits("42") && b == 42); assert(ub.parseDigits("42") && ub == 42); assert(s.parseDigits("420") && s == 420); assert(us.parseDigits("42000") && us == 42_000); assert(i.parseDigits("420000") && i == 420_000); assert(ui.parseDigits("420000") && ui == 420_000); assert(l.parseDigits("42000000000") && l == 42_000_000_000); assert(ul.parseDigits("82000000000") && ul == 82_000_000_000); assert(!b.parseDigits(ubyte.max.stringof)); assert(!b.parseDigits("WYSIWYG")); assert(!b.parseDigits("-42")); assert(!b.parseDigits("200")); assert(ub.parseDigits("200") && ub == 200); assert(i.parseDigits(int.max.stringof) && i == int.max); assert(i.parseDigits("420", 500) && i == 420); assert(!i.parseDigits("420", 400));
- nothrow ubyte[]
arrayCastBigEndian
(const ubyte[]data
, size_tsize
); - Cast a ubyte[] to an array of larger integers as if we are on a big endian architectureParameters:
ubyte[] data
array with big endian data size_t size
1 for ubyte[], 2 for ushort[], 4 for uint[], 8 for ulong[] Returns:copy ofdata
, with bytes shuffled if compiled for version(LittleEndian)
Copyright © 1999-2024 by the D Language Foundation | Page generated by
Ddoc on Wed Dec 18 08:51:53 2024