Therefore, subsequent uses of ~N| now yield the specified column,
instead of potentially overshooting.
Example:
?- format("hello~|~t~8|!", []).
hello ! true.
Such cases are probably rather uncommon: Relative positioning with ~N+
is more likely to be used in such cases, and that worked as intended
also previously as it does now:
?- format("hello~|~t~3+!", []).
hello ! true.
In fact, if absolute positions are used, then ~| can be omitted entirely:
?- format("hello~t~8|!", []).
hello ! true.
This works as soon as #732 is merged, since then maplist/N and foldl/N
are deterministic in the required cases.
This also resolves the extra choicepoint of time/1 (see #378).
Many thanks to @notoria for implementing better indexing in #732,
which allowed me to find this opportunity for improvement!
Without this, we do not get a (timely) prompt in cases like:
?- format("press a key: ", []), get_single_char(C).
whereas for example write/1 already works in such cases:
?- write('press a key: '), get_single_char(C).
press a key: