mothra: cleanup url handling

This commit is contained in:
cinap_lenrek 2015-08-01 13:06:24 +02:00
parent d6fb42f496
commit b408b386e1
3 changed files with 9 additions and 7 deletions

View file

@ -25,24 +25,25 @@ char *pixcmd[]={
void getimage(Rtext *t, Www *w){ void getimage(Rtext *t, Www *w){
int pfd[2]; int pfd[2];
Action *ap; Action *ap;
Url url; Url *url;
Image *b; Image *b;
int fd, typ; int fd, typ;
char err[512], buf[80], *s; char err[512], buf[80], *s;
Pix *p; Pix *p;
ap=t->user; ap=t->user;
seturl(&url, ap->image, w->url->fullname); url=emalloc(sizeof(Url));
seturl(url, ap->image, w->url->fullname);
for(p=w->pix;p!=nil; p=p->next) for(p=w->pix;p!=nil; p=p->next)
if(strcmp(ap->image, p->name)==0 && ap->width==p->width && ap->height==p->height){ if(strcmp(ap->image, p->name)==0 && ap->width==p->width && ap->height==p->height){
t->b = p->b; t->b = p->b;
w->changed=1; w->changed=1;
return; return;
} }
fd=urlget(&url, -1); fd=urlget(url, -1);
if(fd==-1){ if(fd==-1){
Err: Err:
snprint(err, sizeof(err), "[img: %s: %r]", url.reltext); snprint(err, sizeof(err), "[img: %s: %r]", urlstr(url));
free(t->text); free(t->text);
t->text=strdup(err); t->text=strdup(err);
w->changed=1; w->changed=1;
@ -82,8 +83,7 @@ void getimage(Rtext *t, Www *w){
t->b=b; t->b=b;
w->changed=1; w->changed=1;
Out: Out:
free(url.basename); freeurl(url);
free(url.reltext);
} }
void getpix(Rtext *t, Www *w){ void getpix(Rtext *t, Www *w){

View file

@ -991,7 +991,7 @@ void geturl(char *urlname, int post, int plumb, int map){
selurl(urlname); selurl(urlname);
selection->map=map; selection->map=map;
message("getting %s", selection->reltext); message("getting %s", urlstr(selection));
esetcursor(&patientcurs); esetcursor(&patientcurs);
for(;;){ for(;;){
if((fd=urlget(selection, post)) < 0){ if((fd=urlget(selection, post)) < 0){

View file

@ -82,6 +82,7 @@ void plrdhtml(char *, int, Www *);
void plrdplain(char *, int, Www *); void plrdplain(char *, int, Www *);
void htmlerror(char *, int, char *, ...); /* user-supplied routine */ void htmlerror(char *, int, char *, ...); /* user-supplied routine */
void seturl(Url *, char *, char *); void seturl(Url *, char *, char *);
void freeurl(Url *);
Url *selurl(char *); Url *selurl(char *);
void getpix(Rtext *, Www *); void getpix(Rtext *, Www *);
ulong countpix(void *p); ulong countpix(void *p);
@ -99,6 +100,7 @@ int filetype(int, char *, int);
int snooptype(int); int snooptype(int);
void mkfieldpanel(Rtext *); void mkfieldpanel(Rtext *);
void geturl(char *, int, int, int); void geturl(char *, int, int, int);
char *urlstr(Url *);
int urlpost(Url*, char*); int urlpost(Url*, char*);
int urlget(Url*, int); int urlget(Url*, int);
int urlresolve(Url *); int urlresolve(Url *);