patch 8.0.0737: crash when X11 selection is very big

Problem:    Crash when X11 selection is very big.
Solution:   Use static items instead of allocating them.  Add callbacks.
            (Ozaki Kiichi)
diff --git a/src/testdir/shared.vim b/src/testdir/shared.vim
index e28d162..790b07b 100644
--- a/src/testdir/shared.vim
+++ b/src/testdir/shared.vim
@@ -111,14 +111,15 @@
 " Wait for up to a second for "expr" to become true.
 " Return time slept in milliseconds.  With the +reltime feature this can be
 " more than the actual waiting time.  Without +reltime it can also be less.
-func WaitFor(expr)
+func WaitFor(expr, ...)
+  let timeout = get(a:000, 0, 1000)
   " using reltime() is more accurate, but not always available
   if has('reltime')
     let start = reltime()
   else
     let slept = 0
   endif
-  for i in range(100)
+  for i in range(timeout / 10)
     try
       if eval(a:expr)
 	if has('reltime')
@@ -133,7 +134,7 @@
     endif
     sleep 10m
   endfor
-  return 1000
+  return timeout
 endfunc
 
 " Wait for up to a given milliseconds.