[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
From: Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
Fumitoshi UKAI
2002-11-13 15:51:39 +00:00
parent a632426d3c
commit 57d097cd93
2 changed files with 14 additions and 5 deletions

View File

@@ -1,3 +1,9 @@
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> 2002-11-14 Hironori SAKAMOTO <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03425] charset of title * [w3m-dev 03425] charset of title
@@ -4607,4 +4613,4 @@ a * [w3m-dev 03276] compile error on EWS4800
* release-0-2-1 * release-0-2-1
* import w3m-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 $

7
map.c
View File

@@ -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 * client-side image maps
*/ */
@@ -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;) { for (i = 0, p = coords; (a->shape == SHAPE_POLY || i < a->ncoords) && *p;) {
while (IS_SPACE(*p)) while (IS_SPACE(*p))
p++; p++;
if (!IS_DIGIT(*p)) if (!IS_DIGIT(*p) && *p != '-' && *p != '+')
break; break;
if (a->shape == SHAPE_POLY) { if (a->shape == SHAPE_POLY) {
if (max <= i) { if (max <= i) {
@@ -282,6 +282,8 @@ newMapArea(char *url, char *target, char *alt, char *shape, char *coords)
} }
a->coords[i] = (short)atoi(p); a->coords[i] = (short)atoi(p);
i++; i++;
if (*p == '-' || *p == '+')
p++;
while (IS_DIGIT(*p)) while (IS_DIGIT(*p))
p++; p++;
if (*p != ',' && !IS_SPACE(*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->shape = SHAPE_UNKNOWN;
a->coords = NULL; a->coords = NULL;
a->ncoords = 0; a->ncoords = 0;
return a;
} }
if (a->shape == SHAPE_POLY) { if (a->shape == SHAPE_POLY) {
a->ncoords = a->ncoords / 2 * 2; a->ncoords = a->ncoords / 2 * 2;