coar 98/01/22 15:18:08
Modified: src/modules/standard mod_imap.c Log: Clean up (marginally) some longer-than-80-character lines, and do some other indenting. Revision Changes Path 1.39 +186 -106 apachen/src/modules/standard/mod_imap.c Index: mod_imap.c =================================================================== RCS file: /export/home/cvs/apachen/src/modules/standard/mod_imap.c,v retrieving revision 1.38 retrieving revision 1.39 diff -u -r1.38 -r1.39 --- mod_imap.c 1998/01/21 19:06:13 1.38 +++ mod_imap.c 1998/01/22 23:18:07 1.39 @@ -136,7 +136,8 @@ imap_conf_rec *add = (imap_conf_rec *) addv; new->imap_menu = add->imap_menu ? add->imap_menu : base->imap_menu; - new->imap_default = add->imap_default ? add->imap_default : base->imap_default; + new->imap_default = add->imap_default ? add->imap_default + : base->imap_default; new->imap_base = add->imap_base ? add->imap_base : base->imap_base; return new; @@ -215,9 +216,11 @@ p = (double *) pgon + 1; if ((y >= ty) != (*p >= ty)) { - if ((xflag0 = (pgon[numverts - 1][X] >= tx)) == (*(double *) pgon >= tx)) { - if (xflag0) + xflag0 = (pgon[numverts - 1][X] >= tx); + if (xflag0 == (*(double *) pgon >= tx)) { + if (xflag0) { crossings++; + } } else { crossings += (pgon[numverts - 1][X] - (y - ty) * @@ -232,15 +235,18 @@ if (y >= ty) { - while ((p < stop) && (*p >= ty)) + while ((p < stop) && (*p >= ty)) { p += 2; + } - if (p >= stop) + if (p >= stop) { break; - if ((xflag0 = (*(p - 3) >= tx)) == (*(p - 1) >= tx)) { + } + if ((xflag0 = (*(p - 3) >= tx)) == (*(p - 1) >= tx)) { - if (xflag0) + if (xflag0) { crossings++; + } } else { crossings += (*(p - 3) - (*(p - 2) - ty) * @@ -248,15 +254,18 @@ } } else { - while ((p < stop) && (*p < ty)) + while ((p < stop) && (*p < ty)) { p += 2; + } - if (p >= stop) + if (p >= stop) { break; + } if ((xflag0 = (*(p - 3) >= tx)) == (*(p - 1) >= tx)) { - if (xflag0) + if (xflag0) { crossings++; + } } else { crossings += (*(p - 3) - (*(p - 2) - ty) * @@ -270,21 +279,25 @@ } -static int is_closer(const double point[2], double coords[MAXVERTS][2], double *closest) +static int is_closer(const double point[2], double coords[MAXVERTS][2], + double *closest) { - double dist_squared = ((point[X] - coords[0][X]) * (point[X] - coords[0][X])) - + ((point[Y] - coords[0][Y]) * (point[Y] - coords[0][Y])); + double dist_squared = ((point[X] - coords[0][X]) + * (point[X] - coords[0][X])) + + ((point[Y] - coords[0][Y]) + * (point[Y] - coords[0][Y])); - if (point[X] < 0 || point[Y] < 0) - return (0); /* don't mess around with negative coordinates */ + if (point[X] < 0 || point[Y] < 0) { + return (0); /* don't mess around with negative coordinates */ + } if (*closest < 0 || dist_squared < *closest) { *closest = dist_squared; - return (1); /* if this is the first point or is the closest yet - set 'closest' equal to this distance^2 */ + return (1); /* if this is the first point or is the closest yet + set 'closest' equal to this distance^2 */ } - return (0); /* if it's not the first or closest */ + return (0); /* if it's not the first or closest */ } @@ -293,18 +306,23 @@ char *endptr; /* we want it non-null */ double x_coord = -1; /* -1 is returned if no coordinate is given */ - if (args == NULL) + if (args == NULL) { return (-1); /* in case we aren't passed anything */ + } - while (*args && !isdigit(*args) && *args != ',') - args++; /* jump to the first digit, but not past a comma or end */ + while (*args && !isdigit(*args) && *args != ',') { + args++; /* jump to the first digit, but not past + a comma or end */ + } x_coord = strtod(args, &endptr); - if (endptr > args) /* if a conversion was made */ + if (endptr > args) { /* if a conversion was made */ return (x_coord); + } - return (-1); /* else if no conversion was made, or if no args was given */ + return (-1); /* else if no conversion was made, + or if no args was given */ } static double get_y_coord(const char *args) @@ -313,25 +331,31 @@ char *start_of_y = NULL; double y_coord = -1; /* -1 is returned on error */ - if (args == NULL) + if (args == NULL) { return (-1); /* in case we aren't passed anything */ + } start_of_y = strchr(args, ','); /* the comma */ if (start_of_y) { - start_of_y++; /* start looking at the character after the comma */ + start_of_y++; /* start looking at the character after + the comma */ - while (*start_of_y && !isdigit(*start_of_y)) - start_of_y++; /* jump to the first digit, but not past the end */ + while (*start_of_y && !isdigit(*start_of_y)) { + start_of_y++; /* jump to the first digit, but not + past the end */ + } y_coord = strtod(start_of_y, &endptr); - if (endptr > start_of_y) + if (endptr > start_of_y) { return (y_coord); + } } - return (-1); /* if no conversion was made, or no comma was found in args */ + return (-1); /* if no conversion was made, or + no comma was found in args */ } @@ -349,8 +373,9 @@ /* assume there's no quoted part */ *quoted_part = NULL; - while (isspace(*strp)) + while (isspace(*strp)) { strp++; /* go along string until non-whitespace */ + } if (*strp == '"') { /* if that character is a double quote */ strp++; /* step over it */ @@ -385,7 +410,8 @@ } if (!strcasecmp(value, "nocontent") || !strcasecmp(value, "error")) { - return pstrdup(r->pool, value); /* these are handled elsewhere, so just copy them */ + return pstrdup(r->pool, value); /* these are handled elsewhere, + so just copy them */ } if (!strcasecmp(value, "referer")) { @@ -395,17 +421,21 @@ } else { /* XXX: This used to do *value = '\0'; ... which is totally bogus - * because it hammers the passed in value, which can be a string constant, - * or part of a config, or whatever. Total garbage. This works around - * that without changing the rest of this code much - */ - value = ""; /* if 'referer' but no referring page, null the value */ + * because it hammers the passed in value, which can be a string + * constant, or part of a config, or whatever. Total garbage. + * This works around that without changing the rest of this + * code much + */ + value = ""; /* if 'referer' but no referring page, + null the value */ } } string_pos_const = value; - while (isalpha(*string_pos_const)) - string_pos_const++; /* go along the URL from the map until a non-letter */ + while (isalpha(*string_pos_const)) { + string_pos_const++; /* go along the URL from the map + until a non-letter */ + } if (*string_pos_const == ':') { /* if letters and then a colon (like http:) */ /* it's an absolute URL, so use it! */ @@ -421,7 +451,8 @@ } /* must be a relative URL to be combined with base */ - if (strchr(base, '/') == NULL && (!strncmp(value, "../", 3) || !strcmp(value, ".."))) { + if (strchr(base, '/') == NULL && (!strncmp(value, "../", 3) + || !strcmp(value, ".."))) { aplog_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r->server, "invalid base directive in map file: %s", r->uri); return NULL; @@ -436,20 +467,23 @@ if (*string_pos == '/') { /* the first single slash */ if (value[0] == '/') { *string_pos = '\0'; - } /* if the URL from the map starts from root, end the - base URL string at the first single slash */ + } /* if the URL from the map starts from root, + end the base URL string at the first single + slash */ else { - directory = string_pos; /* save the start of the directory portion */ + directory = string_pos; /* save the start of + the directory portion */ - string_pos = strrchr(string_pos, '/'); /* now reuse string_pos */ + string_pos = strrchr(string_pos, '/'); /* now reuse + string_pos */ string_pos++; /* step over that last slash */ *string_pos = '\0'; } /* but if the map url is relative, leave the slash on the base (if there is one) */ break; } - string_pos++; /* until we get to the end of my_base without finding - a slash by itself */ + string_pos++; /* until we get to the end of my_base without + finding a slash by itself */ } while (!strncmp(value, "../", 3) || !strcmp(value, "..")) { @@ -466,14 +500,17 @@ while ((slen - clen) == 1) { - if ((string_pos = strrchr(directory, '/'))) + if ((string_pos = strrchr(directory, '/'))) { *string_pos = '\0'; + } clen = strlen(directory); - if (clen == 0) + if (clen == 0) { break; + } } - value += 2; /* jump over the '..' that we found in the value */ + value += 2; /* jump over the '..' that we found in the + value */ } else if (directory) { aplog_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r->server, @@ -481,12 +518,15 @@ return NULL; } - if (!strncmp(value, "/../", 4) || !strcmp(value, "/..")) - value++; /* step over the '/' if there are more '..' to do. - this way, we leave the starting '/' on value after - the last '..', but get rid of it otherwise */ + if (!strncmp(value, "/../", 4) || !strcmp(value, "/..")) { + value++; /* step over the '/' if there are more '..' + to do. This way, we leave the starting + '/' on value after the last '..', but get + rid of it otherwise */ + } - } /* by this point, value does not start with '..' */ + } /* by this point, value does not start + with '..' */ if (value && *value) { return pstrcat(r->pool, my_base, value, NULL); @@ -550,21 +590,23 @@ if (!strcasecmp(menu, "unformatted") && *comment) { rvputs(r, comment, "\n", NULL); } - return; /* comments are ignored in the 'formatted' form */ + return; /* comments are ignored in the + 'formatted' form */ } static void menu_default(request_rec *r, char *menu, char *href, char *text) { if (!strcasecmp(href, "error") || !strcasecmp(href, "nocontent")) { - return; /* don't print such lines, these aren'te really href's */ + return; /* don't print such lines, these aren't + really href's */ } if (!strcasecmp(menu, "formatted")) { - rvputs(r, "<pre>(Default) <a href=\"", href, "\">", text, "</a></pre>\n", - NULL); + rvputs(r, "<pre>(Default) <a href=\"", href, "\">", text, + "</a></pre>\n", NULL); } if (!strcasecmp(menu, "semiformatted")) { - rvputs(r, "<pre>(Default) <a href=\"", href, "\">", text, "</a></pre>\n", - NULL); + rvputs(r, "<pre>(Default) <a href=\"", href, "\">", text, + "</a></pre>\n", NULL); } if (!strcasecmp(menu, "unformatted")) { rvputs(r, "<a href=\"", href, "\">", text, "</a>", NULL); @@ -575,15 +617,16 @@ static void menu_directive(request_rec *r, char *menu, char *href, char *text) { if (!strcasecmp(href, "error") || !strcasecmp(href, "nocontent")) { - return; /* don't print such lines, as this isn't really an href */ + return; /* don't print such lines, as this isn't + really an href */ } if (!strcasecmp(menu, "formatted")) { - rvputs(r, "<pre> <a href=\"", href, "\">", text, "</a></pre>\n", - NULL); + rvputs(r, "<pre> <a href=\"", href, "\">", text, + "</a></pre>\n", NULL); } if (!strcasecmp(menu, "semiformatted")) { - rvputs(r, "<pre> <a href=\"", href, "\">", text, "</a></pre>\n", - NULL); + rvputs(r, "<pre> <a href=\"", href, "\">", text, + "</a></pre>\n", NULL); } if (!strcasecmp(menu, "unformatted")) { rvputs(r, "<a href=\"", href, "\">", text, "</a>", NULL); @@ -625,20 +668,26 @@ configfile_t *imap; - if (r->method_number != M_GET) + if (r->method_number != M_GET) { return DECLINED; + } imap = pcfg_openfile(r->pool, r->filename); - if (!imap) + if (!imap) { return NOT_FOUND; + } - base = imap_url(r, NULL, imap_base); /* set base according to default */ - if (!base) + base = imap_url(r, NULL, imap_base); /* set base according + to default */ + if (!base) { return HTTP_INTERNAL_SERVER_ERROR; - mapdflt = imap_url(r, NULL, imap_default); /* and default to global default */ - if (!mapdflt) + } + mapdflt = imap_url(r, NULL, imap_default); /* and default to + global default */ + if (!mapdflt) { return HTTP_INTERNAL_SERVER_ERROR; + } testpoint[X] = get_x_coord(r->args); testpoint[Y] = get_y_coord(r->args); @@ -649,11 +698,14 @@ /* we don't have valid coordinates */ testpoint[X] = -1; testpoint[Y] = -1; - if (strncasecmp(imap_menu, "none", 2)) - showmenu = 1; /* show the menu _unless_ ImapMenu is 'none' or 'no' */ + if (strncasecmp(imap_menu, "none", 2)) { + showmenu = 1; /* show the menu _unless_ ImapMenu is + 'none' or 'no' */ + } } - if (showmenu) { /* send start of imagemap menu if we're going to */ + if (showmenu) { /* send start of imagemap menu if + we're going to */ menu_header(r, imap_menu); } @@ -670,7 +722,8 @@ menu_comment(r, imap_menu, input + 1); } continue; - } /* blank lines and comments are ignored if we aren't printing a menu */ + } /* blank lines and comments are ignored + if we aren't printing a menu */ /* find the first two space delimited fields, recall that * cfg_getline has removed leading/trailing whitespace and @@ -681,21 +734,26 @@ * memory for every line of the map file */ string_pos = input; - if (!*string_pos) /* need at least two fields */ + if (!*string_pos) { /* need at least two fields */ goto need_2_fields; + } directive = string_pos; - while (*string_pos && *string_pos != ' ') /* past directive */ + while (*string_pos && *string_pos != ' ') { /* past directive */ ++string_pos; - if (!*string_pos) /* need at least two fields */ + } + if (!*string_pos) { /* need at least two fields */ goto need_2_fields; + } *string_pos++ = '\0'; - if (!*string_pos) /* need at least two fields */ + if (!*string_pos) { /* need at least two fields */ goto need_2_fields; + } value = string_pos; - while (*string_pos && *string_pos != ' ') /* past value */ + while (*string_pos && *string_pos != ' ') { /* past value */ ++string_pos; + } if (*string_pos == ' ') { *string_pos++ = '\0'; } @@ -706,8 +764,9 @@ if (!strncasecmp(directive, "base", 4)) { /* base, base_uri */ base = imap_url(r, NULL, value); - if (!base) + if (!base) { goto menu_bail; + } continue; /* base is never printed to a menu */ } @@ -715,13 +774,16 @@ if (!strcasecmp(directive, "default")) { /* default */ mapdflt = imap_url(r, NULL, value); - if (!mapdflt) + if (!mapdflt) { goto menu_bail; + } if (showmenu) { /* print the default if there's a menu */ redirect = imap_url(r, base, mapdflt); - if (!redirect) + if (!redirect) { goto menu_bail; - menu_default(r, imap_menu, redirect, href_text ? href_text : mapdflt); + } + menu_default(r, imap_menu, redirect, + href_text ? href_text : mapdflt); } continue; } @@ -731,45 +793,56 @@ sscanf(string_pos, "%lf%*[, ]%lf", &pointarray[vertex][X], &pointarray[vertex][Y]) == 2) { /* Now skip what we just read... we can't use ANSIism %n */ - while (isspace(*string_pos)) /* past whitespace */ + while (isspace(*string_pos)) { /* past whitespace */ string_pos++; - while (isdigit(*string_pos)) /* and the 1st number */ + } + while (isdigit(*string_pos)) { /* and the 1st number */ string_pos++; + } string_pos++; /* skip the ',' */ - while (isspace(*string_pos)) /* past any more whitespace */ + while (isspace(*string_pos)) { /* past any more whitespace */ string_pos++; - while (isdigit(*string_pos)) /* 2nd number */ + } + while (isdigit(*string_pos)) { /* 2nd number */ string_pos++; + } vertex++; - } /* so long as there are more vertices to read, and - we have room, read them in. We start where we left - off of the last sscanf, not at the beginning. */ + } /* so long as there are more vertices to + read, and we have room, read them in. + We start where we left off of the last + sscanf, not at the beginning. */ pointarray[vertex][X] = -1; /* signals the end of vertices */ if (showmenu) { if (!href_text) { - read_quoted(&string_pos, &href_text); /* href text could be here instead */ + read_quoted(&string_pos, &href_text); /* href text could + be here instead */ } redirect = imap_url(r, base, value); - if (!redirect) + if (!redirect) { goto menu_bail; - menu_directive(r, imap_menu, redirect, href_text ? href_text : value); + } + menu_directive(r, imap_menu, redirect, + href_text ? href_text : value); continue; } /* note that we don't make it past here if we are making a menu */ - if (testpoint[X] == -1 || pointarray[0][X] == -1) + if (testpoint[X] == -1 || pointarray[0][X] == -1) { continue; /* don't try the following tests if testpoints - are invalid, or if there are no coordinates */ + are invalid, or if there are no + coordinates */ + } if (!strcasecmp(directive, "poly")) { /* poly */ if (pointinpoly(testpoint, pointarray)) { cfg_closefile(imap); redirect = imap_url(r, base, value); - if (!redirect) + if (!redirect) { return HTTP_INTERNAL_SERVER_ERROR; + } return (imap_reply(r, redirect)); } continue; @@ -780,8 +853,9 @@ if (pointincircle(testpoint, pointarray)) { cfg_closefile(imap); redirect = imap_url(r, base, value); - if (!redirect) + if (!redirect) { return HTTP_INTERNAL_SERVER_ERROR; + } return (imap_reply(r, redirect)); } continue; @@ -792,8 +866,9 @@ if (pointinrect(testpoint, pointarray)) { cfg_closefile(imap); redirect = imap_url(r, base, value); - if (!redirect) + if (!redirect) { return HTTP_INTERNAL_SERVER_ERROR; + } return (imap_reply(r, redirect)); } continue; @@ -806,11 +881,12 @@ } continue; - } /* move on to next line whether it's closest or not */ + } /* move on to next line whether it's + closest or not */ } /* nothing matched, so we get another line! */ - cfg_closefile(imap); /* we are done with the map file, so close it */ + cfg_closefile(imap); /* we are done with the map file; close it */ if (showmenu) { menu_footer(r); /* finish the menu and we are done */ @@ -819,24 +895,28 @@ if (closest) { /* if a 'point' directive has been seen */ redirect = imap_url(r, base, closest); - if (!redirect) + if (!redirect) { return HTTP_INTERNAL_SERVER_ERROR; + } return (imap_reply(r, redirect)); } - if (mapdflt) { /* a default should be defined, even if only 'nocontent' */ + if (mapdflt) { /* a default should be defined, even if + only 'nocontent' */ redirect = imap_url(r, base, mapdflt); - if (!redirect) + if (!redirect) { return HTTP_INTERNAL_SERVER_ERROR; + } return (imap_reply(r, redirect)); } - return SERVER_ERROR; /* If we make it this far, we failed. They lose! */ + return HTTP_INTERNAL_SERVER_ERROR; /* If we make it this far, + we failed. They lose! */ need_2_fields: aplog_error(APLOG_MARK, APLOG_NOERRNO|APLOG_ERR, r->server, - "map file %s, line %d syntax error: requires at least two fields", - r->uri, imap->line_number); + "map file %s, line %d syntax error: requires at " + "least two fields", r->uri, imap->line_number); /* fall through */ menu_bail: cfg_closefile(imap);