Merge with html-improvements

--HG--
branch : yubo
hg/yubo
Nimetu 5 years ago
commit da5b7212f8

@ -119,6 +119,11 @@ public: // Advanced Usage.
// return a string separated by \n or eof, used to parsing text file // return a string separated by \n or eof, used to parsing text file
void getline (char *buffer, uint32 bufferSize); void getline (char *buffer, uint32 bufferSize);
// read whole file into a string. resulting buffer may contain NULL chars.
// internal read position is modified.
// return true on success, false on failure.
bool readAll(std::string &buffer);
// return the size of the file // return the size of the file
uint32 getFileSize () const { return _FileSize; } uint32 getFileSize () const { return _FileSize; }

@ -2175,12 +2175,24 @@ namespace NLGUI
std::string filename = CPath::lookup(_BrowserCssFile, false, true, true); std::string filename = CPath::lookup(_BrowserCssFile, false, true, true);
if (!filename.empty()) if (!filename.empty())
{ {
NLMISC::CSString css; CIFile in;
if (css.readFromFile(filename)) if (in.open(filename))
{ {
_BrowserStyle.parseStylesheet(css); std::string css;
if (in.readAll(css))
_BrowserStyle.parseStylesheet(css);
else
nlwarning("Failed to read browser css from '%s'", filename.c_str());
}
else
{
nlwarning("Failed to open browser css file '%s'", filename.c_str());
} }
} }
else
{
nlwarning("Browser css file '%s' not found", _BrowserCssFile.c_str());
}
} }
} }
else else

@ -361,6 +361,37 @@ void CIFile::flush()
} }
} }
// ======================================================================================================
bool CIFile::readAll(std::string &buffer)
{
try
{
uint32 remaining = _FileSize;
buffer.clear();
buffer.reserve(_FileSize);
while(!eof() && remaining > 0)
{
const static uint bufsize = 1024;
char buf[bufsize];
uint32 readnow = bufsize;
if (readnow > remaining)
readnow = remaining;
serialBuffer((uint8 *)&buf[0], readnow);
buffer.append(buf, readnow);
remaining -= readnow;
}
}
catch (const EFile &)
{
// buffer state is unknown
return false;
}
return true;
}
// ====================================================================================================== // ======================================================================================================
void CIFile::getline (char *buffer, uint32 bufferSize) void CIFile::getline (char *buffer, uint32 bufferSize)
{ {

Loading…
Cancel
Save