[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 メーリングリストの案内