Ninja
util.cc File Reference
#include "util.h"
#include <assert.h>
#include <errno.h>
#include <fcntl.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/stat.h>
#include <sys/types.h>
#include <unistd.h>
#include <sys/time.h>
#include <algorithm>
#include <vector>
#include "edit_distance.h"
Include dependency graph for util.cc:

Go to the source code of this file.

Functions

void CanonicalizePath (char *path, size_t *len, uint64_t *slash_bits)
 
void CanonicalizePath (string *path, uint64_t *slash_bits)
 
void Error (const char *msg, va_list ap)
 
void Error (const char *msg,...)
 Log an error message.
 
void Fatal (const char *msg,...)
 Log a fatal message and exit.
 
double GetLoadAverage ()
 
int GetProcessorCount ()
 
void GetShellEscapedString (const string &input, string *result)
 
void GetWin32EscapedString (const string &input, string *result)
 
std::string GetWorkingDirectory ()
 a wrapper for getcwd()
 
void Info (const char *msg, va_list ap)
 
void Info (const char *msg,...)
 Log an informational message.
 
static bool IsKnownShellSafeCharacter (char ch)
 
static bool IsKnownWin32SafeCharacter (char ch)
 
bool islatinalpha (int c)
 
static bool IsPathSeparator (char c)
 
int platformAwareUnlink (const char *filename)
 
int ReadFile (const string &path, string *contents, string *err)
 
void SetCloseOnExec (int fd)
 Mark a file descriptor to not be inherited on exec()s.
 
const char * SpellcheckString (const char *text,...)
 Like SpellcheckStringV, but takes a NULL-terminated list.
 
const char * SpellcheckStringV (const string &text, const vector< const char * > &words)
 
static bool StringNeedsShellEscaping (const string &input)
 
static bool StringNeedsWin32Escaping (const string &input)
 
string StripAnsiEscapeCodes (const string &in)
 
bool Truncate (const string &path, size_t size, string *err)
 
void Warning (const char *msg, va_list ap)
 
void Warning (const char *msg,...)
 Log a warning message.
 

Function Documentation

◆ CanonicalizePath() [1/2]

void CanonicalizePath ( char * path,
size_t * len,
uint64_t * slash_bits )

Definition at line 141 of file util.cc.

References IsPathSeparator(), and NINJA_FALLTHROUGH.

◆ CanonicalizePath() [2/2]

◆ Error() [1/2]

◆ Error() [2/2]

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

Log an error message.

Definition at line 104 of file util.cc.

References Error().

◆ Fatal()

◆ GetLoadAverage()

double GetLoadAverage ( )
Returns
the load average of the machine. A negative value is returned on error.

Definition at line 981 of file util.cc.

Referenced by RealCommandRunner::CanRunMore().

◆ GetProcessorCount()

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 814 of file util.cc.

◆ GetShellEscapedString()

void GetShellEscapedString ( const string & input,
string * result )

◆ GetWin32EscapedString()

void GetWin32EscapedString ( const string & input,
string * result )

◆ GetWorkingDirectory()

std::string GetWorkingDirectory ( )

a wrapper for getcwd()

Definition at line 992 of file util.cc.

References Fatal().

◆ Info() [1/2]

void Info ( const char * msg,
va_list ap )

Definition at line 111 of file util.cc.

Referenced by Info().

◆ Info() [2/2]

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

Log an informational message.

Definition at line 117 of file util.cc.

References Info().

◆ IsKnownShellSafeCharacter()

static bool IsKnownShellSafeCharacter ( char ch)
inlinestatic

Definition at line 312 of file util.cc.

Referenced by StringNeedsShellEscaping().

◆ IsKnownWin32SafeCharacter()

static bool IsKnownWin32SafeCharacter ( char ch)
inlinestatic

Definition at line 329 of file util.cc.

Referenced by StringNeedsWin32Escaping().

◆ islatinalpha()

bool islatinalpha ( int c)

Definition at line 566 of file util.cc.

Referenced by StripAnsiEscapeCodes().

◆ IsPathSeparator()

static bool IsPathSeparator ( char c)
static

Definition at line 133 of file util.cc.

Referenced by CanonicalizePath().

◆ platformAwareUnlink()

int platformAwareUnlink ( const char * filename)

◆ ReadFile()

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

Definition at line 415 of file util.cc.

References ReadFile().

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

◆ SetCloseOnExec()

void SetCloseOnExec ( int fd)

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

Definition at line 480 of file util.cc.

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

◆ SpellcheckString()

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

Like SpellcheckStringV, but takes a NULL-terminated list.

Definition at line 517 of file util.cc.

References SpellcheckStringV().

◆ SpellcheckStringV()

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

Definition at line 498 of file util.cc.

References EditDistance().

Referenced by SpellcheckString().

◆ StringNeedsShellEscaping()

static bool StringNeedsShellEscaping ( const string & input)
inlinestatic

Definition at line 339 of file util.cc.

References IsKnownShellSafeCharacter().

Referenced by GetShellEscapedString().

◆ StringNeedsWin32Escaping()

static bool StringNeedsWin32Escaping ( const string & input)
inlinestatic

Definition at line 346 of file util.cc.

References IsKnownWin32SafeCharacter().

Referenced by GetWin32EscapedString().

◆ StripAnsiEscapeCodes()

string StripAnsiEscapeCodes ( const string & in)

Definition at line 571 of file util.cc.

References islatinalpha().

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

◆ Truncate()

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

Definition at line 1007 of file util.cc.

Referenced by DepsLog::Load().

◆ Warning() [1/2]

void Warning ( const char * msg,
va_list ap )

Definition at line 85 of file util.cc.

Referenced by GraphViz::AddTarget(), CheckNinjaVersion(), ManifestParser::ParseEdge(), and Warning().

◆ Warning() [2/2]

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

Log a warning message.

Definition at line 91 of file util.cc.

References Warning().