-// Returns the spacing spec connecting BEFORE to AFTER. A return
-// value of SCM_BOOL_F means that there should be no spring (in
-// practice, this means that we use a very flexible spring).
+static SCM
+add_stretchability (SCM alist, Real stretch)
+{
+ if (!scm_is_pair (scm_sloppy_assq (ly_symbol2scm ("stretchability"), alist)))
+ return scm_acons (ly_symbol2scm ("stretchability"), scm_from_double (stretch), alist);
+
+ return alist;
+}
+
+// We want to put a large stretch between a non-spaceable line and its
+// non-affinity staff. We want to put an even larger stretch between
+// a non-spaceable line and the top/bottom of the page. That way,
+// a spacing-affinity UP line at the bottom of the page will still be
+// placed close to its staff.
+const double LARGE_STRETCH = 10e5;
+const double HUGE_STRETCH = 10e7;
+
+// Returns the spacing spec connecting BEFORE to AFTER.