diff options
| -rw-r--r-- | ChangeLog | 8 | ||||
| -rw-r--r-- | map.c | 11 | 
2 files changed, 14 insertions, 5 deletions
| @@ -1,5 +1,11 @@  2002-11-14  Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> +	* [w3m-dev 03427] Re: Select the nearest map area as default. +	* map.c (newMapArea): accept sign chars +			if points is not enough, return as SHAPE_UNKNOWN + +2002-11-14  Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp> +  	* [w3m-dev 03425] charset of title  	* display.c (displayBuffer): buffername converted to system coding  					for term title @@ -4607,4 +4613,4 @@ a	* [w3m-dev 03276] compile error on EWS4800  	* release-0-2-1  	* import w3m-0.2.1 -$Id: ChangeLog,v 1.508 2002/11/13 15:49:00 ukai Exp $ +$Id: ChangeLog,v 1.509 2002/11/13 15:51:39 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: map.c,v 1.11 2002/11/06 15:07:40 ukai Exp $ */ +/* $Id: map.c,v 1.13 2002/11/13 15:51:39 ukai Exp $ */  /*   * client-side image maps   */ @@ -64,7 +64,7 @@ nearestMapArea(MapList *ml, int x, int y)      ListItem *al;      MapArea *a;      int i, l, n = 0, min = -1, limit = pixel_per_char * pixel_per_char -				     + pixel_per_line * pixel_per_line; +	+ pixel_per_line * pixel_per_line;      if (!ml || !ml->area)  	return n; @@ -72,7 +72,7 @@ nearestMapArea(MapList *ml, int x, int y)  	a = (MapArea *) al->ptr;  	if (a) {  	    l = (a->center_x - x) * (a->center_x - x) -	      + (a->center_y - y) * (a->center_y - y); +		+ (a->center_y - y) * (a->center_y - y);  	    if ((min < 0 || l < min) && l < limit) {  		n = i;  		min = l; @@ -271,7 +271,7 @@ newMapArea(char *url, char *target, char *alt, char *shape, char *coords)      for (i = 0, p = coords; (a->shape == SHAPE_POLY || i < a->ncoords) && *p;) {  	while (IS_SPACE(*p))  	    p++; -	if (!IS_DIGIT(*p)) +	if (!IS_DIGIT(*p) && *p != '-' && *p != '+')  	    break;  	if (a->shape == SHAPE_POLY) {  	    if (max <= i) { @@ -282,6 +282,8 @@ newMapArea(char *url, char *target, char *alt, char *shape, char *coords)  	}  	a->coords[i] = (short)atoi(p);  	i++; +	if (*p == '-' || *p == '+') +	    p++;  	while (IS_DIGIT(*p))  	    p++;  	if (*p != ',' && !IS_SPACE(*p)) @@ -295,6 +297,7 @@ newMapArea(char *url, char *target, char *alt, char *shape, char *coords)  	a->shape = SHAPE_UNKNOWN;  	a->coords = NULL;  	a->ncoords = 0; +	return a;      }      if (a->shape == SHAPE_POLY) {  	a->ncoords = a->ncoords / 2 * 2; | 
