[Mew-dist 11759] prom-mew 1.94 and Mew-1.95b8 以降

藤原 誠/ Makoto Fujiwara makoto at example.com
1999年 12月 13日 (月) 13:03:16 JST


	                                      藤原  誠@会社
From: Makoto Fujiwara <makoto at example.com>
Subject: C-c C-m ... ->  mew-1.95b9/TODO
Date: Wed, 8 Dec 1999 09:58:25 +0900
Message-ID: <199912080058.JAA14300 at example.com>

makoto> (ここの環境はとりあえずNNTP を使わないので)
makoto> 1.95b9 を使わせていただいています。prom-mew 1.93.4 も併用
makoto> していますが、何も問題がありません。

これが大嘘でして、mew-mail-path がなくなってしまったのに、
(if (null mew-mail-path) (mew-init))
という部分がありまして、mew を予め起動しておかないと、うまく
動かないです。この引用しているメールに書いたことも、prom-mew
の所為で、多分 prom-mew を使っていない場合、意味不明だったの
ではないかと思っています。他にも例えば header に色が付かない
などがあります。

とりあえず次のようにしています。

--- prom-mew-1.94/prom-mew.el~	Sat Oct  9 09:47:53 1999
+++ prom-mew-1.94/prom-mew.el	Mon Dec 13 12:41:24 1999
@@ -400,6 +400,7 @@
     (run-hooks 'prom-previous-hook)
     (setq prom-previous-window-config (current-window-configuration))
     (if (null mew-mail-path) (mew-init))
+    (if mew-init-p () (mew-init))
     (prom-mew-init buf arg)
     (run-hooks 'prom-hook)
     ))

  「prom-mew は mew の内部の定義を多用しているのでmew が変わる
と、それに応じて変更するのは大変。beta 対応は遠慮したい」
と村田さんがおっしゃっています。
http://www02.so-net.ne.jp/~murata/software/prom.html

それで、 
./mew-func-var-const mew-old-dir mew-new-dir < prom-mew.el
とすると、どの辺を見ればいいかを表示するというのを作って見まし
た。(涙ぐましい努力と誰か言ってくれるでしょうか :-)

  ちょっと機能も中身も人に見せられるようなものではないのですが、
僕は、これなしには上の情報は見つけられませんでしたので、一応お
送りしておきます。prom-mew を使っていない人には何の関係もあり
ません。もう少し賢くなれば、機能だけは人に見せられるかなと思い
ます :-)

実は * が付けられないということもありました。これは上記だけ
では直らないようです。
---
(藤原)
-------------- next part --------------
#!/usr/local/bin/perl
#
# $Header: /home/makoto/perl/practice/RCS/mew-func-var-const,v 1.2 1999/12/13 02:51:08 makoto Exp $
  $rcsid = q$Id: mew-func-var-const,v 1.2 1999/12/13 02:51:08 makoto Exp $;
  $rcsid =~ s/Id://;

#------------ my_name for appropriate help message ----
# my name, strip all before '/' inclusively
# /home/fujiwara/perl/my_name -> my_name
$my_name = $0;
$my_name =~ s#(.*)/##;
#------------ my_path for getting right @INC path -----
# my location, strip rightmost '/' and right of it.
# /home/fujiwara/perl/my_path -> /home/fujiwara/perl
$my_path = $0;
$my_path =~ s|/[^/]+$||;
#---------------------
push(@INC,"$my_path");
require 'getopts.pl';

&Getopts('dhf');  
# ----------------- help -------------
if ( $opt_h ) {  &usage ; }
# -----------------------------------
$dir = $ARGV[0];
$new = $ARGV[1];

print $dir, "\n";
if ( -d $dir ) { chdir $dir }
else           { die "$dir should be existing directory.\n"};

foreach $EL ( sort <*.el> ) {
##    print $EL,"\n";
    open (EL) || print "problem opening el file($EL)\n";
    while(<EL>) {
	if ( /^\s*;/ ) { next }
	if ( /defconst (\S+)\s+/ ||
	     /defvar (\S+)\s+/   ||
	     /defun (\S+)\s+/          ) {
	    $symbol = $1 ;
##	    printf "%-20s: %s\n", $EL, $symbol;
	    $WHODEFINES{$symbol} .= $EL.' ';

	}}
    close($EL);}

# 標準入力から読んで、その中にどのような mew- という文字列がある
# かだけを @mew-文字列名に入れておく

while (<STDIN>) { 
    $count++;
    if ( /mew-/ ) { 
        s/\(/ /g;
        s/\)/ /g;
        s/\,/ /g;
        @primitives = split;
        foreach (@primitives) {
            if ( /^(mew-\S+)/ ) { 
                $symbol = $1 ; 
                $list{$symbol}++;
                eval  " push(\@$symbol,$count)\n";
	    }}}}

# 定義している *.el を表示する。
foreach $sym (sort keys %list ) {
    $ELrelated{$WHODEFINES{$sym}}++;  # sym を定義している関数に何があるかの一覧を作っておく
    if ( $opt_f ) {
	printf("%-40s -> %s\n", $sym,$WHODEFINES{$sym});}
    $func = $WHODEFINES{$sym}; $func =~ s/ //g;
    $INCLUDES{$func} .= $sym. ' ';
#             関数名                           
}

# lstat して時刻情報を調べる
###  print scalar(localtime(time())),"\n";
if ( -d $dir & -d $new ) {
    foreach $el ( sort keys %ELrelated ) {    
	$el =~ s/ //g;

	$file_dir = $
	$file_new = $new . '/'. $el ;
	$mtime_dir = (lstat($dir . '/'. $el ))[9]; $m_dir  = localtime($mtime_dir);
	$mtime_new = (lstat($new . '/'. $el ))[9]; $m_new  = localtime($mtime_new);
	if ( $mtime_dir == $mtime_new ) { next }
	printf("%-20s %s -> %s\n", $el,$m_dir,$m_new);
	print "   ", $INCLUDES{$el},"\n";
    }}

# ----------------
sub usage {
    print <<HELPHELP;
$my_name: 
Synonyms:
  $my_name [-d] [-h] 
Where:
   -d : debug
   -h : get help
   -f : print variable -> *.el file table
Note:

version: $rcsid
HELPHELP
    exit;
}
__END__
# $Log: mew-func-var-const,v $
# Revision 1.2  1999/12/13 02:51:08  makoto
# now showing  the name of primitive for each *.el file
#
# Revision 1.1  1999/12/13 02:37:56  makoto
# Initial revision
#
makoto at example.com■10:46:43/991213(~)> perl/practice/mew-func-var-const $SITELISP/{.mew-1.95b3,mew-1.95b9} < $SITELISP/a-first-files/prom-mew.el


Mew-dist メーリングリストの案内