don't delete newlines in hidden values. [w3m-dev 04129]
This commit is contained in:
@@ -1,3 +1,8 @@
|
|||||||
|
2006-06-07 Dai Sato <satodai@w3m.jp>
|
||||||
|
|
||||||
|
* [w3m-dev 04129] handling newlines in form values
|
||||||
|
* parsetagx.c: don't delete newlines in hidden values.
|
||||||
|
|
||||||
2006-05-29 Dai Sato <satodai@w3m.jp>
|
2006-05-29 Dai Sato <satodai@w3m.jp>
|
||||||
|
|
||||||
* [w3m-dev-en 01067] Some more patches
|
* [w3m-dev-en 01067] Some more patches
|
||||||
@@ -8728,4 +8733,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.964 2006/05/29 12:54:26 inu Exp $
|
$Id: ChangeLog,v 1.965 2006/06/07 03:52:03 inu Exp $
|
||||||
|
|||||||
41
parsetagx.c
41
parsetagx.c
@@ -1,4 +1,4 @@
|
|||||||
/* $Id: parsetagx.c,v 1.17 2006/04/07 15:38:42 inu Exp $ */
|
/* $Id: parsetagx.c,v 1.18 2006/06/07 03:52:03 inu Exp $ */
|
||||||
#include "fm.h"
|
#include "fm.h"
|
||||||
#include "myctype.h"
|
#include "myctype.h"
|
||||||
#include "indep.h"
|
#include "indep.h"
|
||||||
@@ -159,7 +159,7 @@ parse_tag(char **s, int internal)
|
|||||||
/* Parse tag arguments */
|
/* Parse tag arguments */
|
||||||
SKIP_BLANKS(q);
|
SKIP_BLANKS(q);
|
||||||
while (1) {
|
while (1) {
|
||||||
Str value = NULL;
|
Str value = NULL, value_tmp = NULL;
|
||||||
if (*q == '>' || *q == '\0')
|
if (*q == '>' || *q == '\0')
|
||||||
goto done_parse_tag;
|
goto done_parse_tag;
|
||||||
p = attrname;
|
p = attrname;
|
||||||
@@ -174,16 +174,13 @@ parse_tag(char **s, int internal)
|
|||||||
SKIP_BLANKS(q);
|
SKIP_BLANKS(q);
|
||||||
if (*q == '=') {
|
if (*q == '=') {
|
||||||
/* get value */
|
/* get value */
|
||||||
value = Strnew();
|
value_tmp = Strnew();
|
||||||
q++;
|
q++;
|
||||||
SKIP_BLANKS(q);
|
SKIP_BLANKS(q);
|
||||||
if (*q == '"') {
|
if (*q == '"') {
|
||||||
q++;
|
q++;
|
||||||
while (*q && *q != '"') {
|
while (*q && *q != '"') {
|
||||||
if (*q != '\n')
|
Strcat_char(value_tmp, *q);
|
||||||
Strcat_char(value, *q);
|
|
||||||
else
|
|
||||||
Strcat_char(value, ' ');
|
|
||||||
if (!tag->need_reconstruct && is_html_quote(*q))
|
if (!tag->need_reconstruct && is_html_quote(*q))
|
||||||
tag->need_reconstruct = TRUE;
|
tag->need_reconstruct = TRUE;
|
||||||
q++;
|
q++;
|
||||||
@@ -194,10 +191,7 @@ parse_tag(char **s, int internal)
|
|||||||
else if (*q == '\'') {
|
else if (*q == '\'') {
|
||||||
q++;
|
q++;
|
||||||
while (*q && *q != '\'') {
|
while (*q && *q != '\'') {
|
||||||
if (*q != '\n')
|
Strcat_char(value_tmp, *q);
|
||||||
Strcat_char(value, *q);
|
|
||||||
else
|
|
||||||
Strcat_char(value, ' ');
|
|
||||||
if (!tag->need_reconstruct && is_html_quote(*q))
|
if (!tag->need_reconstruct && is_html_quote(*q))
|
||||||
tag->need_reconstruct = TRUE;
|
tag->need_reconstruct = TRUE;
|
||||||
q++;
|
q++;
|
||||||
@@ -207,7 +201,7 @@ parse_tag(char **s, int internal)
|
|||||||
}
|
}
|
||||||
else if (*q) {
|
else if (*q) {
|
||||||
while (*q && !IS_SPACE(*q) && *q != '>') {
|
while (*q && !IS_SPACE(*q) && *q != '>') {
|
||||||
Strcat_char(value, *q);
|
Strcat_char(value_tmp, *q);
|
||||||
if (!tag->need_reconstruct && is_html_quote(*q))
|
if (!tag->need_reconstruct && is_html_quote(*q))
|
||||||
tag->need_reconstruct = TRUE;
|
tag->need_reconstruct = TRUE;
|
||||||
q++;
|
q++;
|
||||||
@@ -222,6 +216,29 @@ parse_tag(char **s, int internal)
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (value_tmp) {
|
||||||
|
int j, hidden=FALSE;
|
||||||
|
for (j=0; j<i; j++) {
|
||||||
|
if (tag->attrid[j] == ATTR_TYPE &&
|
||||||
|
strcmp("hidden",tag->value[j]) == 0) {
|
||||||
|
hidden=TRUE;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if ((tag_id == HTML_INPUT || tag_id == HTML_INPUT_ALT) &&
|
||||||
|
attr_id == ATTR_VALUE && hidden) {
|
||||||
|
value = value_tmp;
|
||||||
|
} else {
|
||||||
|
char *x;
|
||||||
|
value = Strnew();
|
||||||
|
for (x = value_tmp->ptr; *x; x++) {
|
||||||
|
if (*x != '\n')
|
||||||
|
Strcat_char(value, *x);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
if (i != nattr) {
|
if (i != nattr) {
|
||||||
if (!internal &&
|
if (!internal &&
|
||||||
((AttrMAP[attr_id].flag & AFLG_INT) ||
|
((AttrMAP[attr_id].flag & AFLG_INT) ||
|
||||||
|
|||||||
Reference in New Issue
Block a user