Compare commits
10 Commits
d1e5e41ab2
...
c40e288a67
Author | SHA1 | Date | |
---|---|---|---|
![]() |
c40e288a67 | ||
![]() |
5fd02a7a44 | ||
![]() |
cfd996fe5a | ||
![]() |
0ebe8eaf5b | ||
![]() |
e5bfd7a840 | ||
![]() |
921854e455 | ||
![]() |
f8557aa5f5 | ||
![]() |
10df4a6a99 | ||
![]() |
7eb2417456 | ||
![]() |
d74fa9689d |
2
File.cpp
2
File.cpp
@ -34,7 +34,7 @@ namespace coreutils {
|
|||||||
|
|
||||||
File::~File() {
|
File::~File() {
|
||||||
close(fd);
|
close(fd);
|
||||||
setBufferSize(0);
|
free(buffer);
|
||||||
}
|
}
|
||||||
|
|
||||||
void File::setBufferSize(size_t size) {
|
void File::setBufferSize(size_t size) {
|
||||||
|
2
File.h
2
File.h
@ -17,7 +17,7 @@ namespace coreutils {
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
File(ZString fileName, int mode = O_RDONLY, int authority = 0664);
|
File(ZString fileName, int mode = O_RDONLY, int authority = 0664);
|
||||||
~File();
|
virtual ~File();
|
||||||
void setBufferSize(size_t size);
|
void setBufferSize(size_t size);
|
||||||
int read();
|
int read();
|
||||||
int readLine();
|
int readLine();
|
||||||
|
@ -19,12 +19,12 @@ namespace coreutils {
|
|||||||
JSONFile(ZString path): JString(), File(path, O_RDWR, 0644) {
|
JSONFile(ZString path): JString(), File(path, O_RDWR, 0644) {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
virtual ~JSONFile() {
|
virtual ~JSONFile() {
|
||||||
write(*this);
|
write(*this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void changed(ZString key, ZString value) overide;
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
51
JString.cpp
51
JString.cpp
@ -169,5 +169,54 @@ namespace coreutils {
|
|||||||
}
|
}
|
||||||
reset();
|
reset();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MString JString::pretty() {
|
||||||
|
MString output;
|
||||||
|
reset();
|
||||||
|
char ch;
|
||||||
|
int index = 0;
|
||||||
|
while(!eod()) {
|
||||||
|
ch = nextChar();
|
||||||
|
if(ch == '{') {
|
||||||
|
index += 3;
|
||||||
|
output << ch << '\n';
|
||||||
|
for(int ix = 0; ix < index; ++ix)
|
||||||
|
output << ' ';
|
||||||
|
}
|
||||||
|
else if(ch == '[') {
|
||||||
|
index += 3;
|
||||||
|
output << ch << '\n';
|
||||||
|
for(int ix = 0; ix < index; ++ix)
|
||||||
|
output << ' ';
|
||||||
|
}
|
||||||
|
else if(ch == ':') {
|
||||||
|
output << ": ";
|
||||||
|
}
|
||||||
|
else if(ch == '}') {
|
||||||
|
index -= 3;
|
||||||
|
output << '\n';
|
||||||
|
for(int ix = 0; ix < index; ++ix)
|
||||||
|
output << ' ';
|
||||||
|
output << ch;
|
||||||
|
}
|
||||||
|
else if(ch == ']') {
|
||||||
|
index -= 3;
|
||||||
|
output << '\n';
|
||||||
|
for(int ix = 0; ix < index; ++ix)
|
||||||
|
output << ' ';
|
||||||
|
output << ch;
|
||||||
|
}
|
||||||
|
else if(ch == ',') {
|
||||||
|
output << ch << '\n';
|
||||||
|
for(int ix = 0; ix < index; ++ix)
|
||||||
|
output << ' ';
|
||||||
|
}
|
||||||
|
else
|
||||||
|
output << ch;
|
||||||
|
}
|
||||||
|
return output;
|
||||||
|
}
|
||||||
|
|
||||||
|
void JString::changed(ZString key, ZString value) {}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -67,8 +67,9 @@ namespace coreutils {
|
|||||||
return jstring.find(key).str();
|
return jstring.find(key).str();
|
||||||
}
|
}
|
||||||
|
|
||||||
Proxy& operator=(coreutils::ZString value) {
|
Proxy& operator=(coreutils::MString value) {
|
||||||
jstring.set(key, value);
|
jstring.set(key, value);
|
||||||
|
jstring.changed(key, value);
|
||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -82,6 +83,10 @@ namespace coreutils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
JString & operator=(coreutils:: ZString value);
|
JString & operator=(coreutils:: ZString value);
|
||||||
|
|
||||||
|
MString pretty();
|
||||||
|
|
||||||
|
virtual void changed(ZString key, ZString value);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
void removeWhitespace();
|
void removeWhitespace();
|
||||||
|
138
MString.cpp
138
MString.cpp
@ -1,6 +1,7 @@
|
|||||||
#include "MString.h"
|
#include "MString.h"
|
||||||
#include "Log.h"
|
#include "Log.h"
|
||||||
#include "uuid/uuid.h"
|
#include "uuid/uuid.h"
|
||||||
|
#include "Exception.h"
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
#include <string>
|
#include <string>
|
||||||
#include <format>
|
#include <format>
|
||||||
@ -186,13 +187,11 @@ namespace coreutils {
|
|||||||
return *this;
|
return *this;
|
||||||
}
|
}
|
||||||
|
|
||||||
// MString &MString::operator<<(std::string value) {
|
MString &MString::operator<<(char value) {
|
||||||
// int temp = length;
|
setSize(length + 1);
|
||||||
// int len = length + value.length();
|
data[length - 1] = value;
|
||||||
// setSize(len);
|
return *this;
|
||||||
// memcpy(data + temp, value.c_str(), value.length());
|
}
|
||||||
// return *this;
|
|
||||||
// }
|
|
||||||
|
|
||||||
// MString &MString::operator<<(std::ostream (*f)(std::ostream&)) {
|
// MString &MString::operator<<(std::ostream (*f)(std::ostream&)) {
|
||||||
MString &MString::operator<<(std::basic_ostream<char> (*pf)(std::basic_ostream<char>&)) {
|
MString &MString::operator<<(std::basic_ostream<char> (*pf)(std::basic_ostream<char>&)) {
|
||||||
@ -281,5 +280,130 @@ namespace coreutils {
|
|||||||
int MString::offset() {
|
int MString::offset() {
|
||||||
return cursor - data;
|
return cursor - data;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
MString MString::toBinary() {
|
||||||
|
push();
|
||||||
|
reset();
|
||||||
|
MString target;
|
||||||
|
char temp;
|
||||||
|
while(!eod()) {
|
||||||
|
temp = nextChar();
|
||||||
|
if(strchr("\\'\".\0\r\n", temp))
|
||||||
|
target.write('\\');
|
||||||
|
target.write(temp);
|
||||||
|
}
|
||||||
|
pop();
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
MString MString::fromBinary() {
|
||||||
|
push();
|
||||||
|
reset();
|
||||||
|
MString target;
|
||||||
|
while(!eod()) {
|
||||||
|
if(ifNext("\\r"))
|
||||||
|
target.write(13);
|
||||||
|
else if(ifNext("\\n"))
|
||||||
|
target.write(10);
|
||||||
|
else if(ifNext("\\0"))
|
||||||
|
target.write(0);
|
||||||
|
else if(ifNext("\\\\"))
|
||||||
|
target.write("\\");
|
||||||
|
else if(ifNext("\\."))
|
||||||
|
target.write(".");
|
||||||
|
else if(ifNext("\\\""))
|
||||||
|
target.write("\"");
|
||||||
|
else if(ifNext("\\\'"))
|
||||||
|
target.write("'");
|
||||||
|
else
|
||||||
|
target.write(nextChar());
|
||||||
|
}
|
||||||
|
pop();
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
MString MString::toHex() {
|
||||||
|
push();
|
||||||
|
reset();
|
||||||
|
MString target;
|
||||||
|
char temp;
|
||||||
|
while(!eod()) {
|
||||||
|
temp = nextChar();
|
||||||
|
char temp2 = temp;
|
||||||
|
temp >>= 4;
|
||||||
|
target.write(hexChar(temp));
|
||||||
|
target.write(hexChar(temp2));
|
||||||
|
}
|
||||||
|
pop();
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
MString MString::fromHex() {
|
||||||
|
push();
|
||||||
|
reset();
|
||||||
|
MString target;
|
||||||
|
while(!eod()) {
|
||||||
|
char ch1 = nextChar();
|
||||||
|
ch1 -= 48;
|
||||||
|
if(ch1 > 9)
|
||||||
|
ch1 -= 7;
|
||||||
|
ch1 <<= 4;
|
||||||
|
ch1 &= 240;
|
||||||
|
if(eod())
|
||||||
|
coreutils::Exception("conversion from hex requires even number of characters.");
|
||||||
|
char ch2 = nextChar();
|
||||||
|
ch2 -= 48;
|
||||||
|
if(ch2 > 9)
|
||||||
|
ch2 -= 7;
|
||||||
|
ch2 &= 15;
|
||||||
|
ch1 |= ch2;
|
||||||
|
target.write(ch1);
|
||||||
|
}
|
||||||
|
pop();
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
MString MString::toBase64() {
|
||||||
|
MString target;
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MString MString::fromBase64() {
|
||||||
|
MString target;
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MString MString::toUpper() {
|
||||||
|
MString target;
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MString MString::toLower() {
|
||||||
|
MString target;
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MString MString::toCGI() {
|
||||||
|
MString target;
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
MString MString::fromCGI() {
|
||||||
|
MString target;
|
||||||
|
return target;
|
||||||
|
}
|
||||||
|
|
||||||
|
char MString::hexChar(char c) {
|
||||||
|
c &= 15;
|
||||||
|
c += 48;
|
||||||
|
if(c > 57)
|
||||||
|
c += 7;
|
||||||
|
return c;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
69
MString.h
69
MString.h
@ -157,7 +157,7 @@ namespace coreutils {
|
|||||||
///
|
///
|
||||||
///
|
///
|
||||||
|
|
||||||
// MString &operator<<(std::string value);
|
MString &operator<<(char value);
|
||||||
|
|
||||||
///
|
///
|
||||||
///
|
///
|
||||||
@ -231,14 +231,81 @@ namespace coreutils {
|
|||||||
///
|
///
|
||||||
|
|
||||||
MString &read(int fd);
|
MString &read(int fd);
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
int offset();
|
int offset();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
MString toBinary();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
MString fromBinary();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
MString toHex();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
MString fromHex();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
MString toBase64();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
MString fromBase64();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
MString toUpper();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
|
||||||
|
MString toLower();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
MString toCGI();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
|
MString fromCGI();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
void setSize(int size);
|
void setSize(int size);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int bufferSize = 0;
|
int bufferSize = 0;
|
||||||
|
char hexChar(char c);
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
}
|
}
|
||||||
|
51
ZString.cpp
51
ZString.cpp
@ -66,8 +66,8 @@ namespace coreutils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ZString::~ZString() {
|
ZString::~ZString() {
|
||||||
if(cdata != NULL)
|
if(cdata != NULL)
|
||||||
free(cdata);
|
free(cdata);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ZString::operator<(const ZString &valuex) const {
|
bool ZString::operator<(const ZString &valuex) const {
|
||||||
@ -110,9 +110,9 @@ namespace coreutils {
|
|||||||
return (strncmp(data, valuex.data, length) == 0);
|
return (strncmp(data, valuex.data, length) == 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
bool ZString::operator!=(const ZString &valuex) const {
|
bool ZString::operator!=(const ZString valuex) const {
|
||||||
// if(length != valuex.getLength())
|
if(length != valuex.getLength())
|
||||||
// return false;
|
return true;
|
||||||
return (strncmp(data, valuex.data, length) != 0);
|
return (strncmp(data, valuex.data, length) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -137,7 +137,7 @@ namespace coreutils {
|
|||||||
++cursor;
|
++cursor;
|
||||||
if(cursor == end)
|
if(cursor == end)
|
||||||
return 0;
|
return 0;
|
||||||
while((*cursor >- '0') && (*cursor <= '9')) {
|
while((*cursor >= '0') && (*cursor <= '9')) {
|
||||||
value *= 10;
|
value *= 10;
|
||||||
value += *cursor - 48;
|
value += *cursor - 48;
|
||||||
++cursor;
|
++cursor;
|
||||||
@ -232,7 +232,10 @@ namespace coreutils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
char* ZString::c_str() {
|
char* ZString::c_str() {
|
||||||
cdata = (char *)malloc(length + 1);
|
if(cdata == NULL)
|
||||||
|
cdata = (char *)malloc(length + 1);
|
||||||
|
else
|
||||||
|
cdata = (char *)realloc(cdata, length + 1);
|
||||||
strncpy(cdata, data, length);
|
strncpy(cdata, data, length);
|
||||||
cdata[length] = '\0';
|
cdata[length] = '\0';
|
||||||
return cdata;
|
return cdata;
|
||||||
@ -252,9 +255,8 @@ namespace coreutils {
|
|||||||
char *startChar = data + start;
|
char *startChar = data + start;
|
||||||
char *endChar = startChar + len;
|
char *endChar = startChar + len;
|
||||||
char newlen = endChar > end ? endChar - end: len;
|
char newlen = endChar > end ? endChar - end: len;
|
||||||
if(startChar < end) {
|
if(startChar < end)
|
||||||
return ZString(startChar, newlen);
|
return ZString(startChar, newlen);
|
||||||
}
|
|
||||||
return ZString();
|
return ZString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -360,6 +362,12 @@ namespace coreutils {
|
|||||||
return cursor >= data + length;
|
return cursor >= data + length;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ZString::goeod() {
|
||||||
|
char *temp = cursor;
|
||||||
|
cursor = data + length;
|
||||||
|
return cursor - temp;
|
||||||
|
}
|
||||||
|
|
||||||
bool ZString::startsWith(const char *value) {
|
bool ZString::startsWith(const char *value) {
|
||||||
return strncmp(cursor, value, strlen(value)) == 0;
|
return strncmp(cursor, value, strlen(value)) == 0;
|
||||||
}
|
}
|
||||||
@ -444,11 +452,28 @@ namespace coreutils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
int ZString::skipWhitespace() {
|
int ZString::skipWhitespace() {
|
||||||
int len = strspn(cursor, " \n\t");
|
char *end = data + length;
|
||||||
cursor += len;
|
int len = 0;
|
||||||
|
while((cursor < end) && ((*cursor == ' ') || (*cursor == '\n') || (*cursor == '\t'))) {
|
||||||
|
++cursor;
|
||||||
|
++len;
|
||||||
|
}
|
||||||
return len;
|
return len;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
int ZString::trimTrailingWhitespace() {
|
||||||
|
goeod();
|
||||||
|
int len = 0;
|
||||||
|
--cursor;
|
||||||
|
while((cursor > data) && ((*cursor == ' ') || (*cursor == '\n') || (*cursor == '\t'))) {
|
||||||
|
--cursor;
|
||||||
|
--length;
|
||||||
|
++len;
|
||||||
|
}
|
||||||
|
++cursor;
|
||||||
|
return len;
|
||||||
|
}
|
||||||
|
|
||||||
bool ZString::lineIsWhitespace() {
|
bool ZString::lineIsWhitespace() {
|
||||||
char *end = data + length;
|
char *end = data + length;
|
||||||
char *temp = cursor;
|
char *temp = cursor;
|
||||||
@ -490,6 +515,8 @@ namespace coreutils {
|
|||||||
}
|
}
|
||||||
|
|
||||||
ZString ZString::trim() {
|
ZString ZString::trim() {
|
||||||
|
trimTrailingWhitespace();
|
||||||
|
reset();
|
||||||
skipWhitespace();
|
skipWhitespace();
|
||||||
return unparsed();
|
return unparsed();
|
||||||
}
|
}
|
||||||
|
26
ZString.h
26
ZString.h
@ -84,7 +84,7 @@ namespace coreutils {
|
|||||||
/// Destructor for the ZString.
|
/// Destructor for the ZString.
|
||||||
///
|
///
|
||||||
|
|
||||||
~ZString();
|
virtual ~ZString();
|
||||||
|
|
||||||
///
|
///
|
||||||
/// A friend method used to write the value of the ZString
|
/// A friend method used to write the value of the ZString
|
||||||
@ -115,7 +115,7 @@ namespace coreutils {
|
|||||||
bool operator<=(const ZString &valuex) const;
|
bool operator<=(const ZString &valuex) const;
|
||||||
bool operator>=(const ZString &valuex) const;
|
bool operator>=(const ZString &valuex) const;
|
||||||
bool operator==(const ZString valuex);
|
bool operator==(const ZString valuex);
|
||||||
bool operator!=(const ZString &valuex) const;
|
bool operator!=(const ZString valuex) const;
|
||||||
bool operator!=(const char *valuex) const;
|
bool operator!=(const char *valuex) const;
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -248,6 +248,14 @@ namespace coreutils {
|
|||||||
///
|
///
|
||||||
|
|
||||||
bool eod();
|
bool eod();
|
||||||
|
|
||||||
|
///
|
||||||
|
/// Go to the end of data.
|
||||||
|
///
|
||||||
|
/// Return number of bytes the cursor was moved.
|
||||||
|
///
|
||||||
|
|
||||||
|
int goeod();
|
||||||
|
|
||||||
///
|
///
|
||||||
///
|
///
|
||||||
@ -312,7 +320,7 @@ namespace coreutils {
|
|||||||
|
|
||||||
///
|
///
|
||||||
/// Advance the cursor through the ZString for each whitespace character
|
/// Advance the cursor through the ZString for each whitespace character
|
||||||
/// encountered.
|
/// encountered.
|
||||||
///
|
///
|
||||||
|
|
||||||
int skipWhitespace();
|
int skipWhitespace();
|
||||||
@ -321,6 +329,12 @@ namespace coreutils {
|
|||||||
///
|
///
|
||||||
///
|
///
|
||||||
|
|
||||||
|
int trimTrailingWhitespace();
|
||||||
|
|
||||||
|
///
|
||||||
|
///
|
||||||
|
///
|
||||||
|
|
||||||
bool lineIsWhitespace();
|
bool lineIsWhitespace();
|
||||||
|
|
||||||
///
|
///
|
||||||
@ -454,9 +468,9 @@ namespace coreutils {
|
|||||||
void moveBackToLineStart();
|
void moveBackToLineStart();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
char *data;
|
char *data = NULL;
|
||||||
char *cursor;
|
char *cursor = NULL;
|
||||||
size_t length;
|
size_t length = 0;
|
||||||
char *cdata = NULL;
|
char *cdata = NULL;
|
||||||
std::vector<ZString> list;
|
std::vector<ZString> list;
|
||||||
|
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
#!/bin/bash
|
#!/bin/bash
|
||||||
#g++ -g -std=c++20 -o zstring_test zstring_test.cpp -I.. -L.. -lCoreUtils
|
g++ -g -std=c++20 -o zstring_test zstring_test.cpp -I.. -L.. -lCoreUtils
|
||||||
g++ -g -std=c++20 -o mstring_test mstring_test.cpp -I.. -L.. -lCoreUtils
|
g++ -g -std=c++20 -o mstring_test mstring_test.cpp -I.. -L.. -lCoreUtils
|
||||||
g++ -o jstring_test jstring_test.cpp -I.. -L.. -lCoreUtils
|
g++ -o jstring_test jstring_test.cpp -I.. -L.. -lCoreUtils
|
||||||
|
Binary file not shown.
@ -27,6 +27,7 @@ int main(int argc, char **argv) {
|
|||||||
test1["object1"] = "{\"attr1\":\"value1\",\"attr2\":\"value2\",\"attr3\":\"value3\"}";
|
test1["object1"] = "{\"attr1\":\"value1\",\"attr2\":\"value2\",\"attr3\":\"value3\"}";
|
||||||
test1["object1.attr2"] = "{\"xattr1\":\"xvalue1\",\"xattr2\":\"xvalue2\",\"xattr3\":\"xvalue3\"}";
|
test1["object1.attr2"] = "{\"xattr1\":\"xvalue1\",\"xattr2\":\"xvalue2\",\"xattr3\":\"xvalue3\"}";
|
||||||
test1["object1.attr3"] = "Im not an object";
|
test1["object1.attr3"] = "Im not an object";
|
||||||
|
// test1["age"] = 64; future
|
||||||
|
|
||||||
std::cout << test1 << std::endl;
|
std::cout << test1 << std::endl;
|
||||||
|
|
||||||
@ -58,6 +59,8 @@ int main(int argc, char **argv) {
|
|||||||
test9 = test1["object1"];
|
test9 = test1["object1"];
|
||||||
std::cout << test9 << std::endl;
|
std::cout << test9 << std::endl;
|
||||||
std::cout << test9["attr3"] << std::endl;
|
std::cout << test9["attr3"] << std::endl;
|
||||||
|
|
||||||
|
std::cout << test1.pretty() << std::endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -94,6 +94,9 @@ int main(int argc, char **argv) {
|
|||||||
int test29 = 402;
|
int test29 = 402;
|
||||||
test28 = test29;
|
test28 = test29;
|
||||||
std::cout << "int: " << test28 << std::endl;
|
std::cout << "int: " << test28 << std::endl;
|
||||||
|
|
||||||
|
coreutils::MString test30 = "ABCDEF";
|
||||||
|
std::cout << test30 << " to hex " << test30.toHex() << " from hex " << test30.toHex().fromHex() << std::endl;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -122,5 +122,8 @@ int main(int argc, char **argv) {
|
|||||||
std::cout << "integer '53524534' is [" << test24 << "]" << std::endl;
|
std::cout << "integer '53524534' is [" << test24 << "]" << std::endl;
|
||||||
coreutils::ZString test25("-543");
|
coreutils::ZString test25("-543");
|
||||||
std::cout << "integer '-543' is [" << test25 << "]" << std::endl;
|
std::cout << "integer '-543' is [" << test25 << "]" << std::endl;
|
||||||
|
|
||||||
|
coreutils::ZString test26(" this is a trim test ");
|
||||||
|
std::cout << "trimmed [" << test26.trim() << "]" << std::endl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user