[Date Prev][Date Next][Thread Prev][][Date Index][Thread Index]

async patch (was: emacs-w3m doesn't work)



>> On Tue, 24 Aug 2004 22:04:53 +0900
>> usata@sodan.ecc.u-tokyo.ac.jp (Mamoru KOMACHI) said as follows:

>If you have applied async patch from
>http://www.page.sannet.ne.jp/knabe/w3m/w3m-0.5.1-async-1.diff.gz
>emacs-w3m hangs on browsing the internet.

ちょっと手元で試してみましたが,確かに,w3m 本体に対する async パッチ
を適用すると emacs-w3m が動かなくなりますね.

それでまあ,ものすごくアドホックなパッチなんですが,async パッチに加え
て,末尾に添付したパッチを適用すれば,async パッチと emacs-w3m が共存
できるようになるのではないかと思います.

動作確認報告を募集します.

-- 
土屋 雅稔 ( TSUCHIYA Masatoshi )

--- w3m-0.5.1/main.c~	2004-09-19 19:03:06.000000000 +0900
+++ w3m-0.5.1/main.c	2004-09-19 19:49:21.000000000 +0900
@@ -1298,7 +1298,7 @@
 }
 #endif
 
-static void
+void
 dump_head(Buffer *buf)
 {
     TextListItem *ti;
@@ -1320,16 +1320,10 @@
     puts("");
 }
 
-static void
+void
 dump_extra(Buffer *buf)
 {
     printf("W3m-current-url: %s\n", parsedURL2Str(&buf->currentURL)->ptr);
-    if (buf->baseURL)
-	printf("W3m-base-url: %s\n", parsedURL2Str(buf->baseURL)->ptr);
-#ifdef USE_M17N
-    printf("W3m-document-charset: %s\n",
-	   wc_ces_to_charset(buf->document_charset));
-#endif
 #ifdef USE_SSL
     if (buf->ssl_certificate) {
 	Str tmp = Strnew();
@@ -1361,18 +1355,9 @@
     }
     do {
         if (Currentbuf->load_flag != BF_LOADING_HEADER) {
-	    if (flag & DUMP_EXTRA) {
-		dump_extra(Currentbuf);
-		flag &= ~DUMP_EXTRA;
-	    }
-	    if (flag & DUMP_HEAD) {
-		dump_head(Currentbuf);
-		flag &= ~DUMP_HEAD;
-	    }
-#if 0
-	    if (flag & DUMP_SOURCE)
-		dump_source(Currentbuf);
-#endif
+	    flag &= ~DUMP_EXTRA;
+	    flag &= ~DUMP_HEAD;
+	    flag &= ~DUMP_SOURCE;
 	    if (flag == DUMP_BUFFER &&
 		!(Currentbuf->post_flag & BF_RENDER_FRAME)) {
 		saveBuffer(Currentbuf, stdout, FALSE);
--- w3m-0.5.1/file.c~	2004-09-19 19:03:06.000000000 +0900
+++ w3m-0.5.1/file.c	2004-09-19 19:48:28.000000000 +0900
@@ -19,6 +19,9 @@
 #include "local.h"
 #include "regex.h"
 
+void dump_extra(Buffer *);
+void dump_head(Buffer *);
+
 #ifndef max
 #define max(a,b)        ((a) > (b) ? (a) : (b))
 #endif				/* not max */
@@ -6319,6 +6322,11 @@
 	    newBuf->sourcefile = tmp->ptr;
     }
 
+    if (w3m_dump & DUMP_EXTRA)
+	dump_extra(newBuf);
+    if (w3m_dump & DUMP_HEAD)
+	dump_head(newBuf);
+
     loadHTMLstream(f, newBuf, src, newBuf->bufferprop & BP_FRAME);
     return newBuf;
 }