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");