58#define APR_WANT_STRFUNC
73#define IMAP_MAGIC_TYPE "application/x-httpd-imap"
78#define IMAP_MENU_DEFAULT "formatted"
79#define IMAP_DEFAULT_DEFAULT "nocontent"
80#define IMAP_BASE_DEFAULT "map"
82module AP_MODULE_DECLARE_DATA imagemap_module;
110 :
base->imap_default;
121 "the type of menu generated: none, formatted, semiformatted, "
125 "the action taken if no match: error, nocontent, referer, "
129 "the base for all URL's: map, referer, URL (or start of)"),
171#define fmin(a,b) (((a)>(b))?(b):(a))
172#define fmax(a,b) (((a)>(b))?(a):(b))
191 if ((
y1 >=
y) != (
y2 >=
y)) {
378 "invalid base directive in map file: %s",
r->
uri);
389 if (
value[0] ==
'/') {
438 "invalid directory name in map file: %s",
r->
uri);
468 if (redirect && *redirect) {
482 "</title>\n</head><body>\n",
NULL);
487 "</h1>\n<hr />\n\n",
NULL);
531 "</a></pre>\n",
NULL);
535 "</a></pre>\n",
NULL);
555 "</a></pre>\n",
NULL);
559 "</a></pre>\n",
NULL);
578 const char *redirect;
602 imap_default =
icr->imap_default
651 if (
input[0] ==
'#') {
852 "map file %s, line %d syntax error: requires at "
853 "least two fields",
r->
uri,
imap->line_number);
861 ap_rputs(
"\n\n[an internal server error occured]\n",
r);
Symbol export macros and hook functions.
APR general purpose library routines.
apr_size_t const unsigned char unsigned int unsigned int d
APR Standard Headers Support.
#define AP_INIT_TAKE1(directive, func, mconfig, where, help)
#define ap_get_module_config(v, m)
int ap_cfg_closefile(ap_configfile_t *cfp)
apr_status_t ap_pcfg_openfile(ap_configfile_t **ret_cfg, apr_pool_t *p, const char *name)
#define AP_DECLARE_MODULE(foo)
void ap_hook_handler(ap_HOOK_handler_t *pf, const char *const *aszPre, const char *const *aszSucc, int nOrder)
const char * ap_set_string_slot(cmd_parms *cmd, void *struct_ptr, const char *arg)
apr_status_t ap_cfg_getline(char *buf, apr_size_t bufsize, ap_configfile_t *cfp)
char * ap_construct_url(apr_pool_t *p, const char *uri, request_rec *r)
int ap_rvputs(request_rec *r,...)
static APR_INLINE int ap_rputs(const char *str, request_rec *r)
void ap_set_content_type_ex(request_rec *r, const char *ct, int trusted)
const char apr_ssize_t slen
apr_text_header const char * text
#define HTTP_INTERNAL_SERVER_ERROR
#define HTTP_MOVED_TEMPORARILY
#define STANDARD20_MODULE_STUFF
#define ap_escape_uri(ppool, path)
#define ap_strchr_c(s, c)
#define ap_escape_html(p, s)
int strcasecmp(const char *a, const char *b)
int strncasecmp(const char *a, const char *b, size_t n)
const char const char *const * args
apr_size_t apr_size_t max
static const char *const directory
mod_core private header file
static int imap_handler(request_rec *r)
static void * merge_imap_dir_configs(apr_pool_t *p, void *basev, void *addv)
static const char * imap_url(request_rec *r, const char *base, const char *value)
static double get_x_coord(const char *args)
static int imap_handler_internal(request_rec *r)
#define IMAP_BASE_DEFAULT
#define IMAP_DEFAULT_DEFAULT
static void * create_imap_dir_config(apr_pool_t *p, char *dummy)
static double get_y_coord(const char *args)
static int is_closer(const double point[2], double coords[100][2], double *closest)
static void menu_blank(request_rec *r, char *menu)
#define IMAP_MENU_DEFAULT
static void menu_comment(request_rec *r, char *menu, char *comment)
static int pointincircle(const double point[2], double coords[100][2])
static void register_hooks(apr_pool_t *p)
static void menu_footer(request_rec *r)
static void menu_header(request_rec *r, char *menu)
static int pointinrect(const double point[2], double coords[100][2])
static int imap_reply(request_rec *r, const char *redirect)
static int pointinpoly(const double point[2], double pgon[100][2])
static void menu_default(request_rec *r, const char *menu, const char *href, const char *text)
static void read_quoted(char **string, char **quoted_part)
static const command_rec imap_cmds[]
static void menu_directive(request_rec *r, const char *menu, const char *href, const char *text)
A structure that represents the current request.
struct ap_conf_vector_t * per_dir_config
apr_table_t * headers_out