12 tline(Biobuf *bp, char **str, char **args, int max)
18 s = Brdstr(bp, '\n', 10);
22 for(p = s; *p != 0; p++)
35 rc = tokenize(s, args, max);
36 }while(rc == 0 && (free(s), 1));
49 return (Ident){-1, -1, (Qid){0, 0, 0}};
50 i = (Ident){d->type, d->dev, d->qid};
61 identcmp(Ident *a, Ident *b)
63 return a->type != b->type || a->dev != b->dev || a->path != b->path;
67 filcmp(File *f, File *g)
69 if(f->type != g->type)
70 return f->type - g->type;
71 if(f->name == nil || g->name == nil)
73 return strcmp(f->name, g->name);
77 filinit(File *f, char *t)
81 f->wins.wnext = f->wins.wprev = &f->wins;
83 for(g = flist.next; g != &flist && filcmp(g, f) < 0; g = g->next)
95 case PAL: putpal((Pal *) f); break;
96 case SPR: putspr((Spr *) f); break;
98 f->prev->next = f->next;
99 f->next->prev = f->prev;
104 static char phasetitle[] = "??? phase error ???";
110 return utflen(f->name) + 4;
111 return strlen(phasetitle);
115 filtitle(File *f, char *s, char *e)
118 return strecpy(s, e, phasetitle);
119 *s++ = f->change ? '\'' : ' ';
120 if(f->wins.wnext != &f->wins)
121 if(f->wins.wnext->wnext != &f->wins)
127 *s++ = actf != nil && f == actf->f ? '.' : ' ';
129 return strecpy(s, e, f->name);
133 winwrite(Win *w, char *f)
141 writepal((Pal *) w->f, f);
144 writespr((Spr *) w->f, f);
155 for(w = f->wins.wnext; w != &f->wins; w = w->wnext)