aboutsummaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-02 00:06:28 +0100
committerRobin Haberkorn <robin.haberkorn@googlemail.com>2014-11-02 00:06:28 +0100
commita395c9df173b53e095f1a20d6bc583063cdb60c7 (patch)
treebbfc9911b5ad561f0d35c6bf475520a4c492eb55
parent06d0bac8006889749fbf03efd5200ae68818b576 (diff)
downloadsciteco-a395c9df173b53e095f1a20d6bc583063cdb60c7.tar.gz
changed syntax for long Q-Register names: use [] brackets instead of {}
this breaks many existing scripts, and means you may have to rebuild SciTECO with ./configure --enable-bootstrap The syntax of SciTECO might change in backwards-incompatible until version 1.0 is released.
-rw-r--r--TODO1
-rwxr-xr-xdoc/generate-docs.tes18
-rwxr-xr-xdoc/htbl.tes80
-rw-r--r--doc/sciteco.7.template8
-rw-r--r--lib/fnkeys.tes22
-rw-r--r--lib/string.tes24
-rw-r--r--src/qregisters.cpp6
-rwxr-xr-xsrc/symbols-extract.tes4
-rw-r--r--teco.ini4
9 files changed, 83 insertions, 84 deletions
diff --git a/TODO b/TODO
index 9b200e4..5971af6 100644
--- a/TODO
+++ b/TODO
@@ -10,7 +10,6 @@ Known Bugs:
* crashes on large files: S^EM^X$ (regexp: .*)
Features:
- * Use [] for long Q-Register names instead of {}
* properly support Unicode encodings and the character-based model
* link against libncursesw if possible
* translate documents to Unicode strings
diff --git a/doc/generate-docs.tes b/doc/generate-docs.tes
index f5758e6..2d5af6a 100755
--- a/doc/generate-docs.tes
+++ b/doc/generate-docs.tes
@@ -27,12 +27,12 @@
Troff requests, escapes and tman macros may also be used.
!
-@{format_header}{
+@[format_header]{
fd--S .U.f :L"S.|Z'U.t Q.f,Q.tXa Q.f,Q.tD I

ebQ#tm I\# GENERATED FROM Q.#sc (\.#sc):
.SS Qa -a-10"N I
- ' eq.{header}
+ ' eq.[header]
j<fr

.br
@@ -44,7 +44,7 @@ j<s[MC];.u.t-s[.,q.t-1xa .-1,q.td i
.RI [ Qa ]
>
j<fr->\(->;>
-j<sMCM[|MC];.u.t <-a"C|-a-|"N1;''r> .,q.txa .,q.td eqa<fr| | ;> eq.{header}i
+j<sMCM[|MC];.u.t <-a"C|-a-|"N1;''r> .,q.txa .,q.td eqa<fr| | ;> eq.[header]i
.IR Qa
>
j<frS
@@ -57,12 +57,12 @@ j<frS
;>
j 0a-10"=d'
zj-a-10"=-d'
- ebQ#tm g.{header}i
+ ebQ#tm g.[header]i
.

}
-@{format_body}{
+@[format_body]{
i.LP
<fr
@@ -137,12 +137,12 @@ FS
! extract header !
h:fd
-"Fzj'0,.x.{header}0,.d
+"Fzj'0,.x.[header]0,.d
- eq.{header}
- :M{format_header}
+ eq.[header]
+ :M[format_header]
eq.c
- :M{format_body}
+ :M[format_body]
>
EF
Q*-1"=1;'
diff --git a/doc/htbl.tes b/doc/htbl.tes
index d8b8827..8998d79 100755
--- a/doc/htbl.tes
+++ b/doc/htbl.tes
@@ -12,66 +12,66 @@ LR 0X#in 2LR 0X#ou EBQ#in EB -EF
fs.TS.nr tbl-margin ((\n[.in]+\n[.o])*100+(6.5i/2))/6.5i-((6.5i/2)/6.5i)
.nr tbl-width 100-\n[tbl-margin]
.HTML <table class="tbl" style="margin-left:\n[tbl-margin]%";
-9u.{tab}
+9u.[tab]
l.u.fl.-1u.t i

-q.f,q.t:sbox"Sli border="1"' q.f,q.t:sallbox"Sli rules="all"' q.f,q.t:sexpand"Sli width="\n[tbl-width]%"' q.f,q.t:stab("s0au.{tab}' q.fjk-dlri> l
+q.f,q.t:sbox"Sli border="1"' q.f,q.t:sallbox"Sli rules="all"' q.f,q.t:sexpand"Sli width="\n[tbl-width]%"' q.f,q.t:stab("s0au.[tab]' q.fjk-dlri> l
-1u.{row} 1u.{col} @.r{
- .{format.\.{row}.\.{col}.align} 0U.{format.\.{row}.\.{col}.bold} 0U.{format.\.{row}.\.{col}.italic}
- 1U.{format.\.{row}.\.{col}.rowspan} 1U.{format.\.{row}.\.{col}.colspan}
+1u.[row] 1u.[col] @.r{
+ .[format.\.[row].\.[col].align] 0U.[format.\.[row].\.[col].bold] 0U.[format.\.[row].\.[col].italic]
+ 1U.[format.\.[row].\.[col].rowspan] 1U.[format.\.[row].\.[col].colspan]
} :M.r
<
-0a-L"=.{format.\.{row}.\.{col}.align}left'
-0a-C"=.{format.\.{row}.\.{col}.align}center'
-0a-R"=.{format.\.{row}.\.{col}.align}right'
-0a-B"=1U.{format.\.{row}.\.{col}.bold}'
-0a-I"=1U.{format.\.{row}.\.{col}.italic}'
-0a- "=%.{col} :M.r'
-0a-,"=%.{row} 1u.{col} :M.r' 0a-10"=%.{row} 1u.{col} :M.r'
+0a-L"=.[format.\.[row].\.[col].align]left'
+0a-C"=.[format.\.[row].\.[col].align]center'
+0a-R"=.[format.\.[row].\.[col].align]right'
+0a-B"=1U.[format.\.[row].\.[col].bold]'
+0a-I"=1U.[format.\.[row].\.[col].italic]'
+0a- "=%.[col] :M.r'
+0a-,"=%.[row] 1u.[col] :M.r' 0a-10"=%.[row] 1u.[col] :M.r'
0a-."=1;'
D>
-k q.{row}u.{frows} q.{col}u.{fcols} 1u.{row} 1u.{col} .u.#bd
-<Q.{row}-Q.{frows}">
-EQ.{format.\.{row}.\.{col}.align} G.{format.\.{frows}.\.{col}.align} 1EB
-Q.{format.\.{frows}.\.{col}.bold}U.{format.\.{row}.\.{col}.bold}
-Q.{format.\.{frows}.\.{col}.italic}U.{format.\.{row}.\.{col}.italic}
-Q.{format.\.{frows}.\.{col}.rowspan}U.{format.\.{row}.\.{col}.rowspan}
-Q.{format.\.{frows}.\.{col}.colspan}U.{format.\.{row}.\.{col}.colspan} '
+k q.[row]u.[frows] q.[col]u.[fcols] 1u.[row] 1u.[col] .u.#bd
+<Q.[row]-Q.[frows]">
+EQ.[format.\.[row].\.[col].align] G.[format.\.[frows].\.[col].align] 1EB
+Q.[format.\.[frows].\.[col].bold]U.[format.\.[row].\.[col].bold]
+Q.[format.\.[frows].\.[col].italic]U.[format.\.[row].\.[col].italic]
+Q.[format.\.[frows].\.[col].rowspan]U.[format.\.[row].\.[col].rowspan]
+Q.[format.\.[frows].\.[col].colspan]U.[format.\.[row].\.[col].colspan] '
.,.+3:sT{
"S .,s
-T}.-3X.{data.\.{row}.\.{col}} C 1| .,.+2:s\^^"S
-0U.{format.\.{row}.\.{col}.rowspan}
-Q.{row}-1U.#cr <Q.{format.\.#cr.\.{col}.rowspan}">1;' -%.#cr>
-%.{format.\.#cr.\.{col}.rowspan} '
-.u.f s[U.{tab},
- q.f,.-1X.{data.\.{row}.\.{col}} 0'u.{data.\.{row}.\.{col}.block}
--a-q.{tab}"= %.{col} | %.{row} 1u.{col} .,.+4:s.TE
+T}.-3X.[data.\.[row].\.[col]] C 1| .,.+2:s\^^"S
+0U.[format.\.[row].\.[col].rowspan]
+Q.[row]-1U.#cr <Q.[format.\.#cr.\.[col].rowspan]">1;' -%.#cr>
+%.[format.\.#cr.\.[col].rowspan] '
+.u.f s[U.[tab],
+ q.f,.-1X.[data.\.[row].\.[col]] 0'u.[data.\.[row].\.[col].block]
+-a-q.[tab]"= %.[col] | %.[row] 1u.[col] .,.+4:s.TE
"S1;' '>
q.#bd,.D
-q.{row}-1u.{drows} 1u.{row}
-q.{drows}<I.HTML <tr>
+q.[row]-1u.[drows] 1u.[row]
+q.[drows]<I.HTML <tr>

-1u.{col}
-q.{fcols}<Q.{format.\.{row}.\.{col}.rowspan}">
-I.HTML <td rowspan="\.{format.\.{row}.\.{col}.rowspan}" colspan="\.{format.\.{row}.\.{col}.colspan}"
-q.{data.\.{row}.\.{col}.block}"= I align="Q.{format.\.{row}.\.{col}.align}">
-Q.{format.\.{row}.\.{col}.bold}"N I<b> '
-Q.{format.\.{row}.\.{col}.italic}"N I<i> '
-G.{data.\.{row}.\.{col}}
-Q.{format.\.{row}.\.{col}.bold}"N I</b> '
-Q.{format.\.{row}.\.{col}.italic}"N I</i> '
+1u.[col]
+q.[fcols]<Q.[format.\.[row].\.[col].rowspan]">
+I.HTML <td rowspan="\.[format.\.[row].\.[col].rowspan]" colspan="\.[format.\.[row].\.[col].colspan]"
+q.[data.\.[row].\.[col].block]"= I align="Q.[format.\.[row].\.[col].align]">
+Q.[format.\.[row].\.[col].bold]"N I<b> '
+Q.[format.\.[row].\.[col].italic]"N I<i> '
+G.[data.\.[row].\.[col]]
+Q.[format.\.[row].\.[col].bold]"N I</b> '
+Q.[format.\.[row].\.[col].italic]"N I</i> '
I</td>
 | I>
-Q.{data.\.{row}.\.{col}}
+Q.[data.\.[row].\.[col]]
.HTML </td>
 ' '
-%.{col}>
+%.[col]>
I.HTML </tr>

-%.{row}>
+%.[row]>
I.HTML </table>

>
diff --git a/doc/sciteco.7.template b/doc/sciteco.7.template
index c17e8b1..364d115 100644
--- a/doc/sciteco.7.template
+++ b/doc/sciteco.7.template
@@ -367,7 +367,7 @@ a completion, so for instance \(lq~/foo\(rq will not complete a file
in the user's home directory (tilde is not part of the file name but
tilde-expansions are performed by the shell).
\*(ST does however perform completions after string building so that
-\(lq^EQ{$HOME}/foo\(rq could be completed.
+\(lq^EQ[$HOME]/foo\(rq could be completed.
.
.
.SH ARITHMETICS AND EXPRESSIONS
@@ -703,9 +703,9 @@ otherwise to a global one.
Refers to a two character global or local Q-Register whose
name is upper-cased.
.TP
-.BI { name }
+.BI [ name ]
.TQ
-.BI .{ name }
+.BI .[ name ]
Refers to a Q-Register with an arbitrary
.IR name .
The name is \fBnot\fP upper-cased.
@@ -716,7 +716,7 @@ balanced.
The short single or double character specifications refer
to registers in the same namespace as long specifications.
For instance the specifications \(lqa\(rq and \(lqA\(rq
-are equivalent to \(lq{A}\(rq.
+are equivalent to \(lq[A]\(rq.
.
.SS Push-Down List
.
diff --git a/lib/fnkeys.tes b/lib/fnkeys.tes
index fb7678c..c40be40 100644
--- a/lib/fnkeys.tes
+++ b/lib/fnkeys.tes
@@ -15,14 +15,14 @@
}
! Function key macros !
-@{DC}{}
-@{HOME}{(-(.-(0L.))M#c}
-@{END}{(-(.-(:L"S.-1|Z'))M#c}
-@{NPAGE}{(-(.-(M#p.))M#c}
-@{PPAGE}{(-(.-(-M#p.))M#c}
-@{LEFT}{(-M#c}
-@{SLEFT}{(-(.--W.)M#c}
-@{RIGHT}{(M#c}
-@{SRIGHT}{(-(.-W.)M#c}
-@{UP}{(-(.-B.)M#c}
-@{DOWN}{(-(.-L.)M#c}
+@[DC]{}
+@[HOME]{(-(.-(0L.))M#c}
+@[END]{(-(.-(:L"S.-1|Z'))M#c}
+@[NPAGE]{(-(.-(M#p.))M#c}
+@[PPAGE]{(-(.-(-M#p.))M#c}
+@[LEFT]{(-M#c}
+@[SLEFT]{(-(.--W.)M#c}
+@[RIGHT]{(M#c}
+@[SRIGHT]{(-(.-W.)M#c}
+@[UP]{(-(.-B.)M#c}
+@[DOWN]{(-(.-L.)M#c}
diff --git a/lib/string.tes b/lib/string.tes
index 2f29f4a..93568e1 100644
--- a/lib/string.tes
+++ b/lib/string.tes
@@ -1,7 +1,7 @@
! String utility macros !
-! <pos1,pos2>M{symcasecmp} - Compare symbol at pos1 with symbol at pos2 (caseless) !
-@{symcasecmp}{
+! <pos1,pos2>M[symcasecmp] - Compare symbol at pos1 with symbol at pos2 (caseless) !
+@[symcasecmp]{
U.2U.1 -.%.1 -.%.2
@.#lo{
U.v Q.v"W a-A%.v | Q.v"CQ.v|0' '
@@ -12,8 +12,8 @@
Q.c
}
-! <i,j>M{exchange} - Exchange line at I with line at J (I < J), returning new J !
-@{exchange}{
+! <i,j>M[exchange] - Exchange line at I with line at J (I < J), returning new J !
+@[exchange]{
U.jU.i
Q.jJ X.xK
Q.iJ G.x .-Q.i%.j .-(X.xL.)%.j -K
@@ -21,25 +21,25 @@
Q.j
}
-! <i,j>M{qsort} - Sort lines beginning at I until J using Quicksort algorithm !
-@{qsort}{
+! <i,j>M[qsort] - Sort lines beginning at I until J using Quicksort algorithm !
+@[qsort]{
U.rU.l
Q.l-Q.r"<
Q.lU.i Q.rJB .U.j
<
- Q.iJ <.,Q.rM{symcasecmp}-1; .-Q.r; L> .U.i
- Q.jJ <.,Q.rM{symcasecmp}:; .-Q.l-1:; B> .U.j
+ Q.iJ <.,Q.rM[symcasecmp]-1; .-Q.r; L> .U.i
+ Q.jJ <.,Q.rM[symcasecmp]:; .-Q.l-1:; B> .U.j
Q.i-Q.j;
- Q.i,Q.jM{exchange}U.j
+ Q.i,Q.jM[exchange]U.j
>
- Q.i,Q.rM{symcasecmp}"> Q.i,Q.rM{exchange}U.r '
+ Q.i,Q.rM[symcasecmp]"> Q.i,Q.rM[exchange]U.r '
- Q.l-Q.i"< Q.iJB Q.l,.M{qsort} '
- Q.i-Q.r"< Q.iJL .,Q.rM{qsort} '
+ Q.l-Q.i"< Q.iJB Q.l,.M[qsort] '
+ Q.i-Q.r"< Q.iJL .,Q.rM[qsort] '
'
}
diff --git a/src/qregisters.cpp b/src/qregisters.cpp
index f0d56a5..1a7ba34 100644
--- a/src/qregisters.cpp
+++ b/src/qregisters.cpp
@@ -375,7 +375,7 @@ MICROSTATE_START;
switch (chr) {
case '.': undo.push_var(is_local) = true; break;
case '#': set(&&StateFirstChar); break;
- case '{': set(&&StateString); break;
+ case '[': set(&&StateString); break;
default:
undo.push_str(name) = String::chrdup(g_ascii_toupper(chr));
goto done;
@@ -396,10 +396,10 @@ StateSecondChar:
StateString:
switch (chr) {
- case '{':
+ case '[':
undo.push_var(nesting)++;
break;
- case '}':
+ case ']':
if (!nesting)
goto done;
undo.push_var(nesting)--;
diff --git a/src/symbols-extract.tes b/src/symbols-extract.tes
index 2fe270c..6bd0051 100755
--- a/src/symbols-extract.tes
+++ b/src/symbols-extract.tes
@@ -1,7 +1,7 @@
#!./sciteco-minimal -m
! ./symbols-extract.tes <input file> <output file> <prefix pattern list> <array name> !
-EMQ{$SCITECOPATH}/string.tes
+EMQ[$SCITECOPATH]/string.tes
! read commandline arguments !
LR 0X#in 2LR 0X#ou 2LR 0X#pa 2LR 0X#na HK
@@ -10,7 +10,7 @@ LR 0X#in 2LR 0X#ou 2LR 0X#pa 2LR 0X#na HK
EBQ#in <S#defineS[Q#pa]; -SS :Xa> EF
! sort all defines !
-Ga ZJB 0,.M{qsort} J
+Ga ZJB 0,.M[qsort] J
! format as C/C++ array !
I/*
diff --git a/teco.ini b/teco.ini
index 85a91ff..c6b8071 100644
--- a/teco.ini
+++ b/teco.ini
@@ -1,13 +1,13 @@
! TECO.INI !
-EQ0Q{$SCITECOPATH}/lexer.tes
+EQ0Q[$SCITECOPATH]/lexer.tes
@1{
! lexer.tes calls this !
}
0,32ED
! Keyboard macros !
-EMQ{$SCITECOPATH}/fnkeys.tes
+EMQ[$SCITECOPATH]/fnkeys.tes
! Uncomment to enable default keyboard macros !
! 0,64ED !