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. --- lib/opener.tes | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) (limited to 'lib/opener.tes') diff --git a/lib/opener.tes b/lib/opener.tes index 98ce631..c0183c8 100644 --- a/lib/opener.tes +++ b/lib/opener.tes @@ -1,40 +1,38 @@ !*$ - * M[opener] -- Open a number of files from the current buffer + * M[opener] -- Open files, specified on the command line * - * This is usually the unnamed buffer as initialized from the command line. * It supports both the +line[,column] and filename:line[:column] syntaxes. * Since this may make it hard to open files with certain file names, all * filenames after "--" are interpreted verbatim. + * It does not change the current buffer. *! -@[opener]{ - <.-Z; +@[opener]{ [* + <%.i :Q[\.i]:; EQ[\.i] !* --/-S stops processing of special arguments *! - 0A--"= 1A--"= 2A-10"= - L <:L;R 0X.f [* EBN.f ]* L> 1; + 0A--"= 1A--"= 2A"< + <%.i :Q[\.i]:; EBN[\.i]> 1; ''' 1U.l 1U.c !* +line[,column] *! 0A-+"= C 0A"D \U.l <0A"DC|1;'> 0A-,"= C \U.c <0A"DC|1;'> ' - 0A-10"= 2LR Oopen ' - ' ' + 0A"< %.i Oopen ' + '' !* filename:line[:column][:] *! - LR -A-:"=R' + ZJ -A-:"=R' 0U.p <-%.pA"D|1;'> Q.pA-:"= Q.p+1C \U.a R 0U.p <-%.pA"D|1;'> Q.pA-:"= Q.p+1C \U.l Q.aU.c R | Q.aU.l 1U.c ' - | - LR + !* FIXME: modifies the i *! + .,ZD ' !open! - 0X.f [* - EBN.f Q.c-1,Q.l-1ESFINDCOLUMN:J - ]* - L> -} + EBN[\.i] Q.c-1,Q.l-1ESFINDCOLUMN:J + > +]* } -- cgit v1.2.3