+ curr_pos = NewString.size();
+
+ /* Try to print whole lines but obey the 512 bytes chunk size limit*/
+ if(NewString[curr_pos - 1] == '\n' || (curr_pos - start) == DBGPRINT_BUFSIZE)
+ {
+ if((curr_pos - start) >= DBGPRINT_BUFSIZE)
+ {
+ /* No newlines so far, or the string just fits */
+ if(last_newline <= start || ((curr_pos - start == DBGPRINT_BUFSIZE) && NewString[curr_pos - 1] == '\n'))
+ {
+ size = curr_pos - start;
+ memcpy(DbgString, NewString.c_str() + start, size);
+ start = curr_pos;
+ }
+ else
+ {
+ size = last_newline - start;
+ memcpy(DbgString, NewString.c_str() + start, size);
+ start = last_newline;
+ }
+
+ DbgString[size] = 0;
+ OutputDebugStringA(DbgString);
+ }
+
+ last_newline = curr_pos;
+ }