more updates
This commit is contained in:
parent
fe02cd5957
commit
1190a7aa7a
3 changed files with 21 additions and 0 deletions
|
|
@ -61,6 +61,7 @@ struct Message
|
||||||
uchar tagposted;
|
uchar tagposted;
|
||||||
uchar recursed;
|
uchar recursed;
|
||||||
uchar level;
|
uchar level;
|
||||||
|
uint replywinid;
|
||||||
|
|
||||||
/* header info */
|
/* header info */
|
||||||
char *from;
|
char *from;
|
||||||
|
|
|
||||||
|
|
@ -347,6 +347,11 @@ readfile(char *dir, char *name, int *np)
|
||||||
free(d);
|
free(d);
|
||||||
data = emalloc(len+1);
|
data = emalloc(len+1);
|
||||||
len = fsreadn(fid, data, len);
|
len = fsreadn(fid, data, len);
|
||||||
|
if(len <= 0){
|
||||||
|
fsclose(fid);
|
||||||
|
free(data);
|
||||||
|
return nil;
|
||||||
|
}
|
||||||
fsclose(fid);
|
fsclose(fid);
|
||||||
if(np != nil)
|
if(np != nil)
|
||||||
*np = len;
|
*np = len;
|
||||||
|
|
|
||||||
|
|
@ -70,12 +70,25 @@ quote(Message *m, CFid *fid, char *dir, char *quotetext)
|
||||||
void
|
void
|
||||||
mkreply(Message *m, char *label, char *to, Plumbattr *attr, char *quotetext)
|
mkreply(Message *m, char *label, char *to, Plumbattr *attr, char *quotetext)
|
||||||
{
|
{
|
||||||
|
char buf[100];
|
||||||
|
CFid *fd;
|
||||||
Message *r;
|
Message *r;
|
||||||
char *dir, *t;
|
char *dir, *t;
|
||||||
int quotereply;
|
int quotereply;
|
||||||
Plumbattr *a;
|
Plumbattr *a;
|
||||||
|
|
||||||
quotereply = (label[0] == 'Q');
|
quotereply = (label[0] == 'Q');
|
||||||
|
|
||||||
|
if(quotereply && m && m->replywinid > 0){
|
||||||
|
snprint(buf, sizeof buf, "%d/body", m->replywinid);
|
||||||
|
if((fd = fsopen(acmefs, buf, OWRITE)) != nil){
|
||||||
|
dir = estrstrdup(mbox.name, m->name);
|
||||||
|
quote(m, fd, dir, quotetext);
|
||||||
|
free(dir);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
r = emalloc(sizeof(Message));
|
r = emalloc(sizeof(Message));
|
||||||
r->isreply = 1;
|
r->isreply = 1;
|
||||||
if(m != nil)
|
if(m != nil)
|
||||||
|
|
@ -90,6 +103,8 @@ mkreply(Message *m, char *label, char *to, Plumbattr *attr, char *quotetext)
|
||||||
r->name = emalloc(strlen(mbox.name)+strlen(label)+10);
|
r->name = emalloc(strlen(mbox.name)+strlen(label)+10);
|
||||||
sprint(r->name, "%s%s%d", mbox.name, label, ++replyid);
|
sprint(r->name, "%s%s%d", mbox.name, label, ++replyid);
|
||||||
r->w = newwindow();
|
r->w = newwindow();
|
||||||
|
if(m)
|
||||||
|
m->replywinid = r->w->id;
|
||||||
winname(r->w, r->name);
|
winname(r->w, r->name);
|
||||||
ctlprint(r->w->ctl, "cleartag");
|
ctlprint(r->w->ctl, "cleartag");
|
||||||
wintagwrite(r->w, "fmt Look Post Undo", 4+5+5+4);
|
wintagwrite(r->w, "fmt Look Post Undo", 4+5+5+4);
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue