if (len > 0)
{
#if wxUSE_UNICODE
- char *tmp = new char[len + 1];
- m_input->Read(tmp, len);
- tmp[len] = 0;
- wxString ret( (const wxChar*) m_conv.cMB2WX(tmp) );
- delete[] tmp;
+ wxCharBuffer tmp(len + 1);
+ m_input->Read(tmp.data(), len);
+ tmp.data()[len] = '\0';
+ wxString ret(m_conv.cMB2WX(tmp.data()));
#else
wxString ret;
- m_input->Read( ret.GetWriteBuf(len), len);
- ret.UngetWriteBuf();
+ m_input->Read( wxStringBuffer(ret, len), len);
#endif
return ret;
}
ok = ::GetShortPathName
(
path,
- pathOut.GetWriteBuf(sz),
+ wxStringBuffer(pathOut, sz),
sz
) != 0;
- pathOut.UngetWriteBuf();
}
if (ok)
return pathOut;
ok = (*s_pfnGetLongPathName)
(
path,
- pathOut.GetWriteBuf(sz),
+ wxStringBuffer(pathOut, sz),
sz
) != 0;
- pathOut.UngetWriteBuf();
-
success = true;
}
}
fullpath[posFirstSlash] = wxFILE_SEP_DSK;
// UNC paths are always absolute, right? (FIXME)
- fullpath.insert(posFirstSlash + 1, wxFILE_SEP_PATH_DOS);
+ fullpath.insert(posFirstSlash + 1, 1, wxFILE_SEP_PATH_DOS);
}
}
}
msg = wxString(buf.data(), wxConvLibc);
#else // !Unicode
- (void)regerror(errorcode, &m_RegEx, msg.GetWriteBuf(len), len);
-
- msg.UngetWriteBuf();
+ (void)regerror(errorcode, &m_RegEx, wxStringBuffer(msg, len), len);
#endif // Unicode/!Unicode
}
else // regerror() returned 0
{
wxLogLastError(wxT("SendMessage(CB_GETLBTEXT)"));
}
-
- str.UngetWriteBuf();
}
return str;
static const size_t len = 256;
wxString s;
- (void)DdeQueryString(DDEIdInst, hsz, s.GetWriteBuf(len), len, DDE_CP);
- s.UngetWriteBuf();
+ (void)DdeQueryString(DDEIdInst, hsz, wxStringBuffer(s, len), len, DDE_CP);
return s;
}
// +1 for terminating NUL
wxString result;
- ListBox_GetText(GetHwnd(), N, result.GetWriteBuf(len + 1));
- result.UngetWriteBuf();
+ ListBox_GetText(GetHwnd(), N, wxStringBuffer(result, len + 1));
return result;
}
wxCHECK_MSG( !IsStandard(), s,
wxT("name of predefined format cannot be retrieved") );
- int len = ::GetClipboardFormatName(m_format, s.GetWriteBuf(max), max);
- s.UngetWriteBuf();
+ int len = ::GetClipboardFormatName(m_format, wxStringBuffer(s, max), max);
if ( !len )
{
// +1 for terminating NUL
len = ::DragQueryFile(hdrop, n, NULL, 0) + 1;
- UINT len2 = ::DragQueryFile(hdrop, n, str.GetWriteBuf(len), len);
- str.UngetWriteBuf();
+ UINT len2 = ::DragQueryFile(hdrop, n, wxStringBuffer(str, len), len);
m_filenames.Add(str);
if ( len2 != len - 1 ) {
size_t len = m_dataObjectLast->GetDataSize();
- m_dataObjectLast->GetDataHere(url.GetWriteBuf(len));
- url.UngetWriteBuf();
+ m_dataObjectLast->GetDataHere(wxStringBuffer(url, len));
return url;
}
size_t len = strFullPath.length();
const wxChar *end = src + len;
- wxChar *dst = m_strPath.GetWriteBuf(len);
+ wxStringBufferLength buf(m_strPath, len);
+ wxChar *dst = buf;
wxChar *start = dst;
for ( ; src < end; src++, dst++ )
}
*dst = _T('\0');
-
- m_strPath.UngetWriteBuf(dst - start);
+ buf.SetLength(dst - start);
}
#ifdef WX_DEBUG_SET_PATH
size_t len = m_strPath.length();
const wxChar *src = m_strPath.c_str();
- wxChar *dst = strRegPath.GetWriteBuf(len);
+ wxStringBufferLength buf(strRegPath, len);
+ wxChar *dst = buf;
const wxChar *end = src + len;
for ( ; src < end; src++, dst++ )
*dst = *src;
}
- strRegPath.UngetWriteBuf(len);
+ buf.SetLength(len);
}
// this is not needed any longer as we don't create keys unnecessarily any
strValue.Empty();
}
else {
- RegString pBuf = (RegString)strValue.GetWriteBuf(dwSize);
m_dwLastError = RegQueryValueEx((HKEY) m_hKey,
WXSTRINGCAST szValue,
RESERVED,
&dwType,
- pBuf,
+ (RegString)(wxChar*)wxStringBuffer(strValue, dwSize),
&dwSize);
- strValue.UngetWriteBuf();
// expand the var expansions in the string unless disabled
#ifndef __WXWINCE__
ok = ::ExpandEnvironmentStrings
(
strValue,
- strExpValue.GetWriteBuf(dwExpSize),
+ wxStringBuffer(strExpValue, dwExpSize),
dwExpSize
) != 0;
- strExpValue.UngetWriteBuf();
strValue = strExpValue;
}
int len = StatusBar_GetTextLen(GetHwnd(), nField);
if ( len > 0 )
{
- StatusBar_GetText(GetHwnd(), nField, str.GetWriteBuf(len));
- str.UngetWriteBuf();
+ StatusBar_GetText(GetHwnd(), nField, wxStringBuffer(str, len));
}
return str;
int len = GetWindowTextLength(GetHwnd());
if ( len > from )
{
- // alloc one extra WORD as needed by the control
- wxChar *p = str.GetWriteBuf(++len);
+ {
+ // alloc one extra WORD as needed by the control
+ wxStringBuffer tmp(str, ++len);
+ wxChar *p = tmp;
- TEXTRANGE textRange;
- textRange.chrg.cpMin = from;
- textRange.chrg.cpMax = to == -1 ? len : to;
- textRange.lpstrText = p;
+ TEXTRANGE textRange;
+ textRange.chrg.cpMin = from;
+ textRange.chrg.cpMax = to == -1 ? len : to;
+ textRange.lpstrText = p;
- (void)SendMessage(GetHwnd(), EM_GETTEXTRANGE, 0, (LPARAM)&textRange);
+ (void)SendMessage(GetHwnd(), EM_GETTEXTRANGE,
+ 0, (LPARAM)&textRange);
- if ( m_verRichEdit > 1 )
- {
- // RichEdit 2.0 uses just CR ('\r') for the newlines which is
- // neither Unix nor Windows style - convert it to something
- // reasonable
- for ( ; *p; p++ )
+ if ( m_verRichEdit > 1 )
{
- if ( *p == _T('\r') )
- *p = _T('\n');
+ // RichEdit 2.0 uses just CR ('\r') for the
+ // newlines which is neither Unix nor Windows
+ // style - convert it to something reasonable
+ for ( ; *p; p++ )
+ {
+ if ( *p == _T('\r') )
+ *p = _T('\n');
+ }
}
}
- str.UngetWriteBuf();
-
if ( m_verRichEdit == 1 )
{
// convert to the canonical form - see comment below
len += sizeof(WORD);
wxString str;
- wxChar *buf = str.GetWriteBuf(len);
-
- *(WORD *)buf = (WORD)len;
- len = (size_t)::SendMessage(GetHwnd(), EM_GETLINE, lineNo, (LPARAM)buf);
- buf[len] = 0;
+ {
+ wxStringBufferLength tmp(str, len);
+ wxChar *buf = tmp;
- str.UngetWriteBuf(len);
+ *(WORD *)buf = (WORD)len;
+ len = (size_t)::SendMessage(GetHwnd(), EM_GETLINE,
+ lineNo, (LPARAM)buf);
+ buf[len] = 0;
+ tmp.SetLength(len);
+ }
return str;
}
wxString strPath;
::GetModuleFileName(::GetModuleHandle(NULL),
- strPath.GetWriteBuf(MAX_PATH), MAX_PATH);
- strPath.UngetWriteBuf();
+ wxStringBuffer(strPath, MAX_PATH), MAX_PATH);
// extract the dir name
wxSplitPath(strPath, &strDir, NULL, NULL);
if ( value )
{
- (void)::GetEnvironmentVariable(var, value->GetWriteBuf(dwRet), dwRet);
- value->UngetWriteBuf();
+ (void)::GetEnvironmentVariable(var, wxStringBuffer(*value, dwRet),
+ dwRet);
}
return TRUE;
return FALSE;
}
if (*value) delete[] (*value);
- *value = copystring(buf);
+ *value = wxStrcpy(new wxChar[wxStrlen(buf) + 1], buf);
return TRUE;
}
if ( hWnd )
{
int len = GetWindowTextLength((HWND)hWnd) + 1;
- ::GetWindowText((HWND)hWnd, str.GetWriteBuf(len), len);
- str.UngetWriteBuf();
+ ::GetWindowText((HWND)hWnd, wxStringBuffer(str, len), len);
}
return str;
for ( ;; )
{
- int count = ::GetClassName((HWND)hWnd, str.GetWriteBuf(len), len);
+ int count = ::GetClassName((HWND)hWnd, wxStringBuffer(str, len), len);
- str.UngetWriteBuf();
if ( count == len )
{
// the class name might have been truncated, retry with larger
// and now get the file name
::DragQueryFile(hFilesInfo, wIndex,
- files[wIndex].GetWriteBuf(len), len);
-
- files[wIndex].UngetWriteBuf();
+ wxStringBuffer(files[wIndex], len), len);
}
DragFinish (hFilesInfo);