[netatalk-ja:0119] Re: 3.0.2でPhotoshop CS5で濁音のファイルがセーブできない

HAT hat @ fa2.so-net.ne.jp
2013年 3月 28日 (木) 21:23:32 JST


HATです。一部訂正。

>> ad_write.c
>> 
>> 159 /* ------------------------ */
>> 160 int ad_rtruncate( struct adouble *ad, const off_t size)
>> 161 {
>> 162     EC_INIT;
>> 163
>> 164 #ifndef HAVE_EAFD
>> 165     if (ad->ad_vers == AD_VERSION_EA && size == 0)
>> 166         EC_NEG1( unlink(ad->ad_ops->ad_path(ad->ad_name, 0)) );
>> 167     else
>> 168 #endif
>> 169         EC_NEG1( sys_ftruncate(ad_reso_fileno(ad), size +
>> ad->ad_eid[ ADEID_    RFORK ].ade_off) );
>> 170
>> 171 EC_CLEANUP:
>> 172     if (ret == 0)
>> 173         ad->ad_rlen = size;
>> 174     else
>> 175         LOG(log_error, logtype_ad, "ad_rtruncate(\"%s\"): %s",
>> 176             fullpathname(ad->ad_name), strerror(errno));
>> 177     EC_EXIT;
>> 178 }
> 
> 既に観察したログによれば、ad->ad_nameはNFKDで保存されています。
> この構造体はAppleDoubleデータを生成するためのものですから、Appleの流儀に
> 従い、NFKDで保存するのは当たり前と考えます。

この構造体は、include/atalk/adouble.hで定義されており、

    char                *ad_name;          /* name in server encoding (usually UTF8)  */

になっています。
つまり、ad_nameはunix charsetあるいはvol charsetで保存されなければ
なりません。
ad_nameに「でざいん」をNFDで保存した時点で間違っていると思われます。

Photoshopなしで現象を再現させる方法が判明したので、追って報告します。

-- 
HAT


netatalk-ja メーリングリストの案内