diff options
author | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-02-03 06:12:41 +0000 |
---|---|---|
committer | Fumitoshi UKAI <ukai@debian.or.jp> | 2002-02-03 06:12:41 +0000 |
commit | 63dffdd551989100dc3ad845b1f5a2126a59be6e (patch) | |
tree | 2208cf1f19c74ad407ccc98e61f04579e58e75c0 | |
parent | [w3m-dev 02972] (diff) | |
download | w3m-63dffdd551989100dc3ad845b1f5a2126a59be6e.tar.gz w3m-63dffdd551989100dc3ad845b1f5a2126a59be6e.zip |
[w3m-dev 02964] Print data of forms when halfdump option is set
* backend.c (print_headers): print w3m-current-url and w3m-base-url
* backend.c (print_formlist): deleted
* backend.c (internal_get): remove "if (buf->formlist) {}"
* file.c (print_internal_information): added
* file.c (loadHTMLstream): if halfdump, print_internal_information
if w3m_backend, print_internal_information
* fm.h (DUMP_HALFEXTRA): added
* main.c (-halfdump_extra): added
From: TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp>
-rw-r--r-- | ChangeLog | 14 | ||||
-rw-r--r-- | backend.c | 36 | ||||
-rw-r--r-- | file.c | 71 | ||||
-rw-r--r-- | fm.h | 3 | ||||
-rw-r--r-- | main.c | 4 |
5 files changed, 90 insertions, 38 deletions
@@ -1,3 +1,15 @@ +2002-02-03 TSUCHIYA Masatoshi <tsuchiya@pine.kuee.kyoto-u.ac.jp> + + * [w3m-dev 02964] Print data of forms when halfdump option is set + * backend.c (print_headers): print w3m-current-url and w3m-base-url + * backend.c (print_formlist): deleted + * backend.c (internal_get): remove "if (buf->formlist) {}" + * file.c (print_internal_information): added + * file.c (loadHTMLstream): if halfdump, print_internal_information + if w3m_backend, print_internal_information + * fm.h (DUMP_HALFEXTRA): added + * main.c (-halfdump_extra): added + 2002-02-01 Dai Sato <satodai@dog.intcul.tohoku.ac.jp> * [w3m-dev 02972] #include "config.h" @@ -2709,4 +2721,4 @@ * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.291 2002/02/01 14:06:46 inu Exp $ +$Id: ChangeLog,v 1.292 2002/02/03 06:12:41 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: backend.c,v 1.7 2001/12/27 18:22:59 ukai Exp $ */ +/* $Id: backend.c,v 1.8 2002/02/03 06:12:41 ukai Exp $ */ #include <stdio.h> #include <string.h> #include <sys/types.h> @@ -97,6 +97,9 @@ print_headers(Buffer *buf, int len) for (tp = buf->document_header->first; tp; tp = tp->next) printf("%s\n", tp->ptr); } + printf("w3m-current-url: %s\n", parsedURL2Str(&buf->currentURL)->ptr); + if (buf->baseURL) + printf("w3m-base-url: %s\n", parsedURL2Str(buf->baseURL)->ptr); printf("w3m-content-type: %s\n", buf->type); #ifdef JP_CHARSET if (buf->document_code) @@ -109,29 +112,6 @@ print_headers(Buffer *buf, int len) static void -print_formlist(int fid, FormList *fp) -{ - Str s = - Sprintf("w3m-form: (formlist (fid %d) (action \"%s\") (method \"%s\")", - fid, - fp->action->ptr, - (fp->method == FORM_METHOD_POST) ? "post" - : ((fp->method == FORM_METHOD_INTERNAL) ? "internal" : "get")); - if (fp->target) - Strcat(s, Sprintf(" (target \"%s\")", fp->target)); - if (fp->charset) - Strcat(s, - Sprintf(" (charset '%s)", get_mime_charset_name(fp->charset))); - if (fp->enctype == FORM_ENCTYPE_MULTIPART) - Strcat_charp(s, " (enctype \"multipart/form-data\")"); - if (fp->boundary) - Strcat(s, Sprintf(" (boundary \"%s\")", fp->boundary)); - Strcat_charp(s, ")\n"); - Strfputs(s, stdout); -} - - -static void internal_get(char *url, int flag, FormList *request) { Buffer *buf; @@ -151,14 +131,6 @@ internal_get(char *url, int flag, FormList *request) last = Strnew_m_charp("</pre><title>", html_quote(buf->buffername), "</title>\n", NULL); print_headers(buf, len + first->length + last->length); - if (buf->formlist) { - FormList *fp; - int fid = 0; - for (fp = buf->formlist; fp; fp = fp->next) - fid++; - for (fp = buf->formlist; fp; fp = fp->next) - print_formlist(--fid, fp); - } printf("\n"); printf("%s", first->ptr); for (p = backend_halfdump_buf->first; p; p = p->next) @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.58 2002/02/01 05:01:47 ukai Exp $ */ +/* $Id: file.c,v 1.59 2002/02/03 06:12:41 ukai Exp $ */ #include "fm.h" #include <sys/types.h> #include "myctype.h" @@ -5714,6 +5714,66 @@ completeHTMLstream(struct html_feed_environ *h_env, struct readbuffer *obuf) } } +static void +print_internal_information(struct html_feed_environ *henv) +{ + int i; + Str s; + TextLineList *tl = newTextLineList(); + + if (form_max >= 0) { + FormList *fp; + for (i = 0; i <= form_max; i++) { + fp = forms[i]; + s = Sprintf("<form_int fid=\"%d\" action=\"%s\" method=\"%s\"", + i, fp->action->ptr, + (fp->method == FORM_METHOD_POST) ? "post" + : ((fp->method == FORM_METHOD_INTERNAL) ? "internal" : "get")); + if (fp->target) + Strcat(s, Sprintf(" target=\"%s\"", fp->target)); + if (fp->charset) + Strcat(s, Sprintf(" accept-charset=\"%s\"", code_to_str(fp->charset))); + if (fp->enctype == FORM_ENCTYPE_MULTIPART) + Strcat_charp(s, " enctype=multipart/form-data"); + if (fp->boundary) + Strcat_m_charp(s, " boundary=\"", html_quote(fp->boundary), "\"", NULL); + Strcat_charp(s, ">"); + pushTextLine(tl, newTextLine(s, 0)); + } + } +#ifdef MENU_SELECT + if (n_select > 0) { + FormSelectOptionItem *ip; + for (i = 0; i < n_select; i++) { + for (ip = select_option[i].first; ip; ip = ip->next) { + s = Sprintf("<option_int selectnumber=%d" + " value=\"%s\"%s>%s</option_int>", + i, + html_quote(ip->value ? ip->value->ptr : ip->label->ptr), + ip->checked ? " selected" : "", + ip->label->ptr); + pushTextLine(tl, newTextLine(s, 0)); + } + } + } +#endif /* MENU_SELECT */ + if (n_textarea > 0) { + for (i = 0; i < n_textarea; i++) { + s = Sprintf("<textarea_int textareanumber=%d>%s</textarea_int>", + i, textarea_str[i]->ptr); + pushTextLine(tl, newTextLine(s, 0)); + } + } + + if (henv->buf) + appendTextLineList(henv->buf, tl); + else if (henv->f) { + TextLineListItem *p; + for (p = tl->first; p; p = p->next) + printf("%s\n", p->ptr->line->ptr); + } +} + void loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) { @@ -5850,6 +5910,13 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) if (fmInitialized) term_raw(); signal(SIGINT, prevtrap); + if (w3m_dump & DUMP_HALFEXTRA) + print_internal_information(&htmlenv1); + return; + } + if (w3m_backend) { + print_internal_information(&htmlenv1); + backend_halfdump_buf = htmlenv1.buf; return; } phase2: @@ -5864,8 +5931,6 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) #ifdef USE_IMAGE newBuf->image_flag = image_flag; #endif - if (w3m_backend) - backend_halfdump_buf = htmlenv1.buf; HTMLlineproc2(newBuf, htmlenv1.buf); } @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.46 2002/01/31 17:54:51 ukai Exp $ */ +/* $Id: fm.h,v 1.47 2002/02/03 06:12:41 ukai Exp $ */ /* * w3m: WWW wo Miru utility * @@ -772,6 +772,7 @@ extern char *w3m_version; #define DUMP_EXTRA 0x08 #define DUMP_HALFDUMP 0x10 #define DUMP_FRAME 0x20 +#define DUMP_HALFEXTRA 0x40 global int w3m_debug; global int w3m_dump init(0); #define w3m_halfdump (w3m_dump & DUMP_HALFDUMP) @@ -1,4 +1,4 @@ -/* $Id: main.c,v 1.77 2002/01/31 17:54:52 ukai Exp $ */ +/* $Id: main.c,v 1.78 2002/02/03 06:12:41 ukai Exp $ */ #define MAINPROGRAM #include "fm.h" #include <signal.h> @@ -562,6 +562,8 @@ MAIN(int argc, char **argv, char **envp) w3m_dump = (DUMP_HEAD | DUMP_SOURCE | DUMP_EXTRA); else if (!strcmp("-halfdump", argv[i])) w3m_dump = DUMP_HALFDUMP; + else if (!strcmp("-halfdump_extra", argv[i])) + w3m_dump = DUMP_HALFDUMP | DUMP_HALFEXTRA; else if (!strcmp("-halfload", argv[i])) { w3m_dump = 0; w3m_halfload = TRUE; |