plan9fox/sys/src/cmd/mothra/mothra.h
Ori Bernstein aacf368c6d mothra: read the content-type header over file(1) to determine type (thanks james palmer)
this fixes some pages being classified as xml by file(1),
meaning they would be rendered as plain text rather than as html.
2021-06-12 14:32:16 +00:00

110 lines
2.2 KiB
C

enum{
NWWW=64, /* # of pages we hold in the log */
NXPROC=5, /* # of parallel procs loading the pix */
NPIXMB=8, /* megabytes of image data to keep arround */
NNAME=512,
NLINE=256,
NAUTH=128,
NTITLE=81, /* length of title (including nul at end) */
NLABEL=50, /* length of option name in forms */
NREDIR=10, /* # of redirections we'll tolerate before declaring a loop */
};
typedef struct Action Action;
typedef struct Url Url;
typedef struct Www Www;
typedef struct Field Field;
struct Action{
char *image;
Field *field;
char *link;
char *name;
int ismap;
int width;
int height;
};
struct Url{
char *basename;
char *reltext;
char fullname[NNAME];
char tag[NNAME];
char contenttype[NNAME];
int map; /* is this an image map? */
};
struct Www{
Url *url;
void *pix;
void *form;
char title[NTITLE];
Rtext *text;
int yoffs;
int gottitle; /* title got drawn */
int changed; /* reader sets this every time it updates page */
int finished; /* reader sets this when done */
int alldone; /* page will not change further -- used to adjust cursor */
};
enum{
PLAIN,
HTML,
GIF,
JPEG,
PNG,
BMP,
ICO,
PAGE,
};
/*
* authentication types
*/
enum{
ANONE,
ABASIC,
};
Image *hrule, *bullet, *linespace;
int chrwidth; /* nominal width of characters in font */
Panel *text; /* Panel displaying the current www page */
int debug; /* command line flag */
/*
* HTTP methods
*/
enum{
GET=1,
POST,
};
void finish(Www *w);
void plrdhtml(char *, int, Www *, int);
void plrdplain(char *, int, Www *);
void htmlerror(char *, int, char *, ...); /* user-supplied routine */
void seturl(Url *, char *, char *);
void freeurl(Url *);
Url *selurl(char *);
void getpix(Rtext *, Www *);
ulong countpix(void *p);
void freepix(void *p);
void dupfds(int fd, ...);
int pipeline(int fd, char *fmt, ...);
void getfonts(void);
void *emalloc(int);
void nstrcpy(char *to, char *from, int len);
void freeform(void *p);
int Ufmt(Fmt *f);
#pragma varargck type "U" char*
void message(char *, ...);
int filetype(int, char *, int);
int mimetotype(char *);
int snooptype(int);
void mkfieldpanel(Rtext *);
void geturl(char *, int, int, int);
char *urlstr(Url *);
int urlpost(Url*, char*);
int urlget(Url*, int);
int urlresolve(Url *);
Mouse mouse;