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

dump_head_source patch



坂本> -dump_head + -dump_source については、w3m には -m オプションがあるので
坂本> ヘッダ付きでソースを保存するメリットは十分あると思いますから、w3m.el に
坂本> よらず入れておいた方がいいと思います。

という坂本さんの提案を受けて、-dump_head_source オプションを新設するた
めのパッチを作成しました。w3m-0.2.1 を対象とするパッチです。
Index: file.c
===================================================================
RCS file: /home/tsuchiya/cvsroot/w3m/file.c,v
retrieving revision 1.1.1.3
retrieving revision 1.1.1.3.4.1
diff -u -r1.1.1.3 -r1.1.1.3.4.1
--- file.c	2001/03/23 04:38:29	1.1.1.3
+++ file.c	2001/03/28 02:34:12	1.1.1.3.4.1
@@ -877,7 +877,7 @@
     unsigned char status = HTST_NORMAL;
     URLOption url_option;
     Str tmp;
-    extern int w3m_dump, w3m_dump_source;
+    extern int w3m_dump, w3m_dump_source, w3m_dump_head_source;
 
     tpath = path;
     prevtrap = NULL;
@@ -1179,7 +1179,7 @@
     }
 
     if (f.compression != CMP_NOCOMPRESS) {
-	if (!w3m_dump_source &&
+	if ((w3m_dump_head_source || !w3m_dump_source) &&
 	    (w3m_dump || is_text_type(t) || searchExtViewer(t))) {
 	    gunzip_stream(&f);
 	    uncompressed_file_type(pu.file, &f.ext);
Index: main.c
===================================================================
RCS file: /home/tsuchiya/cvsroot/w3m/main.c,v
retrieving revision 1.1.1.3
retrieving revision 1.1.1.3.4.1
diff -u -r1.1.1.3 -r1.1.1.3.4.1
--- main.c	2001/03/23 04:38:30	1.1.1.3
+++ main.c	2001/03/28 02:34:12	1.1.1.3.4.1
@@ -59,8 +59,10 @@
 int w3m_dump = 0;
 int w3m_dump_source = 0;
 int w3m_dump_head = 0;
+int w3m_dump_head_source = 0;
 static void dump_source(Buffer *);
 static void dump_head(Buffer *);
+static void dump_head_source(Buffer *);
 int prec_num = 0;
 int prev_key = -1;
 int on_target = 1;
@@ -377,8 +379,9 @@
 	    }
 	    else if (!strcmp("-dump_source", argv[i])) {
 		w3m_dump = TRUE;
-		w3m_dump_source = TRUE;
 		w3m_dump_head = FALSE;
+		w3m_dump_source = TRUE;
+		w3m_dump_head_source = FALSE;
 		w3m_halfdump = FALSE;
 		if (COLS == 0)
 		    COLS = 80;
@@ -387,10 +390,20 @@
 		w3m_dump = TRUE;
 		w3m_dump_head = TRUE;
 		w3m_dump_source = FALSE;
+		w3m_dump_head_source = FALSE;
 		w3m_halfdump = FALSE;
 		if (COLS == 0)
 		    COLS = 80;
 	    }
+	    else if (!strcmp("-dump_head_source", argv[i])) {
+		w3m_dump = TRUE;
+		w3m_dump_head = FALSE;
+		w3m_dump_source = TRUE;
+		w3m_dump_head_source = TRUE;
+		w3m_halfdump = FALSE;
+		if (COLS == 0)
+		    COLS = 80;
+	    }
 	    else if (!strcmp("-halfdump", argv[i])) {
 		w3m_halfdump = TRUE;
 		w3m_dump = FALSE;
@@ -634,7 +647,9 @@
 	}
 	if (w3m_dump) {
 	    Currentbuf = Firstbuf = newbuf;
-	    if (w3m_dump_source)
+	    if (w3m_dump_head_source)
+		dump_head_source(Currentbuf);
+	    else if (w3m_dump_source)
 		dump_source(Currentbuf);
 	    else if (w3m_dump_head)
 		dump_head(Currentbuf);
@@ -776,6 +791,23 @@
 	printf("%s", ti->ptr);
     }
     puts("");
+}
+
+static void
+dump_head_source(Buffer * buf)
+{
+    TextListItem *ti;
+    Str url = parsedURL2Str(&(buf->currentURL));
+
+    if (buf->document_header == NULL)
+	return;
+    for (ti = buf->document_header->first; ti; ti = ti->next) {
+	printf("%s\n", ti->ptr);
+    }
+    printf("w3m-current-url: %s\n", url->ptr);
+    puts("");
+
+    dump_source(buf);
 }
 
 void
-- 
土屋 雅稔  ( TSUCHIYA Masatoshi )
    http://www-nagao.kuee.kyoto-u.ac.jp/member/tsuchiya/