+LY_DEFINE(ly_set_point_and_click_x, "set-point-and-click!", 1, 0, 0,
+ (SCM what),
+ "Set the options for Point-and-click source specials output. The
+argument is a symbol. Possible options are @code{none} (no source specials),
+@code{line} and @code{line-column}")
+{
+ /*
+ UGH.
+ */
+ SCM val = SCM_BOOL_F;
+ if (ly_symbol2scm ("line-column") == what)
+ val = gh_eval_str ("line-column-location");
+ else if (what == ly_symbol2scm ("line"))
+ val = gh_eval_str ("line-location");
+
+ /*
+ UGH.
+
+ How do you do set! from C ?
+ */
+ scm_primitive_eval (scm_list_n (ly_symbol2scm ("set!"),
+ ly_symbol2scm ("point-and-click"), val, SCM_UNDEFINED));
+ return SCM_UNSPECIFIED;
+}