How to use ap_ExData field in AnchorPath struct?

1 post / 0 new
salass00
salass00's picture
Offline
Last seen: 1 year 2 months ago
Joined: 2011-02-03 11:27
How to use ap_ExData field in AnchorPath struct?

It isn't clear to me what I should do to get the optional ExamineData structure from IDOS->MatchFirst() and IDOS->MatchNext() calls. The fact that it's explicitly stated in the AllocDosObject() that allocating an ExamineData this way is only for handlers and filesystems suggests to me that this is not the way to go at least.

I want the ExamineData instead of FileInfoBlock because I want my code to support large files as well as filenames longer than 107 characters.

  1. struct AnchorPath /* redefined for dos 50.76+ */
  2. {
  3. int32 ap_Magic; /* DOS compatibility magic */
  4. struct AChain * ap_Base; /* Pointer to first anchor */
  5. struct AChain * ap_Last; /* Pointer to last anchor */
  6. uint32 ap_BreakBits; /* Bits we want to break on */
  7. uint32 ap_FoundBreak; /* Bits we broke on. */
  8. uint32 ap_Flags; /* The flags bitfield. */
  9. struct ExamineData * ap_ExData; /* Ptr to optional ExamineData */
  10. APTR ap_DosPrivate; /* Internal DOS use only. */
  11. uint32 ap_Reserved[2]; /* Future use, currently 0 */
  12. int32 ap_Strlen; /* Length of the buffer */
  13. STRPTR ap_Buffer; /* Full name, (see ADO_Strlen) */
  14. struct FileInfoBlock ap_Info; /* The old FileInfoBlock space */
  15. uint32 ap_Private1; /* --PRIVATE, internal use !! */
  16. uint32 ap_Private2; /* --PRIVATE, internal use !! */
  17. };
  18.  
  19. /* ... */