+#else
+# if TINYSTACK
+# if TOS || MINT
+ /* small stack, but big heap. Allocate buffer from heap */
+ char *U_text = (char *)malloc(4096);
+ if (!U_text)
+ {
+ return 0;
+ }
+# else
+ /* small stack - we need to conserve space */
+
+ /* !!! kludge: we use U_text as the buffer. This has the side-effect
+ * of interfering with the shift-U visual command. Disable shift-U.
+ */
+ U_line = 0L;
+# endif
+# else
+ /* This is how we would *like* to do it -- with a large buffer on the
+ * stack, so we can handle large .exrc files and also recursion.
+ */
+ char U_text[4096];
+# endif
+#endif