Here is the patch, which I have submitted to codereview.
It adds an option -t to p9p acme, which restores the Plan 9 tag style.
Mark.
diff -r ff3404f79037 src/cmd/acme/acme.c
--- a/src/cmd/acme/acme.c Sat Jan 19 10:05:12 2013 +0100
+++ b/src/cmd/acme/acme.c Fri Apr 05 22:52:55 2013 +0200
@@ -113,6 +113,9 @@
case 'r':
swapscrollbuttons = TRUE;
break;
+ case 't':
+ neverexpandtag = TRUE;
+ break;
case 'W':
winsize = ARGF();
if(winsize == nil)
diff -r ff3404f79037 src/cmd/acme/dat.h
--- a/src/cmd/acme/dat.h Sat Jan 19 10:05:12 2013 +0100
+++ b/src/cmd/acme/dat.h Fri Apr 05 22:52:55 2013 +0200
@@ -548,6 +548,7 @@
int globalautoindent;
int dodollarsigns;
char* mtpt;
+int neverexpandtag;
enum
{
diff -r ff3404f79037 src/cmd/acme/rows.c
--- a/src/cmd/acme/rows.c Sat Jan 19 10:05:12 2013 +0100
+++ b/src/cmd/acme/rows.c Fri Apr 05 22:52:55 2013 +0200
@@ -289,9 +289,9 @@
/* Expand tag if necessary */
if(t->what == Tag){
t->w->tagsafe = FALSE;
- if(r == '\n')
- t->w->tagexpand = TRUE;
- winresize(w, w->r, TRUE, TRUE);
+ if(r == '\n' && neverexpandtag == FALSE)
+ t->w->tagexpand = TRUE;
+ winresize(w, w->r, TRUE, TRUE);
}
winunlock(w);
}
diff -r ff3404f79037 src/cmd/acme/text.c
--- a/src/cmd/acme/text.c Sat Jan 19 10:05:12 2013 +0100
+++ b/src/cmd/acme/text.c Fri Apr 05 22:52:55 2013 +0200
@@ -662,8 +662,12 @@
Rune *rp;
Text *u;
- if(t->what!=Body && t->what!=Tag && r=='\n')
- return;
+ if(t->what!=Body && r=='\n'){
+ if(t->what!=Tag)
+ return;
+ if(neverexpandtag == TRUE)
+ return;
+ }
if(t->what == Tag)
t->w->tagsafe = FALSE;
@@ -756,9 +760,9 @@
Tagdown:
/* expand tag to show all text */
- if(!t->w->tagexpand){
+ if(neverexpandtag == FALSE){
t->w->tagexpand = TRUE;
- winresize(t->w, t->w->r, FALSE, TRUE);
+ winresize(t->w, t->w->r, FALSE, TRUE);
}
return;
diff -r ff3404f79037 src/cmd/acme/wind.c
--- a/src/cmd/acme/wind.c Sat Jan 19 10:05:12 2013 +0100
+++ b/src/cmd/acme/wind.c Fri Apr 05 22:52:55 2013 +0200
@@ -24,7 +24,8 @@
w->tag.w = w;
w->taglines = 1;
- w->tagexpand = TRUE;
+ if(neverexpandtag == FALSE)
+ w->tagexpand = TRUE;
w->body.w = w;
w->id = ++winid;
incref(&w->ref);