void closevol(afpvol_t *vol)
{
- if (vol->vol->v_cdb)
+ if (vol->vol->v_cdb) {
cnid_close(vol->vol->v_cdb);
-
+ vol->vol->v_cdb = NULL;
+ }
memset(vol, 0, sizeof(afpvol_t));
}
if ( ! svol->vol->v_path) {
/* no source volume: escape special chars (eg ':') */
from = dvol->vol->v_volcharset; /* src = dst charset */
- flags |= CONV_ESCAPEHEX;
+ if (dvol->vol->v_adouble == AD_VERSION2)
+ flags |= CONV_ESCAPEHEX;
} else {
from = svol->vol->v_volcharset;
}
- if ( (svol->vol->v_path)
- && ! (svol->vol->v_flags & AFPVOL_USEDOTS)
- && (dvol->vol->v_flags & AFPVOL_USEDOTS)) {
- /* source is without dots, destination is with */
- flags |= CONV_UNESCAPEHEX;
- } else if (! (dvol->vol->v_flags & AFPVOL_USEDOTS)) {
- flags |= CONV_ESCAPEDOTS;
- }
-
int len = convert_charset(from,
dvol->vol->v_volcharset,
dvol->vol->v_maccharset,