68user's page 掲示板

Prev< No. 1023〜1028> Next  [最新発言に戻る] [過去ログ一覧]
No. 1023 # 68user 2000/07/28 (金) 01:20:21
現在 Xt の勉強中。

@gongoさん
> 窓の表示とともにただ線を引くというのが
> イベントなのかどうかわからなかったため、
ご存知かもしれませんが一応説明しておきますと、X では
ウィンドウの最初の map 時や、他のウィンドウに隠れていた
ものが露出した場合に Expose イベントが飛んできます。

なので、X クライアントは Expose イベントが飛んでくるか
どうかを見張っていて、飛んできたら描画/再描画しなくては
いけません。これをしないと、ウィンドウ内が真っ白になります。
X サーバ側が再描画をしてはくれませんから (とりあえず
バッキングストアのことはおいとくとして)。

なお、最初の Expose が飛んでくる前 (Map する前) に描画
しようとすると、core 吐くか、X Protcol Error になった
ような記憶が。

# ↑Xlib のレイヤの話。Xt だけを使っているなら、
# イントリンシクスがよきにはからってくれます。
# http://X68000.startshop.co.jp/~68user/xprogram/xlib-1.html


@gaoさん
> kinput2をバックグラウンドで起動した後、 netscape を
> 起動しようとすると以下のようなメッセージを残してすぐに
> 落ちてしまいました。
> % kinput2 -canna -jserver remotehost &
canna の場合は、-cannaserver じゃなかったかなぁ。
-jserver は Wnn 用だったような。
# でも kterm などで漢字変換できているのなら、
# これでいいのかも。

> % netscape &
> [2] Bus error netscape(core dumped)
OS 名と、Netscape をどうやってインストールしたか、
X のリソース設定 (~/.Xdefaults の中身や xrdb -query の
結果) を書いて下さい。

というより、FreeBSD/NetBSD/OpenBSD/Linux あたりなら
日本語リソース付のパッケージが用意されているでしょうから、
それを使うのが簡単です。もしパッケージを使っているのに
こういう結果になるなら、変なリソース設定をしている
or リソース設定が足らない、あたりが怪しいかと。

No. 1024 # ちゃいぱ [URL] 2000/07/28 (金) 10:20:30
また、質問させてもらいます。

$aaa = 20000728;
$datedata=substr($aaa,0,4) . "/" . substr($aaa,4, 2) . "/" . substr($aaa,6, 2);
print "datedata=$datedata\n";

のように、20000728 を 2000/07/28のようにyyyy/mm/ddに変換していますが、
上記以外のスマートな方法を教えて下さい。

「perlでVBのFormat関数みたいのはないですか」って質問されたもので...。
よろしくお願い致します。

No. 1025 # Netboy 2000/07/28 (金) 12:46:58
スマートでないやり方です.
修飾子での簡単な型式変換をつけました.

print &format('20000728','yyyy mm dd',"yyyy/mm/dd\n");
print &format('20000728','y1 y2 mm dd',"'y2年mm月dd日\n");
print &format('20000726','yyy! m! d!',"m!月d!日\n");

$M{'m#07'}='July';
print &format('20000726','yyyy m# d!',"m# d!, yyyy\n");

sub format{
    local($src,$format,$template)=@_;
    local(@format,$ptr,$s,$d,$len);

    @format=split(/ /,$format);
    $ptr=0;
    foreach $s(@format){
                $len=length($s);
                $d=substr($src,$ptr,$len);

                if ($s=~/!/){$d+=0;}
                if ($s=~/#/){$d=$M{"$s$d"};}

    $template=~s/$s/$d/g;
                $ptr+=$len;
    }
    return $template;
}

No. 1026 # 68user 2000/07/28 (金) 13:54:57
> VBのFormat関数
というものを知らないので外しているかもしれませんが、普通は
    $date = 20000728;
    printf "%04d/%02d/%02d",$date=~m/^(\d\d\d\d)(\d\d)(\d\d)$/;

    $date = 20000728;
    $date =~ s|^(\d\d\d\d)(\d\d)(\d\d)$|$1/$2/$3|;
    printf $date
あたりかなぁ。

もし表示形式を指定できるようにするなら、date コマンドと同じ書式の
    http://www.jp.FreeBSD.org/cgi/mroff.cgi?subdir=man&man=strftime&dir=jpman-3.1.0%2Fman#toc0
にするかも。

No. 1027 # いち 2000/07/28 (金) 14:41:26
すいません、返答がずいぶん遅れてしまいました。
68userさん、いろいろアドバイスありがとうございます。

それで、いろいろMewについて見ていったのですが、
たまたま見ていたEmacsのINFOの中にMewという単語を見つけ、
中を見ていったら、何と既にMewがインストールされていました。
色々お手数おかけしてすいませんでした。

ただ、色々試みているのですが、いまだにMewを起動させる事ができません。
M-x Mew と入力すると起動すると書いてあるのですが、
これをどこで(どういう場面で)入力すればいいのかが解りません。
教えて頂けますか?

それから、最近、Netscape をkill した時に
Bus error という表示が出て、.netscape フォルダの中に、
lock ファイルができてしまいます。
以前はこんな事はなく、Done という表示が出て
lock ファイルも作られませんでした。
僕は最近、不必要だと思われるファイルを色々消していっているのですが、
その過程で、何か必要なファイルまで消していってしまったのでしょうか?

No. 1028 # gongo [E-mail] 2000/07/28 (金) 16:27:57
@68user様
> X ではウィンドウの最初の map 時や、他のウィンドウに隠れていた
> ものが露出した場合に Expose イベントが飛んできます。

ここら辺はなんとなくわかっていたのですが、
最終的にできてほしいプログラムのことを考えるあまり
頭の中でごちゃごちゃになっていました。
まだ線をひくのを確認していないのでやってみます。

Prev< No. 1023〜1028> Next  [最新発言に戻る] [過去ログ一覧]