Text substitutions with default responses

In my WIP, the player can be more than one character, and I adjusting the default responses to reflect this. I am doing this through text substitutions. Here’s my simplified code:

[code]block vaguely going rule response (A) is “[block vaguely going]”

To say block vaguely going:
say “This is a test.”[/code]

The above code works, except it gives you too much white space. So I adjusted it:

[code]block vaguely going rule response (A) is “[block vaguely going]”

To say block vaguely going:
say “This is a test.[run paragraph on]”

Now I get “This is a test.” as well as “You must supply a noun.”

Why is Inform doing this?

(I’m using build 6L02 on a Mac.)

I’m not sure about the why, but changing “run paragraph on” to “no line break” gets rid of the error. I know I frequently confuse the two, and if things go wrong, switching one for the other works. I’d be interested why, too, though.

Thanks for reminding me about “no line break,” Andrew! That seems like something that I’ve probably been missing in some of my projects that wind up with spacing errors.

Anyway, the block vaguely going rule is a rule for supplying a missing noun, and I suspect the underlying issue can be found in the documentation for the supplying a missing noun activity, in Writing with Inform 18.32:

I’m guessing that the “run paragraph on” substitution works by resetting the flag that Inform uses to check whether text has been printed, so it thinks that it needs to print the generic reply. I haven’t looked into the internals, though.

Rather than messing around with the line break system:

To say period: (- print "."; -).

Block vaguely going rule response (A) is "[block vaguely going]"

To say block vaguely going:
	say "This is a test[period]"

No problem Matt–and thanks for the adding on. I figure a lot out by experimentation (e.g. “Inform is robust enough, one of these ways must work,”) and my looking up documentation isn’t always the best.

So THAT’S how you do that. Oh, man, that’s simple. Thank you!