Here is a patch for p9p acme. It adds an option -t which gives
single-line tags as in Plan 9 acme.

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 Sun Apr 07 14:27:42 2013 +0200
@@ -113,6 +113,9 @@
case 'r':
swapscrollbuttons = TRUE;
break;
+ case 't':
+ neverexpandtag = TRUE;
+ break;
case 'W':
winsize = ARGF();
if(winsize == nil)
@@ -120,7 +123,7 @@
break;
default:
Usage:
- fprint(2, "usage: acme -a -c ncol -f fontname -F fixedwidthfontname -l 
loadfile -W winsize\n");
+ fprint(2, "usage: acme -a -c ncol -f fontname -F fixedwidthfontname -l 
loadfile -t -W winsize\n");
threadexitsall("usage");
}ARGEND

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 Sun Apr 07 14:27:42 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 Sun Apr 07 14:27:42 2013 +0200
@@ -289,7 +289,7 @@
/* Expand tag if necessary */
if(t->what == Tag){
t->w->tagsafe = FALSE;
- if(r == '\n')
+ if(r == '\n' && neverexpandtag == FALSE)
t->w->tagexpand = TRUE;
winresize(w, w->r, TRUE, TRUE);
}
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 Sun Apr 07 14:27:42 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,7 +760,7 @@

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);
}
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 Sun Apr 07 14:27:42 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);

Reply via email to