X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=Usermode%2FApplications%2Firc_src%2Fwindow.c;h=ba12880c1f3f33efd9fb15d4e9985adea070b06f;hb=HEAD;hp=48daeb5ce5551fe76c56088e7f1a466a7e3e0712;hpb=299c4151d9e41db8eacd6fe0187e41c37ce2128c;p=tpg%2Facess2.git diff --git a/Usermode/Applications/irc_src/window.c b/Usermode/Applications/irc_src/window.c index 48daeb5c..ba12880c 100644 --- a/Usermode/Applications/irc_src/window.c +++ b/Usermode/Applications/irc_src/window.c @@ -141,26 +141,33 @@ size_t Windows_int_PaintMessagePrefix(const tMessage *Message, bool EnablePrint) size_t Windows_int_PaintMessageLine(const tMessage *Message, size_t Offset, bool EnablePrint) { - _SysDebug("Windows_int_PaintMessageLine: Message=%p,Offset=%zi, EnablePrint=%b", - Message, Offset, EnablePrint); + _SysDebug("Windows_int_PaintMessageLine: Message=%p,Offset=%i,EnablePrint=%b", + Message, (int)Offset, EnablePrint); if( Offset > strlen(Message->Data) ) { + _SysDebug("Windows_int_PaintMessageLine: No message left"); return 0; } + _SysDebug("Windows_int_PaintMessageLine: Message->Data=\"%.*s\"+\"%s\"", + (int)Offset, Message->Data, Message->Data+Offset); size_t avail = giTerminal_Width - Message->PrefixLen; const char *msg_data = Message->Data + Offset; - int used = WordBreak(msg_data+Offset, avail); + int used = WordBreak(msg_data, avail); if( EnablePrint ) { if( Offset == 0 ) Windows_int_PaintMessagePrefix(Message, true); - else - printf("\x1b[%iC", Message->PrefixLen); + else { + for(int i = 0; i < Message->PrefixLen; i ++) + printf(" "); + //printf("\x1b[%iC", Message->PrefixLen); + } printf("%.*s", used, msg_data); } - if( msg_data[used] == '\0' ) + _SysDebug("used(%i) >= strlen(msg_data)(%i)", used, strlen(msg_data)); + if( used >= strlen(msg_data) ) return 0; return Offset + used; @@ -308,7 +315,7 @@ void Window_AppendMessage(tWindow *Window, enum eMessageClass Class, const char printf("\33[s"); // Save cursor size_t offset = 0, len; do { - printf("\33[T"); // Scroll down 1 (free space below) + printf("\33[S"); // Scroll down 1 (free space below) SetCursorPos(giTerminal_Height-2, 1); len = Windows_int_PaintMessageLine(msg, offset, true); offset += len;