Opened 14 years ago

Closed 3 years ago

Last modified 3 years ago

#9 closed defect (fixed)

@eawrite[] does not remove EA

Reported by: Anton Monroe Owned by: Gregg Young
Priority: major Milestone: Version-3.10
Component: Base Version:
Keywords: Cc: akm@…

Description

Passing a null string to @eawrite is supposed to remove the EA. Instead, it keeps the EA and sets the length to 0.

set ret=%@eawrite[file,.SUBJECT,the subject]
set ret=%@eawrite[file,.SUBJECT,] <--4OS2 thinks the EA is gone

Rexx shows the whole EA--

set ret=%@rexx[call SysGetEA 'file','.SUBJECT','EAval' ; parse var EAVal EAhdr +2 EAlen +2 EAstr ; say ' [REXX] EA == "'c2x(EAhdr)'" "'c2x(reverse(EAlen))'" "'EAstr'"']

I noticed it because I was getting error messages from FC/2 about invalid EAs when copying files from an NDFS drive. I don't know the 4OS2 EAs were the cause, but FC/2 has not complained since I cleaned out all the empty EAs.

I suspect the fix would be just a matter of passing 0 to DosSetPathInfo? instead of the length of the empty EA header.

A workaround is to use Rexx to delete the EA--

set ret=%@rexx[call SysPutEA "%filename", %EAname,]

Change History (5)

comment:1 Changed 14 years ago by Anton Monroe

Cc: akm@… added

comment:2 Changed 3 years ago by Gregg Young

Owner: somebody deleted
Status: newassigned

comment:3 Changed 3 years ago by Gregg Young

Owner: set to Gregg Young
Status: assignedaccepted

comment:4 Changed 3 years ago by Gregg Young

Resolution: fixed
Status: acceptedclosed

Rev 38305

comment:5 Changed 3 years ago by Gregg Young

Milestone: Version-3.10
Note: See TracTickets for help on using tickets.