Annotation of researchv9/jerq/src/sam/term/draw.c, revision 1.1.1.1

1.1       root        1: #include "frame.h"
                      2: 
                      3: redraw(f, pt)
                      4:        Frame *f;
                      5:        Point pt;
                      6: {
                      7:        register Box *b;
                      8:        int nb;
                      9:        for(nb=0,b=f->box; nb<f->nbox; nb++, b++){
                     10:                cklinewrap(f, &pt, b);
                     11:                if(b->len>=0)
                     12:                        string(f->font, b->ptr, B, pt, F_XOR);
                     13:                pt.x+=b->wid;
                     14:        }
                     15: }
                     16: Point
                     17: draw(f, pt)
                     18:        Frame *f;
                     19:        Point pt;
                     20: {
                     21:        register Box *b;
                     22:        register nb, n;
                     23:        for(b=f->box,nb=0; nb<f->nbox; nb++, b++){
                     24:                cklinewrap0(f, &pt, b);
                     25:                if(pt.y==f->r.corner.y){
                     26:                        f->nchars-=frstrlen(f, nb);
                     27:                        delbox(f, nb, f->nbox-1);
                     28:                        break;
                     29:                }
                     30:                if(b->len>0){
                     31:                        n=canfit(f, pt, b);
                     32:                        if(n==0)
                     33:                                panic("draw: canfit==0");
                     34:                        if(n!=b->len){
                     35:                                splitbox(f, nb, n);
                     36:                                b=&f->box[nb];
                     37:                        }
                     38:                        pt.x+=b->wid;
                     39:                }else{
                     40:                        if(b->bc=='\n')
                     41:                                pt.x=f->left, pt.y+=f->font->height;
                     42:                        else
                     43:                                pt.x+=newwid(f, pt, b);
                     44:                }
                     45:        }
                     46:        return pt;
                     47: }
                     48: frstrlen(f, nb)
                     49:        register Frame *f;
                     50:        register nb;
                     51: {
                     52:        register n;
                     53:        for(n=0; nb<f->nbox; nb++)
                     54:                n+=LEN(&f->box[nb]);
                     55:        return n;
                     56: }

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.