if (newText != null && !newText.equals (oldText)) {
if (newText != null) {
LRESULT wmClipboard (int msg, int wParam, int lParam) {	if ((style & SWT.READ_ONLY) != 0) return null;	if (!hooks (SWT.Verify) && !filters (SWT.Verify)) return null;	boolean call = false;	int [] start = new int [1], end = new int [1];	String oldText = null, newText = null;	switch (msg) {		case OS.WM_CLEAR:		case OS.WM_CUT:			OS.SendMessage (handle, OS.EM_GETSEL, start, end);			if (start [0] != end [0]) {				newText = "";				call = true;			}			break;		case OS.WM_PASTE:			OS.SendMessage (handle, OS.EM_GETSEL, start, end);			newText = getClipboardText ();			break;		case OS.EM_UNDO:		case OS.WM_UNDO:			if (OS.SendMessage (handle, OS.EM_CANUNDO, 0, 0) != 0) {				OS.SendMessage (handle, OS.EM_GETSEL, start, end);				ignoreModify = ignoreCharacter = true;				callWindowProc (msg, wParam, lParam);				newText = getSelectionText ();				callWindowProc (msg, wParam, lParam);				ignoreModify = ignoreCharacter = false;			}			break;	}	if (newText != null && !newText.equals (oldText)) {		oldText = newText;		newText = verifyText (newText, start [0], end [0], null);		if (newText == null) return LRESULT.ZERO;		if (!newText.equals (oldText)) {			if (call) {				callWindowProc (msg, wParam, lParam);			}			newText = Display.withCrLf (newText);			TCHAR buffer = new TCHAR (getCodePage (), newText, true);			/*			* Feature in Windows.  When an edit control with ES_MULTILINE			* style that does not have the WS_VSCROLL style is full (i.e.			* there is no space at the end to draw any more characters),			* EM_REPLACESEL sends a WM_CHAR with a backspace character			* to remove any further text that is added.  This is an			* implementation detail of the edit control that is unexpected			* and can cause endless recursion when EM_REPLACESEL is sent			* from a WM_CHAR handler.  The fix is to ignore calling the			* handler from WM_CHAR.			*/			ignoreCharacter = true;			OS.SendMessage (handle, OS.EM_REPLACESEL, 0, buffer);			ignoreCharacter = false;			return LRESULT.ZERO;		}	}	if (msg == OS.WM_UNDO) {		ignoreVerify = ignoreCharacter = true;		callWindowProc (OS.WM_UNDO, wParam, lParam);		ignoreVerify = ignoreCharacter = false;		return LRESULT.ONE;	}	return null;}