Ticket #38570

ruby bindingがうまく機能しない

Date d'ouverture: 2018-09-03 14:22 Dernière mise à jour: 2018-09-10 13:41

Rapporteur:
Propriétaire:
Type:
État:
Atteints
Composant:
(Aucun)
Jalon:
(Aucun)
Priorité:
5 - moyen
Sévérité:
5 - moyen
Résolution:
Aucun
Fichier:
Aucun

Détails

ruby bindingがうまくいっているか確認しているために、いつも次のスクリプトを 実行していますが:

ruby -e "require 'skf' ; puts Skf.convert('--oc=CP932', [0xa4, 0xa2].pack(\"C*\"))" | iconv -f CP932 -t UTF-8

skf 2.10.7だとうまく機能してないようです。2.10.6も同様にうまくいかないようです。2.10.5は上手く機能しています。 rubyのバージョンは2.5.1p57です。

skf 2.10.7:

$ ruby -e "require 'skf' ; puts Skf.convert('--oc=CP932', [0xa4, 0xa2].pack(\"C*\"))" | iconv -f CP932 -t UTF-8
〓〓
skf 2.10.5:
ruby -e "require 'skf' ; puts Skf.convert('--oc=CP932', [0xa4, 0xa2].pack(\"C*\"))" | iconv -f CP932 -t UTF-8
あ

Ticket History (3/6 Histories)

2018-09-03 14:22 Updated by: mtasaka
  • New Ticket "ruby bindingがうまく機能しない" created
2018-09-03 17:12 Updated by: mtasaka
Commentaire

skf-2.10.5とskf-2.10.7との差分をみて、取り敢えずskf-2.10.7のソースに対して以下の変更をすると、うまくいくようです。

--- skf_convert.i.orig	2018-08-18 01:39:08.000000000 +0900
+++ skf_convert.i	2018-09-03 17:07:17.038012806 +0900
@@ -472,7 +472,7 @@ struct Skf_localestring *skf_rbstring2sk
 	sstrdef->sstr = (unsigned char *)RSTRING_PTR(rstr);
 	sstrdef->length = RSTRING_LEN(rstr);
 	sstrdef->codeset = 
-	    skf_search_cname_w_alias((char *)rb_enc_name(rb_enc_get(rstr)));
+	    skf_search_cname(rb_enc_name(rb_enc_get(rstr)));
 	sstrdef->lwl_codeset = -1;	/* do not assume input locale */
     };
 

2018-09-04 00:13 Updated by: efialtes
  • Propriétaire Update from (Aucun) to efialtes
2018-09-06 19:48 Updated by: efialtes
Commentaire

ごめんなさい。ruby でコードセット未指定を指す "8-bit binary" が skf の alias にあるので、コードセットとして扱われて入力コードセット未定のまま処理が走っていました。 7.1 版でとりあえず黙らせています。

2018-09-07 11:01 Updated by: mtasaka
Commentaire

2.10.7.1でうまくいくことを確認しました。有り難うございます。

2018-09-10 13:41 Updated by: mtasaka
  • État Update from Ouvert to Atteints
Commentaire

一旦閉じます。有り難うございます。

Attachment File List

No attachments

Modifier

You are not logged in. I you are not logged in, your comment will be treated as an anonymous post. » Connexion