Mercurial > projects > dwt-win
comparison dwt/widgets/Text.d @ 186:ee3ee677f5fc
Fix several string convertion indexing errors, thanks Zhiguang Liang for the fixes
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Mon, 10 Mar 2008 17:00:00 +0100 |
parents | 25f88bf5a6df |
children | ab60f3309436 |
comparison
equal
deleted
inserted
replaced
185:026ce3b05f57 | 186:ee3ee677f5fc |
---|---|
970 int start, end; | 970 int start, end; |
971 OS.SendMessage (handle, OS.EM_GETSEL, &start, &end); | 971 OS.SendMessage (handle, OS.EM_GETSEL, &start, &end); |
972 if (start is end ) return ""; | 972 if (start is end ) return ""; |
973 TCHAR[] buffer = NewTCHARs (getCodePage (), length + 1); | 973 TCHAR[] buffer = NewTCHARs (getCodePage (), length + 1); |
974 OS.GetWindowText (handle, buffer.ptr, length + 1); | 974 OS.GetWindowText (handle, buffer.ptr, length + 1); |
975 return TCHARsToStr( buffer[ start .. end - start ] ); | 975 return TCHARsToStr( buffer[ start .. end ] ); |
976 } | 976 } |
977 | 977 |
978 /** | 978 /** |
979 * Returns the number of tabs. | 979 * Returns the number of tabs. |
980 * <p> | 980 * <p> |
2316 int newStart, newEnd; | 2316 int newStart, newEnd; |
2317 OS.SendMessage (handle, OS.EM_GETSEL, &newStart, &newEnd); | 2317 OS.SendMessage (handle, OS.EM_GETSEL, &newStart, &newEnd); |
2318 if (length !is 0 && newStart !is newEnd) { | 2318 if (length !is 0 && newStart !is newEnd) { |
2319 TCHAR[] buffer = NewTCHARs (getCodePage (), length + 1); | 2319 TCHAR[] buffer = NewTCHARs (getCodePage (), length + 1); |
2320 OS.GetWindowText (handle, buffer.ptr, length + 1); | 2320 OS.GetWindowText (handle, buffer.ptr, length + 1); |
2321 newText = TCHARsToStr( buffer[ newStart .. newEnd - newStart] ); | 2321 newText = TCHARsToStr( buffer[ newStart .. newEnd ] ); |
2322 } else { | 2322 } else { |
2323 newText = ""; | 2323 newText = ""; |
2324 } | 2324 } |
2325 callWindowProc (handle, msg, wParam, lParam); | 2325 callWindowProc (handle, msg, wParam, lParam); |
2326 ignoreModify = ignoreCharacter = false; | 2326 ignoreModify = ignoreCharacter = false; |