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;