[w3m-dev 03006] fix form order in table

* file.c (process_form): static
		fix form index order
		method should be quoted
* file.c (process_form): added
* file.c (HTMLlineproc2body): add form_id
* html.c (ALST_FORM_INT): added
* html.c (form_int): update
From: Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
This commit is contained in:
Fumitoshi UKAI
2002-02-07 14:15:59 +00:00
parent c0d15a79a9
commit 9ec82130b1
3 changed files with 44 additions and 16 deletions
+12 -1
View File
@@ -1,3 +1,14 @@
2002-02-07 Hironori Sakamoto <hsaka@mth.biglobe.ne.jp>
* [w3m-dev 03006] fix form order in table
* file.c (process_form): static
fix form index order
method should be quoted
* file.c (process_form): added
* file.c (HTMLlineproc2body): add form_id
* html.c (ALST_FORM_INT): added
* html.c (form_int): update
2002-02-07 Fumitoshi UKAI <ukai@debian.or.jp> 2002-02-07 Fumitoshi UKAI <ukai@debian.or.jp>
* [w3m-dev 03005] fix Bad cert ident * [w3m-dev 03005] fix Bad cert ident
@@ -2854,4 +2865,4 @@
* release-0-2-1 * release-0-2-1
* import w3m-0.2.1 * import w3m-0.2.1
$Id: ChangeLog,v 1.304 2002/02/06 17:24:14 ukai Exp $ $Id: ChangeLog,v 1.305 2002/02/07 14:15:59 ukai Exp $
+25 -13
View File
@@ -1,4 +1,4 @@
/* $Id: file.c,v 1.67 2002/02/06 16:20:25 ukai Exp $ */ /* $Id: file.c,v 1.68 2002/02/07 14:16:00 ukai Exp $ */
#include "fm.h" #include "fm.h"
#include <sys/types.h> #include <sys/types.h>
#include "myctype.h" #include "myctype.h"
@@ -3593,8 +3593,8 @@ check_accept_charset(char *s)
} }
#endif /* JP_CHARSET */ #endif /* JP_CHARSET */
Str static Str
process_form(struct parsed_tag *tag) process_form_int(struct parsed_tag *tag, int fid)
{ {
char *p, *q, *r, *s, *tg, *n; char *p, *q, *r, *s, *tg, *n;
char cs = 0; char cs = 0;
@@ -3617,8 +3617,16 @@ process_form(struct parsed_tag *tag)
n = NULL; n = NULL;
parsedtag_get_value(tag, ATTR_NAME, &n); parsedtag_get_value(tag, ATTR_NAME, &n);
form_max++; if (fid < 0) {
form_sp++; form_max++;
form_sp++;
fid = form_max;
}
else { /* <form_int> */
if (form_max < fid)
form_max = fid;
form_sp = fid;
}
if (forms_size == 0) { if (forms_size == 0) {
forms_size = INITIAL_FORM_SIZE; forms_size = INITIAL_FORM_SIZE;
forms = New_N(FormList *, forms_size); forms = New_N(FormList *, forms_size);
@@ -3629,11 +3637,11 @@ process_form(struct parsed_tag *tag)
forms = New_Reuse(FormList *, forms, forms_size); forms = New_Reuse(FormList *, forms, forms_size);
form_stack = New_Reuse(int, form_stack, forms_size); form_stack = New_Reuse(int, form_stack, forms_size);
} }
form_stack[form_sp] = form_max; form_stack[form_sp] = fid;
if (w3m_halfdump) { if (w3m_halfdump) {
Str tmp = Sprintf("<form_int fid=\"%d\" action=\"%s\" method=\"%s\"", Str tmp = Sprintf("<form_int fid=\"%d\" action=\"%s\" method=\"%s\"",
form_max, html_quote(q), p); fid, html_quote(q), html_quote(p));
if (s) if (s)
Strcat(tmp, Sprintf(" enctype=\"%s\"", html_quote(s))); Strcat(tmp, Sprintf(" enctype=\"%s\"", html_quote(s)));
if (tg) if (tg)
@@ -3648,12 +3656,16 @@ process_form(struct parsed_tag *tag)
return tmp; return tmp;
} }
forms[form_max] = forms[fid] = newFormList(q, p, &cs, s, tg, n, NULL);
newFormList(q, p, &cs, s, tg, n,
(form_max > 0) ? forms[form_max - 1] : NULL);
return NULL; return NULL;
} }
Str
process_form(struct parsed_tag *tag)
{
return process_form_int(tag, -1);
}
Str Str
process_n_form(void) process_n_form(void)
{ {
@@ -4578,7 +4590,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
int frameset_sp = -1; int frameset_sp = -1;
union frameset_element *idFrame = NULL; union frameset_element *idFrame = NULL;
char *id = NULL; char *id = NULL;
int hseq; int hseq, form_id;
Str line; Str line;
char *endp; char *endp;
#ifndef KANJI_SYMBOLS #ifndef KANJI_SYMBOLS
@@ -4824,13 +4836,13 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)
{ {
FormList *form; FormList *form;
int top = 0, bottom = 0; int top = 0, bottom = 0;
int form_id = -1;
int textareanumber = -1; int textareanumber = -1;
#ifdef MENU_SELECT #ifdef MENU_SELECT
int selectnumber = -1; int selectnumber = -1;
#endif #endif
hseq = 0; hseq = 0;
form_id = -1;
parsedtag_get_value(tag, ATTR_HSEQ, &hseq); parsedtag_get_value(tag, ATTR_HSEQ, &hseq);
parsedtag_get_value(tag, ATTR_FID, &form_id); parsedtag_get_value(tag, ATTR_FID, &form_id);
parsedtag_get_value(tag, ATTR_TOP_MARGIN, &top); parsedtag_get_value(tag, ATTR_TOP_MARGIN, &top);
+7 -2
View File
@@ -1,4 +1,4 @@
/* $Id: html.c,v 1.9 2002/02/05 12:31:27 ukai Exp $ */ /* $Id: html.c,v 1.10 2002/02/07 14:16:00 ukai Exp $ */
#include "html.h" #include "html.h"
/* Define HTML Tag Infomation Table */ /* Define HTML Tag Infomation Table */
@@ -94,6 +94,11 @@ unsigned char ALST_RULE[] = { ATTR_TYPE };
#define MAXA_RULE 1 #define MAXA_RULE 1
unsigned char ALST_TITLE_ALT[] = { ATTR_TITLE }; unsigned char ALST_TITLE_ALT[] = { ATTR_TITLE };
#define MAXA_TITLE_ALT 1 #define MAXA_TITLE_ALT 1
unsigned char ALST_FORM_INT[] =
{ ATTR_METHOD, ATTR_ACTION, ATTR_CHARSET, ATTR_ACCEPT_CHARSET,
ATTR_ENCTYPE, ATTR_TARGET, ATTR_NAME, ATTR_FID
};
#define MAXA_FORM_INT 8
unsigned char ALST_INPUT_ALT[] = unsigned char ALST_INPUT_ALT[] =
{ ATTR_HSEQ, ATTR_FID, ATTR_NO_EFFECT, ATTR_TYPE, ATTR_NAME, ATTR_VALUE, { ATTR_HSEQ, ATTR_FID, ATTR_NO_EFFECT, ATTR_TYPE, ATTR_NAME, ATTR_VALUE,
ATTR_CHECKED, ATTR_ACCEPT, ATTR_SIZE, ATTR_MAXLENGTH, ATTR_READONLY, ATTR_CHECKED, ATTR_ACCEPT, ATTR_SIZE, ATTR_MAXLENGTH, ATTR_READONLY,
@@ -232,7 +237,7 @@ TagInfo TagMAP[MAX_HTMLTAG] = {
{"pre_int", NULL, 0, TFLG_INT}, /* 116 HTML_PRE_INT */ {"pre_int", NULL, 0, TFLG_INT}, /* 116 HTML_PRE_INT */
{"/pre_int", NULL, 0, TFLG_INT | TFLG_END}, /* 117 HTML_N_PRE_INT */ {"/pre_int", NULL, 0, TFLG_INT | TFLG_END}, /* 117 HTML_N_PRE_INT */
{"title_alt", ALST_TITLE_ALT, MAXA_TITLE_ALT, TFLG_INT}, /* 118 HTML_TITLE_ALT */ {"title_alt", ALST_TITLE_ALT, MAXA_TITLE_ALT, TFLG_INT}, /* 118 HTML_TITLE_ALT */
{"form_int", ALST_FORM, MAXA_FORM, TFLG_INT}, /* 119 HTML_FORM_INT */ {"form_int", ALST_FORM_INT, MAXA_FORM_INT, TFLG_INT}, /* 119 HTML_FORM_INT */
{"/form_int", NULL, 0, TFLG_INT | TFLG_END}, /* 120 HTML_N_FORM_INT */ {"/form_int", NULL, 0, TFLG_INT | TFLG_END}, /* 120 HTML_N_FORM_INT */
{"dl_compact", NULL, 0, TFLG_INT}, /* 121 HTML_DL_COMPACT */ {"dl_compact", NULL, 0, TFLG_INT}, /* 121 HTML_DL_COMPACT */
{"input_alt", ALST_INPUT_ALT, MAXA_INPUT_ALT, TFLG_INT}, /* 122 HTML_INPUT_ALT */ {"input_alt", ALST_INPUT_ALT, MAXA_INPUT_ALT, TFLG_INT}, /* 122 HTML_INPUT_ALT */