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);

Reply via email to