[Shinji-devel 23] manaが複数起動できない件

Back to archive index

Masanari Yamamoto h0131****@ice*****
2005年 10月 1日 (土) 22:19:26 JST


山本です。

manaを2つ起動すると、以下のようなエラーが発生することは先日報告いたし
ましたが、その原因がわかりました。
Fatal error: exception Dbm.Dbm_error("Can't open file /home/yamamoto/.manadic")

manaの個人辞書のファイルは私の環境では以下の2つがあります。
.manadic.dir
.manadic.pag
(FreeBSDでは.manadic.dbになるそうです。)
しかし、personalDict.mlでは.manadicというファイルの存在を確認しており、
その結果個人辞書があるにもかかわらず、新しく個人辞書を作成しようとして
エラーが発生しています。

また、新しく個人辞書を作成するときには、Dbm.Dbm_createフラグに加えて、
Dbm.Dbm_rdwrフラグが必要なようです。

この問題を修正するパッチを添付します。

*** mana-0.1.5.orig/mana/personalDict.ml        2005-10-01 21:17:53.268309869 +0900
--- mana-0.1.5/mana/personalDict.ml     2005-10-01 22:10:17.182105188 +0900
***************
*** 27,39 ****
    Unix.close lock_file

  let db =
!   if not (Sys.file_exists Config.personal_dict_file) then begin
      let file =
!       Dbm.opendbm Config.personal_dict_file [Dbm.Dbm_create] 0o600 in
!     Dbm.close file
!   end;
!   let flags = [Dbm.Dbm_rdonly] in
!   Dbm.opendbm Config.personal_dict_file flags 0o600

  let () =
    at_exit (fun () -> Dbm.close db)
--- 27,42 ----
    Unix.close lock_file

  let db =
!   try
!     let flags = [Dbm.Dbm_rdonly] in
!     Dbm.opendbm Config.personal_dict_file flags 0o600
!   with Dbm.Dbm_error msg ->
      let file =
!       Dbm.opendbm Config.personal_dict_file [Dbm.Dbm_create; Dbm.Dbm_rdwr] 0o600 in
!     Dbm.close file;
!     let flags = [Dbm.Dbm_rdonly] in
!       Dbm.opendbm Config.personal_dict_file flags 0o600
!

  let () =
    at_exit (fun () -> Dbm.close db)

-- 
山本将也



Shinji-devel メーリングリストの案内
Back to archive index