Mercurial > projects > ldc
view gen/logger.cpp @ 304:3ebc136702dd trunk
[svn r325] Removed dead code.
Added license info to code from GDC (David Friedman permitted us to use the files under the Artistic License).
Added asmLabel check to DtoGoto to avoid jumping into inline asm. Doesn't work currently as LabelDsymbol::asmLabel is never set to true.
author | ChristianK |
---|---|
date | Wed, 25 Jun 2008 23:42:38 +0200 |
parents | b604c56945b0 |
children | 661384d6a936 |
line wrap: on
line source
#include <cassert> #include <cstdarg> #include <cstdio> #include <cstdlib> #include <iostream> #include <fstream> #include <string> #include "mars.h" #include "gen/logger.h" namespace Logger { static std::string indent_str; static std::ofstream null_out("/dev/null"); static bool _enabled = false; void indent() { if (_enabled) { indent_str += "* "; } } void undent() { if (_enabled) { assert(!indent_str.empty()); indent_str.resize(indent_str.size()-2); } } std::ostream& cout() { if (_enabled) return std::cout << indent_str; else return null_out; } void println(const char* fmt,...) { if (_enabled) { printf(indent_str.c_str()); va_list va; va_start(va,fmt); vprintf(fmt,va); va_end(va); printf("\n"); } } void print(const char* fmt,...) { if (_enabled) { printf(indent_str.c_str()); va_list va; va_start(va,fmt); vprintf(fmt,va); va_end(va); } } void enable() { _enabled = true; } void disable() { _enabled = false; } bool enabled() { return _enabled; } void attention(const Loc& loc, const char* fmt,...) { printf("Warning: %s: ", loc.toChars()); va_list va; va_start(va,fmt); vprintf(fmt,va); va_end(va); printf("\n"); } }