From 280cb9da39fc7b5357f6071926d511394f6d0152 Mon Sep 17 00:00:00 2001 From: Robin Haberkorn Date: Wed, 6 Aug 2025 16:46:37 +0300 Subject: command-line arguments are no longer passed via the unnamed buffer, but via special Q-registers ^Ax * The unnamed buffer is also used for reading from --stdin, so you couldn't practically combine --stdin with passing command-line arguments to macros. * The old approach of passing command-line arguments via lines in the unnamed buffer was flawed anyway as it wouldn't work with filenames containing LF. This is just a very ancient feature, written when there weren't even long Q-reg names in SciTECO. * You can now e.g. pipe into SciTECO and edit what was read interactively, e.g. `dmesg | sciteco -i`. You can practically use SciTECO as a pager. * htbl.tes is now a command-line filter (uses -qio). * grosciteco.tes reads Troff intermediate code from stdin, so we no longer need "*.intermediate" temporary files. * added a getopt.tes test case to the testsuite. * This change unfortunately breaks most macros accepting command-line arguments, even if they used getopt.tes. It also requires updating ~/.teco_ini - see fallback.teco_ini. --- tests/testsuite.at | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) (limited to 'tests') diff --git a/tests/testsuite.at b/tests/testsuite.at index e65cc1c..3a2fc2e 100644 --- a/tests/testsuite.at +++ b/tests/testsuite.at @@ -420,14 +420,23 @@ AT_CLEANUP AT_BANNER([Standard library]) +AT_SETUP([Option parser]) +AT_CHECK([[$SCITECO -e "@EI'^EQ[\$SCITECOPATH]/getopt.tes' @^U[optstring]/XY/ M[getopt]-3\"N(0/0)' \ + Q[getopt.X]+1\"N(0/0)' :Q[^A3]-2\"N(0/0)' :Q[^A4]-6\"N(0/0)'" \ + -- -X -- -Y foobar]], 0, ignore, ignore) +AT_CHECK([[$SCITECO -e "@EI'^EQ[\$SCITECOPATH]/getopt.tes' @^U[optstring]/F:z::X/ M[getopt]-4\"N(0/0)' \ + Q[getopt.X]+1\"N(0/0)' :Q[getopt.F]-8\"N(0/0)' :Q[getopt.z]\"N(0/0)'" \ + -- -X -Ffilename -z]], 0, ignore, ignore) +AT_CLEANUP + AT_SETUP([Command line opener]) AT_DATA([data.123], [0123456789 9876543210 ]) -AT_CHECK([[$SCITECO -e "@EI'^EQ[\$SCITECOPATH]/opener.tes' M[opener] -EF .-13\"N(0/0)'" +2,3 data.123]], 0, ignore, ignore) -AT_CHECK([[$SCITECO -e "@EI'^EQ[\$SCITECOPATH]/opener.tes' M[opener] -EF .-11\"N(0/0)'" data.123:2]], 0, ignore, ignore) +AT_CHECK([[$SCITECO -e "@EI'^EQ[\$SCITECOPATH]/opener.tes' M[opener] EF .-13\"N(0/0)'" +2,3 data.123]], 0, ignore, ignore) +AT_CHECK([[$SCITECO -e "@EI'^EQ[\$SCITECOPATH]/opener.tes' M[opener] EF .-11\"N(0/0)'" data.123:2]], 0, ignore, ignore) # `-S` stops processing of special arguments -AT_CHECK([[$SCITECO -e "@EI'^EQ[\$SCITECOPATH]/opener.tes' M[opener] -EF EJ-2\"N(0/0)'" -S +1 data.123]], 0, ignore, ignore) +AT_CHECK([[$SCITECO -e "@EI'^EQ[\$SCITECOPATH]/opener.tes' M[opener] EF EJ-2\"N(0/0)'" -S +1 data.123]], 0, ignore, ignore) AT_CLEANUP AT_BANNER([Regression Tests]) -- cgit v1.2.3