diff --git a/camlibs/ptp2/ptp.c b/camlibs/ptp2/ptp.c index a1d2b504a..e7843b0c7 100644 --- a/camlibs/ptp2/ptp.c +++ b/camlibs/ptp2/ptp.c @@ -4982,7 +4982,7 @@ ptp_render_ofc(PTPParams* params, uint16_t ofc, int spaceleft, char *txt) if (!(ofc & 0x8000)) { for (i=0;ideviceinfo.VendorExtensionID) { case PTP_VENDOR_EASTMAN_KODAK: @@ -5004,7 +5004,7 @@ ptp_render_ofc(PTPParams* params, uint16_t ofc, int spaceleft, char *txt) case PTP_VENDOR_MICROSOFT: for (i=0;ideviceinfo.VendorExtensionID) { case PTP_VENDOR_MICROSOFT: for (i=0;iflags & want) == want) return PTP_RC_OK; - if ( (want & PTPOBJECT_OBJECTINFO_LOADED) && - (!(ob->flags & PTPOBJECT_OBJECTINFO_LOADED)) - ) { +#define X (PTPOBJECT_OBJECTINFO_LOADED|PTPOBJECT_STORAGEID_LOADED|PTPOBJECT_PARENTOBJECT_LOADED) + if ((want & X) && ((ob->flags & X) != X)) { ret = ptp_getobjectinfo (params, handle, &ob->oi); if (ret != PTP_RC_OK) return ret; //debug_objectinfo(params, handle, ¶ms->objects[i].oi); - ob->flags |= PTPOBJECT_OBJECTINFO_LOADED|PTPOBJECT_STORAGEID_LOADED|PTPOBJECT_PARENTOBJECT_LOADED; + if (!ob->oi.Filename) ob->oi.Filename=strdup(""); + ob->flags |= X; } +#undef X if ( (want & PTPOBJECT_MTPPROPLIST_LOADED) && (!(ob->flags & PTPOBJECT_MTPPROPLIST_LOADED)) ) {