Author: hbelusca
Date: Sat Jul 6 16:05:39 2013
New Revision: 59434
URL:
http://svn.reactos.org/svn/reactos?rev=59434&view=rev
Log:
[CONSRV]
Fix copy of text in text-mode screenbuffers, in case we are copying NULL chars.
Modified:
trunk/reactos/win32ss/user/consrv/frontends/gui/text.c
Modified: trunk/reactos/win32ss/user/consrv/frontends/gui/text.c
URL:
http://svn.reactos.org/svn/reactos/trunk/reactos/win32ss/user/consrv/fronte…
==============================================================================
--- trunk/reactos/win32ss/user/consrv/frontends/gui/text.c [iso-8859-1] (original)
+++ trunk/reactos/win32ss/user/consrv/frontends/gui/text.c [iso-8859-1] Sat Jul 6
16:05:39 2013
@@ -83,7 +83,15 @@
/* Copy only the characters, leave attributes alone */
for (xPos = 0; xPos < selWidth; xPos++)
{
- dstPos[xPos] = ptr[xPos].Char.UnicodeChar;
+ /*
+ * Sometimes, applications can put NULL chars into the screen-buffer
+ * (this behaviour is allowed). Detect this and replace by a space.
+ * FIXME - HACK: Improve the way we're doing that (i.e., put spaces
+ * instead of NULLs (or even, nothing) only if it exists a non-null
+ * char *after* those NULLs, before the end-of-line of the selection.
+ * Do the same concerning spaces -- i.e. trailing spaces --).
+ */
+ dstPos[xPos] = (ptr[xPos].Char.UnicodeChar ? ptr[xPos].Char.UnicodeChar :
L' ');
}
dstPos += selWidth;