Mercurial > hg > forks > gldragon
view dmutil.h @ 77:cc1c35357e39
Build system cleanups.
author | Matti Hamalainen <ccr@tnsp.org> |
---|---|
date | Tue, 14 Jan 2020 03:03:01 +0200 |
parents | 9ee0edff3940 |
children |
line wrap: on
line source
// // GLDragon - OpenGL PLY model viewer / simple benchmark // -- Miscellaneous utility functions // Programmed and designed by Matti 'ccr' Hämäläinen <ccr@tnsp.org> // (C) Copyright 2019-2020 Tecnic Software productions (TNSP) // // See file "COPYING" for license information. // #ifndef DMUTIL_H #define DMUTIL_H 1 #include <string> #include <vector> #include <cstdio> #include <iostream> #include <cstdarg> #include <fstream> #define DMUTIL_WHITESPACE "\t\n\v\f\r " /* Functions */ void dmMsg_V(const char *fmt, va_list ap); void dmMsg(const char *fmt, ...); void dmError_V(const char *fmt, va_list ap); void dmError(const char *fmt, ...); std::string dmStrLTrim(const std::string& str, const std::string& delim = DMUTIL_WHITESPACE); std::string dmStrRTrim(const std::string& str, const std::string& delim = DMUTIL_WHITESPACE); std::string dmStrTrim(const std::string& str, const std::string& delim = DMUTIL_WHITESPACE); std::vector<std::string> dmStrSplit(const std::string& str, const std::string& delim = DMUTIL_WHITESPACE); std::string dmStrJoin(const std::vector<std::string> &list, const std::string &delim); std::string dmGetPath(const std::string &path); bool dmReadText(const std::string &filename, std::string &buf, const int maxSize); bool dmFileExists(const std::string &filename, std::ios_base::openmode mode = std::ios_base::in); /* Structures and classes */ struct DMTextFileInfo { int nline, state; std::string filename; std::string line; std::ifstream file; std::string *key; virtual bool syntaxError(const std::string &msg) { dmError("Syntax error on line #%d: %s\n", nline, msg.c_str()); return false; } virtual bool textError(const std::string &msg) { dmError("%s on line #%d: %s\n", msg.c_str(), nline, line.c_str()); return false; } virtual bool readLine(void) { if (!std::getline(file, line)) return false; nline++; line = dmStrTrim(line); return true; } }; #endif