diff options
| author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-02-07 14:15:59 +0000 | 
|---|---|---|
| committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-02-07 14:15:59 +0000 | 
| commit | 9ec82130b103039a26c4ab24f767d6aa96af7058 (patch) | |
| tree | 19514aa29f28f0155f646e109d371bdf3257cc26 | |
| parent | fix indent (diff) | |
| download | w3m-9ec82130b103039a26c4ab24f767d6aa96af7058.tar.gz w3m-9ec82130b103039a26c4ab24f767d6aa96af7058.zip | |
[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>
| -rw-r--r-- | ChangeLog | 13 | ||||
| -rw-r--r-- | file.c | 38 | ||||
| -rw-r--r-- | html.c | 9 | 
3 files changed, 44 insertions, 16 deletions
| @@ -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>  	* [w3m-dev 03005] fix Bad cert ident @@ -2854,4 +2865,4 @@  	* release-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 $ @@ -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 <sys/types.h>  #include "myctype.h" @@ -3593,8 +3593,8 @@ check_accept_charset(char *s)  }  #endif				/* JP_CHARSET */ -Str -process_form(struct parsed_tag *tag) +static Str +process_form_int(struct parsed_tag *tag, int fid)  {      char *p, *q, *r, *s, *tg, *n;      char cs = 0; @@ -3617,8 +3617,16 @@ process_form(struct parsed_tag *tag)      n = NULL;      parsedtag_get_value(tag, ATTR_NAME, &n); -    form_max++; -    form_sp++; +    if (fid < 0) { +	form_max++; +	form_sp++; +	fid = form_max; +    } +    else {			/* <form_int> */ +	if (form_max < fid) +	    form_max = fid; +	form_sp = fid; +    }      if (forms_size == 0) {  	forms_size = INITIAL_FORM_SIZE;  	forms = New_N(FormList *, forms_size); @@ -3629,11 +3637,11 @@ process_form(struct parsed_tag *tag)  	forms = New_Reuse(FormList *, forms, 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) {  	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)  	    Strcat(tmp, Sprintf(" enctype=\"%s\"", html_quote(s)));  	if (tg) @@ -3648,13 +3656,17 @@ process_form(struct parsed_tag *tag)  	return tmp;      } -    forms[form_max] = -	newFormList(q, p, &cs, s, tg, n, -		    (form_max > 0) ? forms[form_max - 1] : NULL); +    forms[fid] = newFormList(q, p, &cs, s, tg, n, NULL);      return NULL;  }  Str +process_form(struct parsed_tag *tag) +{ +    return process_form_int(tag, -1); +} + +Str  process_n_form(void)  {      if (form_sp >= 0) @@ -4578,7 +4590,7 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)      int frameset_sp = -1;      union frameset_element *idFrame = NULL;      char *id = NULL; -    int hseq; +    int hseq, form_id;      Str line;      char *endp;  #ifndef KANJI_SYMBOLS @@ -4824,13 +4836,13 @@ HTMLlineproc2body(Buffer *buf, Str (*feed) (), int llimit)  		    {  			FormList *form;  			int top = 0, bottom = 0; -			int form_id = -1;  			int textareanumber = -1;  #ifdef MENU_SELECT  			int selectnumber = -1;  #endif -  			hseq = 0; +			form_id = -1; +  			parsedtag_get_value(tag, ATTR_HSEQ, &hseq);  			parsedtag_get_value(tag, ATTR_FID, &form_id);  			parsedtag_get_value(tag, ATTR_TOP_MARGIN, &top); @@ -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"  /* Define HTML Tag Infomation Table */ @@ -94,6 +94,11 @@ unsigned char ALST_RULE[] = { ATTR_TYPE };  #define MAXA_RULE       1  unsigned char ALST_TITLE_ALT[] = { ATTR_TITLE };  #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[] =      { ATTR_HSEQ, ATTR_FID, ATTR_NO_EFFECT, ATTR_TYPE, ATTR_NAME, ATTR_VALUE,      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 | TFLG_END},	/* 117 HTML_N_PRE_INT   */      {"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  */      {"dl_compact", NULL, 0, TFLG_INT},	/* 121 HTML_DL_COMPACT  */      {"input_alt", ALST_INPUT_ALT, MAXA_INPUT_ALT, TFLG_INT},	/* 122 HTML_INPUT_ALT   */ | 
