[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[mhc:01678] Re: mhc-palm.rb を使った AddressDB の読み込み
乃村です.
On Sat, 12 Oct 2002 18:02:42 +0900,
Junichi SEGAWA <jsegawa@xxxxxxxxxxxxxxx> said:
> mhc(current-snap20020710)についているmhc-palm.rbを使って、
> PalmのAddressDBの読み込みを行いたいのですが、
> 下記二点によりうまく行きません。
うぅ.お察っしのように,AddressDB については,書きかけのままで,
ちゃんと動かないと思います.file からデータを取るところはできて
いたかもしれません.
> ♪1 782行目のtypo
>
> @recClass = PilotAddRec
> ↓
> @recClass = PilotAddressRecord
> ♪2 769行目でget_app_infoの呼び出し
>
> get_app_infoはPilotFileのメソッドなので、
> PilotAddressDBのメソッドとしては呼べません。
> 769-774行 をコメントアウトすると動くのですが、
> これだと、AddressAppInfoが取れずに困っています。
>
> 774行目 *PiLib .unpack_AddressAppInfo(app_info)
これはですね,pilot-link の dlp.c の dlp_ReadAppBlock() から戻って来た
値を渡してやらないといけません.で,mhc_pilib.c には,
dlp_ReadAppBlock へのゲートを提供していません.
以下のようなパッチがヒットになるかもしれません.申し訳ないですが,
まるでチェックしていません.
--
nom
Index: mhc_pilib.c
===================================================================
RCS file: /cvsroot/mhc/ruby-ext/mhc_pilib.c,v
retrieving revision 1.3
diff -u -r1.3 mhc_pilib.c
--- mhc_pilib.c 2002/06/21 00:57:00 1.3
+++ mhc_pilib.c 2002/10/12 10:24:55
@@ -249,6 +249,23 @@
}
/****************************************************************/
+/******************** Application Info ********************/
+/****************************************************************/
+
+static VALUE rdlp_ReadAppBlock(VALUE obj, VALUE sd, VALUE db)
+{
+ int len;
+ unsigned char buffer[0xffff];
+
+ len = dlp_ReadAppBlock(FIX2INT(sd), FIX2INT(db), 0, buffer, 0xffff);
+
+ if (len <= 0)
+ return Qnil;
+ else
+ return str_new(buffer, len);
+}
+
+/****************************************************************/
/******************** DB Record Manipulation ********************/
/****************************************************************/
@@ -645,6 +662,9 @@
/* open, close DB */
mfunc(mPiLib, "dlp_OpenDB", rdlp_OpenDB, 2);
mfunc(mPiLib, "dlp_CloseDB", rdlp_CloseDB, 2);
+
+ /* App info */
+ mfunc(mPiLib, "dlp_ReadAppBlock", rdlp_ReadAppBlock, 2);
/* record manipulation */
mfunc(mPiLib, "dlp_ReadRecordByIndex", rdlp_ReadRecordByIndex, 3);
Index: lib/mhc-palm.rb
===================================================================
RCS file: /cvsroot/mhc/ruby-ext/lib/mhc-palm.rb,v
retrieving revision 1.7
diff -u -r1.7 mhc-palm.rb
--- lib/mhc-palm.rb 2001/09/12 03:44:56 1.7
+++ lib/mhc-palm.rb 2002/10/12 10:24:55
@@ -128,6 +128,10 @@
PiLib .dlp_ResetSyncFlags(@sd, @db)
return self
end
+
+ def get_app_info()
+ return PiLib .dlp_ReadAppBlock(@sd, @db)
+ end
end
################################################################
@@ -779,7 +783,7 @@
## @phoneLabels[0..7] =
## [会社, 自宅, Fax, その他, E-mail, 代表, ポケベル, 携帯]
- @recClass = PilotAddRec
+ @recClass = PilotAddRecord
end
end