URI: 
       tbetter tag handling in dollars - plan9port - [fork] Plan 9 from user space
  HTML git clone git://src.adamsgaard.dk/plan9port
   DIR Log
   DIR Files
   DIR Refs
   DIR README
   DIR LICENSE
       ---
   DIR commit 3b33df997f7f6a7ed9ffe39908ded3861b1dc0d4
   DIR parent f334d7563298445ff07b1317a98150ed393769c0
  HTML Author: rsc <devnull@localhost>
       Date:   Fri, 18 Mar 2005 19:33:32 +0000
       
       better tag handling in dollars
       
       Diffstat:
         M src/cmd/acme/wind.c                 |      13 +++++++++++++
       
       1 file changed, 13 insertions(+), 0 deletions(-)
       ---
   DIR diff --git a/src/cmd/acme/wind.c b/src/cmd/acme/wind.c
       t@@ -349,13 +349,26 @@ winsettag1(Window *w)
                runemove(tagname, w->body.file->name, ntagname);
                abbrevenv(&tagname, &ntagname);
        
       +        /*
       +         * XXX Why is this here instead of letting the code
       +         * down below do the work?
       +         */
                if(runeeq(old, i, tagname, ntagname) == FALSE){
       +                q0 = w->tag.q0;
       +                q1 = w->tag.q1;
                        textdelete(&w->tag, 0, i, TRUE);
                        textinsert(&w->tag, 0, tagname, ntagname, TRUE);
                        free(old);
                        old = runemalloc(w->tag.file->b.nc+1);
                        bufread(&w->tag.file->b, 0, old, w->tag.file->b.nc);
                        old[w->tag.file->b.nc] = '\0';
       +                if(q0 >= i){
       +                        /*
       +                         * XXX common case - typing at end of name
       +                         */
       +                        w->tag.q0 = q0+ntagname-i;
       +                        w->tag.q1 = q1+ntagname-i;
       +                }
                }
                
                /* compute the text for the whole tag, replacing current only if it differs */