diff options
author | Petter Rodhelind <petter.rodhelind@gmail.com> | 2017-05-11 08:04:35 +0200 |
---|---|---|
committer | Petter Rodhelind <petter.rodhelind@gmail.com> | 2017-05-11 08:04:35 +0200 |
commit | 31f188eef9af8a8ca3a7c493f18fcc74c00861a3 (patch) | |
tree | 93b23c6ff38198dc9431197b72e67160bc735292 /src/cmd/acme/exec.c | |
parent | bfd823b33025c7b5958a9d815f7762f83bc34a71 (diff) | |
download | plan9port-31f188eef9af8a8ca3a7c493f18fcc74c00861a3.tar.gz plan9port-31f188eef9af8a8ca3a7c493f18fcc74c00861a3.tar.bz2 plan9port-31f188eef9af8a8ca3a7c493f18fcc74c00861a3.zip |
Add support for tab expansion (because everyone else is stupid and I am forced to follow along)
Tab expansion inserts spaces instead of TAB character. Number of spaces
is dependent upon your current tab stop setting, which can be changed by
running "Tab n".
As of now, it's not possible to turn it on and off during runtime. You
can however see whether it's compiled or not by executing the command
"Tabexpand". The console will show either 1 or 0. This will be taken
care of in a later commit.
Diffstat (limited to 'src/cmd/acme/exec.c')
-rw-r--r-- | src/cmd/acme/exec.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/cmd/acme/exec.c b/src/cmd/acme/exec.c index 2a259533..e0dcb191 100644 --- a/src/cmd/acme/exec.c +++ b/src/cmd/acme/exec.c @@ -53,6 +53,7 @@ void putall(Text*, Text*, Text*, int, int, Rune*, int); void sendx(Text*, Text*, Text*, int, int, Rune*, int); void sort(Text*, Text*, Text*, int, int, Rune*, int); void tab(Text*, Text*, Text*, int, int, Rune*, int); +void tabexpand(Text*, Text*, Text*, int, int, Rune*, int); void zeroxx(Text*, Text*, Text*, int, int, Rune*, int); typedef struct Exectab Exectab; @@ -92,6 +93,7 @@ static Rune LSend[] = { 'S', 'e', 'n', 'd', 0 }; static Rune LSnarf[] = { 'S', 'n', 'a', 'r', 'f', 0 }; static Rune LSort[] = { 'S', 'o', 'r', 't', 0 }; static Rune LTab[] = { 'T', 'a', 'b', 0 }; +static Rune LTabexpand[] = { 'T', 'a', 'b', 'e', 'x', 'p', 'a', 'n', 'd', 0 }; static Rune LUndo[] = { 'U', 'n', 'd', 'o', 0 }; static Rune LZerox[] = { 'Z', 'e', 'r', 'o', 'x', 0 }; @@ -123,6 +125,7 @@ Exectab exectab[] = { { LSnarf, cut, FALSE, TRUE, FALSE }, { LSort, sort, FALSE, XXX, XXX }, { LTab, tab, FALSE, XXX, XXX }, + { LTabexpand, tabexpand, FALSE, XXX, XXX }, { LUndo, undo, FALSE, TRUE, XXX }, { LZerox, zeroxx, FALSE, XXX, XXX }, { nil, 0, 0, 0, 0 } @@ -1359,6 +1362,22 @@ tab(Text *et, Text *_0, Text *argt, int _1, int _2, Rune *arg, int narg) } void +tabexpand(Text *et, Text *_0, Text *argt, int _1, int _2, Rune *arg, int narg) +{ + Window *w; + + USED(_0); + USED(_1); + USED(_2); + + if(et==nil || et->w==nil) + return; + w = et->w; + + printf("tabexpand: %d\n", w->tabexpand); +} + +void runproc(void *argvp) { /* args: */ |