wineconsole[3/6]: remove spaces from the ends of lines while copying to the clipboard

Mikołaj Zalewski mikolaj at zalewski.pl
Wed Oct 18 08:52:42 CDT 2006


This is very practical and matches the Windows behaviour
-------------- next part --------------
diff --git a/programs/wineconsole/user.c b/programs/wineconsole/user.c
index e1efda2..557ccfc 100644
--- a/programs/wineconsole/user.c
+++ b/programs/wineconsole/user.c
@@ -689,8 +689,15 @@ static void	WCUSER_CopySelectionToClipbo
 
 	for (y = 0; y < h; y++, c.Y++)
 	{
-	    ReadConsoleOutputCharacter(data->hConOut, &p[y * w], w - 1, c, NULL);
-	    p[y * w + w - 1] = (y < h - 1) ? '\n' : '\0';
+	    LPWSTR end;
+	    ReadConsoleOutputCharacter(data->hConOut, p, w - 1, c, NULL);
+	    
+	    /* strip spaces from the end of the line */
+	    end = p + w - 1;
+	    while (end > p && *(end - 1) == ' ')
+	        end--;
+	    *end = (y < h - 1) ? '\n' : '\0';
+	    p = end + 1;
 	}
 	GlobalUnlock(hMem);
 	SetClipboardData(CF_UNICODETEXT, hMem);
-- 
1.4.2.3


More information about the wine-patches mailing list