comctl32: Use mask value in COMBOEX_GetItemA too
Samuel Lidén Borell
samuellb at bredband.net
Thu Feb 22 16:16:45 CST 2007
The mask value was not taken into account in the ASCII version of this
function. That made Notepad2 crash when selecting a syntax scheme.
---
dlls/comctl32/comboex.c | 25 ++++++++++++++-----------
1 files changed, 14 insertions(+), 11 deletions(-)
diff --git a/dlls/comctl32/comboex.c b/dlls/comctl32/comboex.c
index 1c354bd..68e262a 100644
--- a/dlls/comctl32/comboex.c
+++ b/dlls/comctl32/comboex.c
@@ -577,17 +577,20 @@ static BOOL COMBOEX_GetItemA (COMBOEX_INFO
*infoPtr, COMBOBOXEXITEMA *cit)
tmpcit.pszText = 0;
if(!COMBOEX_GetItemW (infoPtr, &tmpcit)) return FALSE;
- if (is_textW(tmpcit.pszText) && cit->pszText)
- WideCharToMultiByte (CP_ACP, 0, tmpcit.pszText, -1,
- cit->pszText, cit->cchTextMax, NULL, NULL);
- else if (cit->pszText) cit->pszText[0] = 0;
- else cit->pszText = (LPSTR)tmpcit.pszText;
-
- cit->iImage = tmpcit.iImage;
- cit->iSelectedImage = tmpcit.iSelectedImage;
- cit->iOverlay = tmpcit.iOverlay;
- cit->iIndent = tmpcit.iIndent;
- cit->lParam = tmpcit.lParam;
+ if (cit->mask & CBEIF_TEXT)
+ {
+ if (is_textW(tmpcit.pszText) && cit->pszText)
+ WideCharToMultiByte (CP_ACP, 0, tmpcit.pszText, -1,
+ cit->pszText, cit->cchTextMax, NULL, NULL);
+ else if (cit->pszText) cit->pszText[0] = 0;
+ else cit->pszText = (LPSTR)tmpcit.pszText;
+ }
+
+ if (cit->mask & CBEIF_IMAGE) cit->iImage = tmpcit.iImage;
+ if (cit->mask & CBEIF_SELECTEDIMAGE) cit->iSelectedImage =
tmpcit.iSelectedImage;
+ if (cit->mask & CBEIF_OVERLAY) cit->iOverlay = tmpcit.iOverlay;
+ if (cit->mask & CBEIF_INDENT) cit->iIndent = tmpcit.iIndent;
+ if (cit->mask & CBEIF_LPARAM) cit->lParam = tmpcit.lParam;
return TRUE;
}
--
1.4.4.3
More information about the wine-patches
mailing list