aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/opener.tes
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2025-08-06 16:46:37 +0300
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2025-08-06 16:46:37 +0300
commit280cb9da39fc7b5357f6071926d511394f6d0152 (patch)
treecdca852694fd3e4cc9293c374d16ac69d9be01ea /lib/opener.tes
parentc5510d684e4879ab9a5295b4a1981888a4268627 (diff)
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.
Diffstat (limited to 'lib/opener.tes')
-rw-r--r--lib/opener.tes30
1 files changed, 14 insertions, 16 deletions
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
+ >
+]* }