diff options
-rw-r--r-- | ChangeLog | 11 | ||||
-rw-r--r-- | backend.c | 23 | ||||
-rw-r--r-- | file.c | 17 | ||||
-rw-r--r-- | fm.h | 4 |
4 files changed, 34 insertions, 21 deletions
@@ -1,3 +1,12 @@ +2001-12-28 Hironori Sakamoto <h-saka@lsi.nec.co.jp> + + * [w3m-dev 02765] backend + * backend.c (internal_get): cleanups + * file.c (flushline): remove w3m_backend checks + * file.c (loadHTMLstream): add w3m_backend check + * fm.h (backend_halfdump_str): deleted + * fm.h (backend_halfdump_buf): added + 2001-12-28 Kiyokazu SUTO <suto@ks-and-ks.ne.jp> * [w3m-dev 02761] @@ -1723,4 +1732,4 @@ * release-0-2-1 * import w3m-0.2.1 -$Id: ChangeLog,v 1.191 2001/12/27 17:45:25 ukai Exp $ +$Id: ChangeLog,v 1.192 2001/12/27 17:50:56 ukai Exp $ @@ -1,4 +1,4 @@ -/* $Id: backend.c,v 1.5 2001/11/24 02:01:26 ukai Exp $ */ +/* $Id: backend.c,v 1.6 2001/12/27 17:50:56 ukai Exp $ */ #include <stdio.h> #include <string.h> #include <sys/types.h> @@ -136,15 +136,21 @@ internal_get(char *url, int flag, FormList *request) { Buffer *buf; - backend_halfdump_str = Strnew_charp("<pre>\n"); + backend_halfdump_buf = NULL; do_download = flag; buf = loadGeneralFile(url, NULL, NO_REFERER, 0, request); do_download = FALSE; if (buf != NULL && buf != NO_BUFFER) { - if (!strcasecmp(buf->type, "text/html")) { - Strcat(backend_halfdump_str, - Sprintf("</pre><title>%s</title>\n", buf->buffername)); - print_headers(buf, backend_halfdump_str->length); + if (!strcasecmp(buf->type, "text/html") && backend_halfdump_buf) { + TextLineListItem *p; + Str first, last; + int len = 0; + for (p = backend_halfdump_buf->first; p; p = p->next) + len += p->ptr->line->length + 1; + first = Strnew_charp("<pre>\n"); + 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; @@ -154,7 +160,10 @@ internal_get(char *url, int flag, FormList *request) print_formlist(--fid, fp); } printf("\n"); - Strfputs(backend_halfdump_str, stdout); + printf("%s", first->ptr); + for (p = backend_halfdump_buf->first; p; p = p->next) + printf("%s\n", p->ptr->line->ptr); + printf("%s", last->ptr); } else { if (!strcasecmp(buf->type, "text/plain")) { @@ -1,4 +1,4 @@ -/* $Id: file.c,v 1.36 2001/12/27 17:45:26 ukai Exp $ */ +/* $Id: file.c,v 1.37 2001/12/27 17:50:56 ukai Exp $ */ #include "fm.h" #include <sys/types.h> #include "myctype.h" @@ -2025,13 +2025,8 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent, #endif if (lbuf->pos > h_env->maxlimit) h_env->maxlimit = lbuf->pos; - if (buf) { + if (buf) pushTextLine(buf, lbuf); - if (w3m_backend) { - Strcat(backend_halfdump_str, lbuf->line); - Strcat_char(backend_halfdump_str, '\n'); - } - } else { Strfputs(lbuf->line, f); fputc('\n', f); @@ -2046,11 +2041,9 @@ flushline(struct html_feed_environ *h_env, struct readbuffer *obuf, int indent, Str tmp = Strnew(), tmp2 = Strnew(); #define APPEND(str) \ - if (buf) { \ + if (buf) \ appendTextLine(buf,(str),0); \ - if (w3m_backend) \ - Strcat(backend_halfdump_str, (str)); \ - } else \ + else \ Strfputs((str),f) while (*p) { @@ -5074,6 +5067,8 @@ loadHTMLstream(URLFile *f, Buffer *newBuf, FILE * src, int internal) newBuf->document_code = code; content_charset = '\0'; #endif /* JP_CHARSET */ + if (w3m_backend) + backend_halfdump_buf = htmlenv1.buf; HTMLlineproc2(newBuf, htmlenv1.buf); } @@ -1,4 +1,4 @@ -/* $Id: fm.h,v 1.35 2001/12/27 17:37:49 ukai Exp $ */ +/* $Id: fm.h,v 1.36 2001/12/27 17:50:56 ukai Exp $ */ /* * w3m: WWW wo Miru utility * @@ -881,7 +881,7 @@ global int use_lessopen init(FALSE); global int FollowRedirection init(10); global int w3m_backend init(FALSE); -global Str backend_halfdump_str; +global TextLineList *backend_halfdump_buf; global TextList *backend_batch_commands init(NULL); int backend(void); extern void deleteFiles(void); |