From a5b274d7fc1f9a06e6580da294c7ee15777e7521 Mon Sep 17 00:00:00 2001 From: =?utf8?q?W=C5=82odzimierz=20Skiba?= Date: Tue, 7 Dec 2004 19:49:27 +0000 Subject: [PATCH] Correct way of modyfing stc.cpp. Thanks Robin for quick guide :-) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30893 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- contrib/src/stc/stc.cpp | 58 ++++++++++++++++++++------------------ contrib/src/stc/stc.cpp.in | 19 ++++++++++--- src/stc/stc.cpp | 58 ++++++++++++++++++++------------------ src/stc/stc.cpp.in | 19 ++++++++++--- 4 files changed, 90 insertions(+), 64 deletions(-) diff --git a/contrib/src/stc/stc.cpp b/contrib/src/stc/stc.cpp index 0462c270ff..3117711387 100644 --- a/contrib/src/stc/stc.cpp +++ b/contrib/src/stc/stc.cpp @@ -520,6 +520,7 @@ void wxStyledTextCtrl::MarkerDefineBitmap(int markerNumber, const wxBitmap& bmp) buff[len] = 0; SendMsg(2049, markerNumber, (long)buff); delete [] buff; + } // Set a margin to be either numeric or symbolic. @@ -903,6 +904,7 @@ void wxStyledTextCtrl::RegisterImage(int type, const wxBitmap& bmp) { buff[len] = 0; SendMsg(2405, type, (long)buff); delete [] buff; + } // Clear all the registered images. @@ -1073,34 +1075,34 @@ int wxStyledTextCtrl::FindText(int minPos, int maxPos, } // On Windows, will draw the document into a display context such as a printer. -int wxStyledTextCtrl::FormatRange(bool doDraw, - int startPos, - int endPos, - wxDC* draw, - wxDC* target, - wxRect renderRect, - wxRect pageRect) { - RangeToFormat fr; - - if (endPos < startPos) { - int temp = startPos; - startPos = endPos; - endPos = temp; - } - fr.hdc = draw; - fr.hdcTarget = target; - fr.rc.top = renderRect.GetTop(); - fr.rc.left = renderRect.GetLeft(); - fr.rc.right = renderRect.GetRight(); - fr.rc.bottom = renderRect.GetBottom(); - fr.rcPage.top = pageRect.GetTop(); - fr.rcPage.left = pageRect.GetLeft(); - fr.rcPage.right = pageRect.GetRight(); - fr.rcPage.bottom = pageRect.GetBottom(); - fr.chrg.cpMin = startPos; - fr.chrg.cpMax = endPos; - - return SendMsg(2151, doDraw, (long)&fr); + int wxStyledTextCtrl::FormatRange(bool doDraw, + int startPos, + int endPos, + wxDC* draw, + wxDC* target, + wxRect renderRect, + wxRect pageRect) { + RangeToFormat fr; + + if (endPos < startPos) { + int temp = startPos; + startPos = endPos; + endPos = temp; + } + fr.hdc = draw; + fr.hdcTarget = target; + fr.rc.top = renderRect.GetTop(); + fr.rc.left = renderRect.GetLeft(); + fr.rc.right = renderRect.GetRight(); + fr.rc.bottom = renderRect.GetBottom(); + fr.rcPage.top = pageRect.GetTop(); + fr.rcPage.left = pageRect.GetLeft(); + fr.rcPage.right = pageRect.GetRight(); + fr.rcPage.bottom = pageRect.GetBottom(); + fr.chrg.cpMin = startPos; + fr.chrg.cpMax = endPos; + + return SendMsg(2151, doDraw, (long)&fr); } // Retrieve the display line at the top of the display. diff --git a/contrib/src/stc/stc.cpp.in b/contrib/src/stc/stc.cpp.in index 91641689aa..702062aa61 100644 --- a/contrib/src/stc/stc.cpp.in +++ b/contrib/src/stc/stc.cpp.in @@ -46,7 +46,9 @@ static long wxColourAsLong(const wxColour& co) { static wxColour wxColourFromLong(long c) { wxColour clr; - clr.Set(c & 0xff, (c >> 8) & 0xff, (c >> 16) & 0xff); + clr.Set((unsigned char)(c & 0xff), + (unsigned char)((c >> 8) & 0xff), + (unsigned char)((c >> 16) & 0xff)); return clr; } @@ -60,7 +62,9 @@ static wxColour wxColourFromSpec(const wxString& spec) { spec.Mid(1,2).ToLong(&red, 16); spec.Mid(3,2).ToLong(&green, 16); spec.Mid(5,2).ToLong(&blue, 16); - return wxColour(red, green, blue); + return wxColour((unsigned char)red, + (unsigned char)green, + (unsigned char)blue); } else return wxColour(spec); @@ -377,7 +381,9 @@ bool wxStyledTextCtrl::LoadFile(const wxString& filename) if (file.IsOpened()) { wxString contents; - size_t len = (size_t)file.Length(); + // get the file size (assume it is not huge file...) + ssize_t len = (ssize_t)file.Length(); + if (len > 0) { #if wxUSE_UNICODE @@ -394,7 +400,12 @@ bool wxStyledTextCtrl::LoadFile(const wxString& filename) #endif } else - success = true; // empty file is ok + { + if (len == 0) + success = true; // empty file is ok + else + success = false; // len == wxInvalidOffset + } if (success) { diff --git a/src/stc/stc.cpp b/src/stc/stc.cpp index 0462c270ff..3117711387 100644 --- a/src/stc/stc.cpp +++ b/src/stc/stc.cpp @@ -520,6 +520,7 @@ void wxStyledTextCtrl::MarkerDefineBitmap(int markerNumber, const wxBitmap& bmp) buff[len] = 0; SendMsg(2049, markerNumber, (long)buff); delete [] buff; + } // Set a margin to be either numeric or symbolic. @@ -903,6 +904,7 @@ void wxStyledTextCtrl::RegisterImage(int type, const wxBitmap& bmp) { buff[len] = 0; SendMsg(2405, type, (long)buff); delete [] buff; + } // Clear all the registered images. @@ -1073,34 +1075,34 @@ int wxStyledTextCtrl::FindText(int minPos, int maxPos, } // On Windows, will draw the document into a display context such as a printer. -int wxStyledTextCtrl::FormatRange(bool doDraw, - int startPos, - int endPos, - wxDC* draw, - wxDC* target, - wxRect renderRect, - wxRect pageRect) { - RangeToFormat fr; - - if (endPos < startPos) { - int temp = startPos; - startPos = endPos; - endPos = temp; - } - fr.hdc = draw; - fr.hdcTarget = target; - fr.rc.top = renderRect.GetTop(); - fr.rc.left = renderRect.GetLeft(); - fr.rc.right = renderRect.GetRight(); - fr.rc.bottom = renderRect.GetBottom(); - fr.rcPage.top = pageRect.GetTop(); - fr.rcPage.left = pageRect.GetLeft(); - fr.rcPage.right = pageRect.GetRight(); - fr.rcPage.bottom = pageRect.GetBottom(); - fr.chrg.cpMin = startPos; - fr.chrg.cpMax = endPos; - - return SendMsg(2151, doDraw, (long)&fr); + int wxStyledTextCtrl::FormatRange(bool doDraw, + int startPos, + int endPos, + wxDC* draw, + wxDC* target, + wxRect renderRect, + wxRect pageRect) { + RangeToFormat fr; + + if (endPos < startPos) { + int temp = startPos; + startPos = endPos; + endPos = temp; + } + fr.hdc = draw; + fr.hdcTarget = target; + fr.rc.top = renderRect.GetTop(); + fr.rc.left = renderRect.GetLeft(); + fr.rc.right = renderRect.GetRight(); + fr.rc.bottom = renderRect.GetBottom(); + fr.rcPage.top = pageRect.GetTop(); + fr.rcPage.left = pageRect.GetLeft(); + fr.rcPage.right = pageRect.GetRight(); + fr.rcPage.bottom = pageRect.GetBottom(); + fr.chrg.cpMin = startPos; + fr.chrg.cpMax = endPos; + + return SendMsg(2151, doDraw, (long)&fr); } // Retrieve the display line at the top of the display. diff --git a/src/stc/stc.cpp.in b/src/stc/stc.cpp.in index 91641689aa..702062aa61 100644 --- a/src/stc/stc.cpp.in +++ b/src/stc/stc.cpp.in @@ -46,7 +46,9 @@ static long wxColourAsLong(const wxColour& co) { static wxColour wxColourFromLong(long c) { wxColour clr; - clr.Set(c & 0xff, (c >> 8) & 0xff, (c >> 16) & 0xff); + clr.Set((unsigned char)(c & 0xff), + (unsigned char)((c >> 8) & 0xff), + (unsigned char)((c >> 16) & 0xff)); return clr; } @@ -60,7 +62,9 @@ static wxColour wxColourFromSpec(const wxString& spec) { spec.Mid(1,2).ToLong(&red, 16); spec.Mid(3,2).ToLong(&green, 16); spec.Mid(5,2).ToLong(&blue, 16); - return wxColour(red, green, blue); + return wxColour((unsigned char)red, + (unsigned char)green, + (unsigned char)blue); } else return wxColour(spec); @@ -377,7 +381,9 @@ bool wxStyledTextCtrl::LoadFile(const wxString& filename) if (file.IsOpened()) { wxString contents; - size_t len = (size_t)file.Length(); + // get the file size (assume it is not huge file...) + ssize_t len = (ssize_t)file.Length(); + if (len > 0) { #if wxUSE_UNICODE @@ -394,7 +400,12 @@ bool wxStyledTextCtrl::LoadFile(const wxString& filename) #endif } else - success = true; // empty file is ok + { + if (len == 0) + success = true; // empty file is ok + else + success = false; // len == wxInvalidOffset + } if (success) { -- 2.45.2