RX0180

Domain: Parsing

Error message

a NUL byte in a text literal: %s

In the message, %s marks a value that the engine fills in when it raises the error.

The story

You wrote a backslash and a zero inside a text, and the engine said no. That escape would put a NUL byte, a character with value zero, in the middle of your text. Here is the trouble. Throughout the engine, texts are NUL terminated. Every door that reads a text stops when it meets the first zero byte. So whatever you wrote after the NUL would silently disappear. You would write a long sentence, and the engine would quietly use only the first part. That is exactly the kind of quiet shortening that causes baffling bugs. A raw NUL in source code is already considered a defect, for the same reason. So the escape is refused at parse, and the message names the line where it appears. If you really needed a zero, think about what for. If you wanted the character zero, the digit, just type the digit. If you wanted a separator, choose a visible one, or a newline. Your text will then travel through the engine whole.

Text from the Rush engine's error catalogue.