Changeset 1814 for trunk/src/user32


Ignore:
Timestamp:
Nov 22, 1999, 10:42:06 PM (26 years ago)
Author:
cbratschi
Message:

final window text fixes

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/user32/win32wbase.cpp

    r1809 r1814  
    1 /* $Id: win32wbase.cpp,v 1.91 1999-11-22 18:06:46 cbratschi Exp $ */
     1/* $Id: win32wbase.cpp,v 1.92 1999-11-22 21:42:06 cbratschi Exp $ */
    22/*
    33 * Win32 Window Base Class for OS/2
     
    147147  windowNameA      = NULL;
    148148  windowNameW      = NULL;
    149   wndNameLength    = 1; //CB: right?
     149  wndNameLength    = 0;
    150150
    151151  userWindowLong   = NULL;;
     
    521521    if (!isUnicode)
    522522    {
    523       windowNameA = (LPSTR)_smalloc(strlen(cs->lpszName)+1);
     523      wndNameLength = strlen(cs->lpszName);
     524      windowNameA = (LPSTR)_smalloc(wndNameLength+1);
    524525      strcpy(windowNameA,cs->lpszName);
    525       windowNameW = (LPWSTR)_smalloc((strlen(cs->lpszName)+1)*sizeof(WCHAR));
     526      windowNameW = (LPWSTR)_smalloc((wndNameLength+1)*sizeof(WCHAR));
    526527      lstrcpyAtoW(windowNameW,windowNameA);
    527       wndNameLength = strlen(windowNameA)+1; //including 0 terminator
    528528    } else
    529529    {
    530       windowNameA = (LPSTR)_smalloc(lstrlenW((LPWSTR)cs->lpszName)+1);
     530      wndNameLength = lstrlenW((LPWSTR)cs->lpszName);
     531      windowNameA = (LPSTR)_smalloc(wndNameLength+1);
    531532      lstrcpyWtoA(windowNameA,(LPWSTR)cs->lpszName);
    532       windowNameW = (LPWSTR)_smalloc((lstrlenW((LPWSTR)cs->lpszName)+1)*sizeof(WCHAR));
     533      windowNameW = (LPWSTR)_smalloc((wndNameLength+1)*sizeof(WCHAR));
    533534      lstrcpyW(windowNameW,(LPWSTR)cs->lpszName);
    534       wndNameLength = strlen(windowNameA)+1; //including 0 terminator
    535535    }
    536536  }
     
    15111511
    15121512    case WM_GETTEXT:
    1513         if (!lParam) return 0;
    1514         strncpy((LPSTR)lParam, windowNameA, wParam);
     1513        if (!lParam || !wParam) return 0;
     1514        if (!windowNameA) ((LPSTR)lParam)[0] = 0;
     1515        else strncpy((LPSTR)lParam, windowNameA, wParam);
    15151516        return min(wndNameLength, wParam);
    15161517
     
    15241525        if (lParam)
    15251526        {
    1526           windowNameA = (LPSTR)_smalloc(strlen(lpsz)+1);
     1527          wndNameLength = strlen(lpsz);
     1528          windowNameA = (LPSTR)_smalloc(wndNameLength+1);
    15271529          strcpy(windowNameA, lpsz);
    1528           windowNameW = (LPWSTR)_smalloc((strlen(lpsz)+1)*sizeof(WCHAR));
     1530          windowNameW = (LPWSTR)_smalloc((wndNameLength+1)*sizeof(WCHAR));
    15291531          lstrcpyAtoW(windowNameW, windowNameA);
    1530           wndNameLength = strlen(windowNameA)+1; //including 0 terminator
    1531           dprintf(("WM_SETTEXT of %d to %s\n", Win32Hwnd, lParam));
    15321532        } else
    15331533        {
    15341534          windowNameA = NULL;
    15351535          windowNameW = NULL;
    1536           wndNameLength = 1;
    1537         }
     1536          wndNameLength = 0;
     1537        }
     1538        dprintf(("WM_SETTEXT of %d to %s\n", Win32Hwnd, lParam));
    15381539
    15391540        if(OS2HwndFrame && (dwStyle & WS_CAPTION) == WS_CAPTION)
     
    17611762
    17621763    case WM_GETTEXT:
    1763         if (!lParam) return 0;
    1764         lstrcpynW((LPWSTR)lParam,windowNameW,wParam);
     1764        if (!lParam || !wParam) return 0;
     1765        if (!windowNameW) ((LPWSTR)lParam)[0] = 0;
     1766        else lstrcpynW((LPWSTR)lParam,windowNameW,wParam);
    17651767        return min(wndNameLength,wParam);
    17661768
     
    17741776        if (lParam)
    17751777        {
    1776           windowNameA = (LPSTR)_smalloc(lstrlenW(lpsz)+1);
     1778          wndNameLength = lstrlenW(lpsz);
     1779          windowNameA = (LPSTR)_smalloc(wndNameLength+1);
    17771780          lstrcpyWtoA(windowNameA,lpsz);
    1778           windowNameW = (LPWSTR)_smalloc((lstrlenW(lpsz)+1)*sizeof(WCHAR));
     1781          windowNameW = (LPWSTR)_smalloc((wndNameLength+1)*sizeof(WCHAR));
    17791782          lstrcpyW(windowNameW,lpsz);
    1780           wndNameLength = strlen(windowNameA)+1; //including 0 terminator
    17811783        } else
    17821784        {
    17831785          windowNameA = NULL;
    17841786          windowNameW = NULL;
    1785           wndNameLength = 1;
     1787          wndNameLength = 0;
    17861788        }
    17871789
Note: See TracChangeset for help on using the changeset viewer.