Menu

- Learn
- Documentation
  - Language Reference
  - Library Reference
  - Command-line Reference
  - Feature Overview
  - Articles
- Downloads
- Packages
- Community
  - Blog
  - Orgs using D
  - Twitter
  - Calendar
  - Forums
  - IRC
  - Wiki
  - GitHub
  - Issues
  - Get involved
  - Contributors
  - Foundation
  - Security Team
  - Donate
  - Sponsors
- Resources
  - Tour
  - Books
  - Tutorials
  - Tools
  - Editors
  - IDEs
  - run.dlang.io
  - Visual D
  - Acknowledgments
  - D Style
  - Glossary
  - Sitemap

Search
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

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
void `readFile`(Loc `loc`, File* `f`);
  Reads a file, terminate the program on error
  Parameters:

  Loc `loc` | The line number information from where the call originates
  File* `f` | a dmd.root.file.File handle to read

void `writeFile`(Loc `loc`, File* `f`);
  Writes a file, terminate the program on error
  Parameters:

  Loc `loc` | The line number information from where the call originates
  File* `f` | a dmd.root.file.File handle to write

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

Copyright © 1999-2019 by the D Language Foundation | Page generated by Ddoc on Sat Mar 2 03:28:21 2019