aboutsummaryrefslogtreecommitdiffhomepage
path: root/lib/opener.tes
blob: 6de62376083cb8f21469b0b69f82f8b9b14ce996 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
!*$
 * M[opener] -- Open a number of files from the current buffer
 *
 * 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.
 *!
@[opener]{
  <.-Z;
    !* --/-S stops processing of special arguments *!
    0A--"= 1A--"= 2A-10"=
      L <:L;R 0X.f [* EBN.f ]* L> 1;
    '''

    1U.l 1U.c
    !* +line[,column] *!
    0A-+"=
      C 0A"D \U.l <0A"DC|1;'> 0A-,"= C \U.c ' 0A-10"=L' '
    '

    !* filename:line[:column][:] *!
    LR -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
    '

    0X.f [*
      EBN.f Q.c-1,Q.l-1ESFINDCOLUMN:J
    ]*
  L>
}