w3m おぼえがき(2002年10月)

 
 2002年10月31日(木)23時36分 hsaka
w3m-0.3.2rc4-tab-1101.patch。 下記の機能追加とタブが多い場合の表示の複数行化。 あと、リンク上にカーソルがなくてもタブまでドラッグすると そのタブで開く様にした。 とりあえずこんなものかな。
 2002年10月31日(木)19時00分 hsaka
下のは、ほぼ出来た。 w3m-0.3.2 がリリースされたらちゃんと公開するかな。
 2002年10月31日(木)12時43分 hsaka
w3m-tab。う〜む、既存のタブで開く場合は厄介だなぁ。 特にフレームの時はボロボロ。まじめにやると結構いやかも。

追加予定の機能

N + TAB_LINK, TAB_GOTO  … N 個目のタブで開く (上記理由で厄介)
N + CLOSE_TAB           … N 個目のタブを削除 (簡単)
N + NEXT_TAB, PREV_TAB  … N 個、次(前)のタブを表示 (簡単)
N + TAB_LEFT, TAB_RIGHT … 現在のタブを、N 個、左(右)に移動 (まあ簡単)
 2002年10月31日(木)10時19分 hsaka
w3m-0.3.2 rc4。 だんだん release candidate じゃなくなってきた気がする(^^;
 2002年10月31日(木)03時11分 hsaka
w3m-0.3.2rc3-tab-1031.patch。マウスでの操作の追加。 まあ、それなりに面白いかな。
 2002年10月31日(木)00時18分 hsaka
w3m-0.3.2rc3-tab-1030.patch
 2002年10月30日(水)19時09分 hsaka
ふぅ。リリースまでは遠いかも。
 2002年10月30日(水)13時37分 hsaka
> download 中に、別のタグに…
画像(w3m-img)と同様に、download を子プロセスでやって親の方で監視すればいいかな。
普通の HTML ファイルの時もできるといえばできるか。 やっぱり、w3m-img と同様に、ソースの download が終わるまで reshapeBuffer() を繰り返す感じになっちゃうけど。

# しかし、(w3m-img もだが)汚い処理になりそうだなぁ。 w3m-img は遊びだからともかく。 綺麗に書くには、file.c の大幅書き直しだろうし、そんな時間も能力もないっす。

 2002年10月30日(水)12時23分 hsaka
某所での反応への返事
> □ 同じペイジが際限なくタブとして追加できるのは、そう使う方が悪いのだろう
>    か…
main.c の tabA() のコメントを外せばそうはならないけど。
一応、patch をつけます。

> □ たとえば、片方のタブででかいファイルを download 中に、別のタグに切り換
>    えられるようになれば、ほぼ、タブブラウザとなれるのではないだろうか
これは、とてもきついので、外部ブラウザで wget でも使ってください。

> □ 試せてないのですが、リンクをクリックした際、『新しいウィンドウで開く』
>    ようなアンカーの場合って、勝手にタブにしてくれるんでしょうか?
frame の時は(まだ?)全然考慮してません。
案外、勝手に新しいタブを作られる方がうっとうしいかも。

--- main.c.orig Wed Oct 30 10:38:17 2002
+++ main.c      Wed Oct 30 12:16:54 2002
@@ -5288,8 +5288,8 @@
     return n;
 }
 
-void
-newT(void)
+static void
+_newT(void)
 {
     TabBuffer *tag;
     Buffer *buf;
@@ -5301,6 +5301,7 @@
 
     buf = newBuffer(Currentbuf->width);;
     copyBuffer(buf, Currentbuf);
+    buf->nextBuffer = NULL;
     for (i = 0; i < MAX_LB; i++)
         buf->linkBuffer[i] = NULL;
     (*buf->clone)++;
@@ -5315,6 +5316,12 @@
     nTab++;
     CurrentTab->nextTab = tag;
     CurrentTab = tag;
+}
+
+void
+newT(void)
+{
+    _newT();
     displayBuffer(Currentbuf, B_FORCE_REDRAW);
 }
 
@@ -5387,17 +5394,19 @@
 tabA(void)
 {
     Buffer *buf;
+    Anchor *an;
  
-    newT();
+    an = retrieveCurrentAnchor(Currentbuf);
+    if (an == NULL)
+        an = retrieveCurrentForm(Currentbuf);
+    if (an == NULL)
+        return;
+
+    _newT();
     buf = Currentbuf;
     followA();
     if (buf != Currentbuf)
         delBuffer(buf);
-/*
-    else {
+    else
        closeT();
-       return;
-    }
-*/
-    displayBuffer(Currentbuf, B_NORMAL);
 }
 2002年10月30日(水)11時02分 hsaka
ちょっと修正。(って、使ってみた人いるのかな?)

--- main.c.orig Wed Oct 30 10:38:17 2002
+++ main.c      Wed Oct 30 10:51:15 2002
@@ -5301,6 +5301,7 @@
 
     buf = newBuffer(Currentbuf->width);;
     copyBuffer(buf, Currentbuf);
+    buf->nextBuffer = NULL;
     for (i = 0; i < MAX_LB; i++)
 	buf->linkBuffer[i] = NULL;
     (*buf->clone)++;
 2002年10月30日(水)00時42分 hsaka
w3m-0.3.2rc3-tab-1029.patch。 タブブラウザになってるかな?
実験版なのでソースコードとか見栄えはかなりいい加減だけど。
keymap の例。 意味は README.func を見てね。

  keymap  C-t     TAB_LINK
  keymap  C-s     TAB_MENU
  keymap  C-w     CLOSE_TAB
  keymap  C-f     NEXT_TAB
  keymap  C-b     PREV_TAB
 2002年10月29日(火)11時02分 hsaka
w3m-0.3.2 rc3。 問題なければ、そのまま w3m-0.3.2。
 2002年10月28日(月)13時47分 hsaka
w3m-0.3.2 rc2。 ところが、core dump するバグが発見されたり(悪いのは私)。
 2002年10月26日(土)13時20分 hsaka
w3m-0.3.2 rc1
行番号を表示しろとしつこいが、 これでどない? (というか、rc の前に出しましょう…)

ホームページへ 新着情報 コンピュータ コラム ダウンロード
用語集(索引) 用語集 プロフィール リンク 掲示板

このページへのお問い合わせは hsaka@mth.biglobe.ne.jp まで御願いします。