namazu-ml(avocado)


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

Re: Namazu BOF :-p



higuchi@xxxxxxxxxxxxxxxxxxx (910699) wrote:

>もし可能であれば、 同伴者を一名追加させてください。
>
>     塩原      ○     (樋口の同伴者)

某 S◯ftware Design 編集部の方ですね :-)。


>それと、私事で申し訳ないのですが、今回は一週間の長期出張ということで、
>11/7から、IP unreachableな状態になってしまします。モバイルという洒落た
>生活にはなじんでおりませんので、確実にMLを読めるとは限りません。出来れば、
>それまでに一次会の場所等FIXして頂けると助かります。

ではそろそろ場所を決めないといけませんね。前回は広瀬さんに幹事を引
き受けてもらいましたが、今回はどうしませう?

-- Satoru Takabayashi

おまけ

大量のファイルのコード変換を行う際に nkf はファイルの上書きができ
ないので不便です。かといって qkc は -j オプションの処理がまずいの
で使えません。そこで、 nkf を改造してファイルの上書きができるよう
にしてみました。元のタイムスタンプとパーミッションは保存されます。
お試しあれ。

% nkf -OW *

のように -OW オプションをつけて使います。


10a11,14
> ** Copyright (C) 1998
> ** 連絡先: 高林哲 overwrite support
> ** (E-Mail Address: satoru@xxxxxxxxxxxxx)
> **
27c31
<       "5/9610/Shinji Kono, COW";
---
>       "11/02/1998/Satoru Takabayashi";
65a70
> ** OW  Overwrite
117a123,127
> /* added by satoru@xxxxxxxxxxxxx */
> #include <sys/stat.h>
> #include <utime.h>
> 
> 
228a239
> int             overwrite = FALSE;
397a409,412
>                 if(*cp=='W') {
>                     *cp++;
>                     overwrite = TRUE;
>                 }
443a459
>           char *outfname = "nkf.out";
450,460c466,471
<                   if(argc == 1 ) {
<                       if(freopen(*argv++, "w", stdout) == NULL) {
<                           perror (*--argv);
<                           return (-1);
<                       }
<                       argc--;
<                   } else {
<                       if(freopen("nkf.out", "w", stdout) == NULL) {
<                          perror (*--argv);
<                          return (-1);
<                       }
---
>                   if (overwrite) {
>                       outfname = tempnam(".", "nkftmp");
>                   }
>                   if(freopen(outfname, "w", stdout) == NULL) {
>                       perror (*--argv);
>                       return (-1);
483a495,517
>               if (overwrite) {
>                   char *origfname = *(argv -1);
>                   struct stat     sb;
>                   struct utimbuf	tb;
>                   if (stat(origfname, &sb)) {
>                       fprintf(stderr, "Can't stat %s\n", origfname);
>                   }
>                   tb.actime  = sb.st_atime;
>                   tb.modtime = sb.st_mtime;
>     
>                   if (rename(outfname, origfname))
>                       fprintf(stderr, "Can't rename %s to %s\n",
>                               outfname, origfname);
> 
>                   /* タイムスタンプを復元 */
>                   if (utime(origfname, &tb)) {
>                       fprintf(stderr, "Can't set timestamp %s\n", origfname);
>                   }
>                   /* パーミッションを復元 */
>                   if (chmod(origfname, sb.st_mode)) {
>                       fprintf(stderr, "Can't set permission %s\n", origfname);
>                   }
>               }
1750a1785
>     fprintf(stderr,"OW       Overwrite\n");