Revert "winex11.drv: Fix paste strings from Unix programs into Wine non unicode program"
authorVitaly Perov <vitperov@etersoft.ru>
Thu, 24 Mar 2011 11:37:51 +0000 (14:37 +0300)
committerVitaly Perov <vitperov@etersoft.ru>
Thu, 24 Mar 2011 11:37:51 +0000 (14:37 +0300)
This reverts commit 8421052d299572bb4689ca1eadef06b791ddf2a3.

Conflicts:

dlls/winex11.drv/clipboard.c

dlls/winex11.drv/clipboard.c

index d0b4ae6c22866f536d282696dffd7a0ef4dc32ba..b00592d50f69059b76b14a1b99fe8bbdc2d1fb58 100644 (file)
@@ -148,7 +148,6 @@ static HANDLE X11DRV_CLIPBOARD_ImportXAPIXMAP(Display *d, Window w, Atom prop);
 static HANDLE X11DRV_CLIPBOARD_ImportImageBmp(Display *d, Window w, Atom prop);
 static HANDLE X11DRV_CLIPBOARD_ImportXAString(Display *d, Window w, Atom prop);
 static HANDLE X11DRV_CLIPBOARD_ImportUTF8(Display *d, Window w, Atom prop);
-static HANDLE X11DRV_CLIPBOARD_ImportUcsString(Display *display, Window w, Atom prop);
 static HANDLE X11DRV_CLIPBOARD_ImportCompoundText(Display *d, Window w, Atom prop);
 static HANDLE X11DRV_CLIPBOARD_ExportClipboardData(Display *display, Window requestor, Atom aTarget,
     Atom rprop, LPWINE_CLIPDATA lpData, LPDWORD lpBytes);
@@ -282,9 +281,6 @@ static WINE_CLIPFORMAT ClipFormats[]  =
     { CF_DSPENHMETAFILE, wszCF_DSPENHMETAFILE, 0, CF_FLAG_BUILTINFMT, X11DRV_CLIPBOARD_ImportClipboardData,
         X11DRV_CLIPBOARD_ExportClipboardData, &ClipFormats[21], &ClipFormats[23]},
 
-    { CF_TEXT, wszUTF8STRING, 0, CF_FLAG_BUILTINFMT, X11DRV_CLIPBOARD_ImportUcsString,
-        X11DRV_CLIPBOARD_ExportString, &ClipFormats[22], NULL},
-
     { CF_DIB, wszIMAGEBMP, 0, CF_FLAG_BUILTINFMT, X11DRV_CLIPBOARD_ImportImageBmp,
         X11DRV_CLIPBOARD_ExportImageBmp, &ClipFormats[22], NULL},
 };
@@ -1158,7 +1154,7 @@ static HANDLE X11DRV_CLIPBOARD_ImportXAString(Display *display, Window w, Atom p
     if (!X11DRV_CLIPBOARD_ReadProperty(display, w, prop, &lpdata, &cbytes))
         return 0;
 
-    for (i = 0; i < cbytes; i++)
+    for (i = 0; i <= cbytes; i++)
     {
         if (lpdata[i] == '\n')
             inlcount++;
@@ -1168,14 +1164,14 @@ static HANDLE X11DRV_CLIPBOARD_ImportXAString(Display *display, Window w, Atom p
     {
         lpstr = GlobalLock(hText);
 
-        for (i = 0, inlcount = 0; i < cbytes; i++)
+        for (i = 0, inlcount = 0; i <= cbytes; i++)
         {
             if (lpdata[i] == '\n')
                 lpstr[inlcount++] = '\r';
 
             lpstr[inlcount++] = lpdata[i];
         }
-        lpstr[inlcount] = '\0';
+
         GlobalUnlock(hText);
     }
 
@@ -1202,7 +1198,7 @@ static HANDLE X11DRV_CLIPBOARD_ImportUTF8(Display *display, Window w, Atom prop)
     if (!X11DRV_CLIPBOARD_ReadProperty(display, w, prop, &lpdata, &cbytes))
         return 0;
 
-    for (i = 0; i < cbytes; i++)
+    for (i = 0; i <= cbytes; i++)
     {
         if (lpdata[i] == '\n')
             inlcount++;
@@ -1212,14 +1208,13 @@ static HANDLE X11DRV_CLIPBOARD_ImportUTF8(Display *display, Window w, Atom prop)
     {
         UINT count;
 
-        for (i = 0, inlcount = 0; i < cbytes; i++)
+        for (i = 0, inlcount = 0; i <= cbytes; i++)
         {
             if (lpdata[i] == '\n')
                 lpstr[inlcount++] = '\r';
 
             lpstr[inlcount++] = lpdata[i];
         }
-        lpstr[inlcount] = '\0';
 
         count = MultiByteToWideChar(CP_UTF8, 0, lpstr, -1, NULL, 0);
         hUnicodeText = GlobalAlloc(GMEM_MOVEABLE | GMEM_DDESHARE, count * sizeof(WCHAR));
@@ -1240,37 +1235,6 @@ static HANDLE X11DRV_CLIPBOARD_ImportUTF8(Display *display, Window w, Atom prop)
     return hUnicodeText;
 }
 
-/**************************************************************************
- *      X11DRV_CLIPBOARD_ImportUcsString
- *
- * Import UCS string, converting the string to CF_TEXT.
- */
-HANDLE X11DRV_CLIPBOARD_ImportUcsString(Display *display, Window w, Atom prop)
-{
-      LPSTR lpstr = NULL;
-      int   len;
-      HANDLE hText;
-      LPWSTR lpstrW;
-
-      hText = X11DRV_CLIPBOARD_ImportUTF8(display, w, prop);
-      lpstrW = GlobalLock(hText);
-
-      if (lpstrW)
-      {
-         len = WideCharToMultiByte(CP_ACP, 0, lpstrW, -1, NULL, 0, NULL, NULL);
-         lpstr = HeapAlloc(GetProcessHeap(), 0, sizeof(char) * (len) );
-         WideCharToMultiByte(CP_ACP, 0, lpstrW, -1, lpstr, len, NULL, NULL);
-         if(strlenW(lpstrW) >= strlen(lpstr))
-            strcpy((LPSTR)lpstrW, lpstr);
-         else
-            ERR("WCHAR buffer overfloat(%p)!\n", lpstrW);
-         HeapFree(GetProcessHeap(), 0, lpstr);
-         GlobalUnlock(hText);
-      }
-
-      return hText;
-}
-
 /**************************************************************************
  *             X11DRV_CLIPBOARD_ImportCompoundText
  *