- Timestamp:
- 04/11/21 02:08:46 (4 years ago)
- Location:
- cpp/common
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
cpp/common/util-file.cpp
r888 r1124 1 1 // This file is a part of Framsticks SDK. http://www.framsticks.com/ 2 // Copyright (C) 1999-20 15Maciej Komosinski and Szymon Ulatowski.2 // Copyright (C) 1999-2021 Maciej Komosinski and Szymon Ulatowski. 3 3 // See LICENSE.txt for details. 4 4 … … 87 87 return writeCompleteFile(filename, s, warn_on_fail); 88 88 } 89 90 // Just like fgets(), but string length is unlimited and does not store trailing \r \n 91 string readUntilEOL(VirtFILE *f) 92 { 93 char buf[100]; 94 char* line; 95 std::string ret; 96 bool endofline; 97 while ((line = f->Vgets(buf, sizeof(buf)))) 98 { 99 char* end = line + strlen(line); 100 endofline = false; 101 while (end > line) 102 if ((end[-1] == '\n') || (end[-1] == '\r')) 103 { 104 endofline = true; 105 end--; 106 } 107 else 108 break; 109 ret += std::string(line, end - line); 110 if (endofline) break; 111 } 112 return ret; 113 } -
cpp/common/util-file.h
r840 r1124 1 1 // This file is a part of Framsticks SDK. http://www.framsticks.com/ 2 // Copyright (C) 1999-20 15Maciej Komosinski and Szymon Ulatowski.2 // Copyright (C) 1999-2021 Maciej Komosinski and Szymon Ulatowski. 3 3 // See LICENSE.txt for details. 4 4 … … 7 7 8 8 #include "nonstd_stl.h" 9 #include "virtfile/virtfile.h" 9 10 10 11 bool readCompleteFile(const char* filename, vector<char>& data, bool warn_on_missing_file = true); … … 12 13 bool writeCompleteFile(const char* filename, const std::string& text, bool warn_on_fail = true); 13 14 bool writeCompleteFile(const char* filename, vector<char>& data, bool warn_on_fail = true); 15 string readUntilEOL(VirtFILE *f); 14 16 15 17 #endif -
cpp/common/util-stl.h
r888 r1124 1 1 // This file is a part of Framsticks SDK. http://www.framsticks.com/ 2 // Copyright (C) 1999-20 15Maciej Komosinski and Szymon Ulatowski.2 // Copyright (C) 1999-2021 Maciej Komosinski and Szymon Ulatowski. 3 3 // See LICENSE.txt for details. 4 4 … … 7 7 8 8 #include "nonstd_stl.h" 9 #include <map> 9 10 10 11 template<typename T, std::size_t N> void push_back(vector<T>& v, T(&d)[N]) … … 36 37 } 37 38 39 template<typename Key,typename Value> Value mapValueOrDefault(const std::map<Key,Value> &map, const Key& key, const Value& default_value) 40 { 41 auto found = map.find(key); 42 if (found != map.end()) 43 return found->second; 44 else 45 return default_value; 46 } 47 38 48 template<class T> class DeletingVector // deletes the elements (pointers) in destructor 39 49 {
Note: See TracChangeset
for help on using the changeset viewer.