Ninja
Macros | Functions
util.h File Reference
#include <stdint.h>
#include <string>
#include <vector>
Include dependency graph for util.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define NORETURN   __attribute__((noreturn))
 

Functions

bool CanonicalizePath (string *path, string *err)
 Canonicalize a path like "foo/../bar.h" into just "bar.h". More...
 
bool CanonicalizePath (char *path, size_t *len, string *err)
 
string ElideMiddle (const string &str, size_t width)
 Elide the given string str with '...' in the middle if the length exceeds width. More...
 
void Error (const char *msg,...)
 Log an error message. More...
 
NORETURN void Fatal (const char *msg,...)
 Log a fatal message and exit. More...
 
double GetLoadAverage ()
 
int GetProcessorCount ()
 
int ReadFile (const string &path, string *contents, string *err)
 Read a file to a string (in text mode: with CRLF conversion on Windows). More...
 
void SetCloseOnExec (int fd)
 Mark a file descriptor to not be inherited on exec()s. More...
 
const char * SpellcheckString (const char *text,...)
 Like SpellcheckStringV, but takes a NULL-terminated list. More...
 
const char * SpellcheckStringV (const string &text, const vector< const char * > &words)
 Given a misspelled string and a list of correct spellings, returns the closest match or NULL if there is no close enough match. More...
 
string StripAnsiEscapeCodes (const string &in)
 Removes all Ansi escape codes (http://www.termsys.demon.co.uk/vtansi.htm). More...
 
bool Truncate (const string &path, size_t size, string *err)
 Truncates a file to the given size. More...
 
void Warning (const char *msg,...)
 Log a warning message. More...
 

Macro Definition Documentation

#define NORETURN   __attribute__((noreturn))

Definition at line 31 of file util.h.

Function Documentation

bool CanonicalizePath ( string *  path,
string *  err 
)

Canonicalize a path like "foo/../bar.h" into just "bar.h".

Definition at line 87 of file util.cc.

References CanonicalizePath(), and METRIC_RECORD.

Referenced by CanonicalizePath(), Builder::ExtractDeps(), ImplicitDepLoader::LoadDepFile(), main(), IncludesNormalize::Normalize(), ManifestParser::ParseDefault(), ManifestParser::ParseEdge(), and TEST().

bool CanonicalizePath ( char *  path,
size_t *  len,
string *  err 
)

Definition at line 99 of file util.cc.

References Fatal(), and METRIC_RECORD.

string ElideMiddle ( const string &  str,
size_t  width 
)

Elide the given string str with '...' in the middle if the length exceeds width.

Definition at line 351 of file util.cc.

Referenced by LinePrinter::Print(), and TEST().

void Error ( const char *  msg,
  ... 
)
NORETURN void Fatal ( const char *  msg,
  ... 
)
double GetLoadAverage ( )
Returns
the load average of the machine. A negative value is returned on error.

Definition at line 340 of file util.cc.

Referenced by RealCommandRunner::CanRunMore().

int GetProcessorCount ( )
Returns
the number of processors on the machine. Useful for an initial guess for how many jobs to run in parallel.
0 on error.

Definition at line 328 of file util.cc.

int ReadFile ( const string &  path,
string *  contents,
string *  err 
)

Read a file to a string (in text mode: with CRLF conversion on Windows).

Returns -errno and fills in err on error.

Definition at line 178 of file util.cc.

Referenced by main(), MSVCHelperMain(), and CLWrapper::Run().

void SetCloseOnExec ( int  fd)

Mark a file descriptor to not be inherited on exec()s.

Definition at line 200 of file util.cc.

Referenced by BuildLog::OpenForWrite(), DepsLog::OpenForWrite(), and Subprocess::Start().

const char* SpellcheckString ( const char *  text,
  ... 
)

Like SpellcheckStringV, but takes a NULL-terminated list.

Definition at line 237 of file util.cc.

References SpellcheckStringV().

const char* SpellcheckStringV ( const string &  text,
const vector< const char * > &  words 
)

Given a misspelled string and a list of correct spellings, returns the closest match or NULL if there is no close enough match.

Definition at line 218 of file util.cc.

References EditDistance().

Referenced by SpellcheckString().

string StripAnsiEscapeCodes ( const string &  in)

Removes all Ansi escape codes (http://www.termsys.demon.co.uk/vtansi.htm).

Definition at line 280 of file util.cc.

References islatinalpha().

Referenced by BuildStatus::BuildEdgeFinished(), and TEST().

bool Truncate ( const string &  path,
size_t  size,
string *  err 
)

Truncates a file to the given size.

Definition at line 363 of file util.cc.

Referenced by DepsLog::Load().

void Warning ( const char *  msg,
  ... 
)

Log a warning message.

Definition at line 69 of file util.cc.

Referenced by State::AddOut(), CheckNinjaVersion(), CreateWin32MiniDump(), and IncludesNormalize::Normalize().