AT_KEYWORDS([segment])
AT_DATA([input], [dnl
~ & | = >= > <= < ~= <> ( ) , - + * / [[ ]] **
-~&|=>=><=<~=<>(),-+*/[[]]**
-% : ; ? _ ` { } ~
+~&|=>=><=<~=<>(),-+*/[[]]**!*
+% : ; ? _ ` { } ~ !*
])
AT_DATA([expout-base], [dnl
punct ~ space
punct [[
punct ]]
punct **
+macro_id !*
newline \n (later)
punct % space
punct ` space
punct { space
punct } space
-punct ~
+punct ~ space
+macro_id !*
-newline \n (later)
-
end
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
punct )
spaces
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
punct )
macro_body _var1_var2_var3_/*_!enddefine
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
punct )
spaces
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
punct )
macro_body var1_var2_var3
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
punct )
spaces
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
punct )
spaces
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
identifier a
punct (
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
newline \n (later)
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
newline \n (later)
punct (
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
end_command .
newline \n (first)
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
newline \n (later)
identifier x
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
end_command .
newline \n (first)
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
end_command .
newline \n (first)
])
AT_DATA([expout-base], [dnl
identifier define space
-macro_id !macro1
+macro_name !macro1
punct (
punct )
spaces
])
PSPP_CHECK_SEGMENT([-a])
AT_CLEANUP
+\f
+# This checks for regression against bug #61253. To see the read of
+# uninitialized data, run with valgrind. The test will pass either
+# way. (The bug report has a more complicated crashing case.)
+AT_SETUP([input ends in carriage return])
+printf '\r' > input
+AT_DATA([expout-base], [dnl
+separate_commands
+spaces \r
+end
+])
+PSPP_CHECK_SEGMENT
+AT_CLEANUP