Hi,
Paul asks:
> was in another account TEST. Doing a LISTF, -3 on the two files shows
> the creator to be USER.PROD for the file in the PROD account and
> USER.TEST in the WIP account.
...
> ACCTVAR,FINFO("FOO.PUB.WIP","CREATOR") returns no value in SHOWVAR
> ACCTVAR. These are done from the TEST account.
Because the FINFO function uses the FLABELINFO intrinsic to get the
creator name, calling it with item # 4.
However, as implied by <plug> CSEQ </plug>, that's risky...FLABELINFO
item 4 is documented as returning a maximum of 8 characters, so when
the ability to create files across account boundaries was implemented, the
engineers in the lab said "hey, let's return an error or something
for FLABELINFO #4 if the creator isn't in the same account as the file,
because otherwise we'll be returning incorrect information".
Then, they added FLABELINFO
item 43 to get the "full" creator name (user.account).
Unfortunately, the "or something" turned into: "let's return 8 blanks"
and *NOT* report an error!
So, the CI should probably use item 43 ... but that raises the chance of
backwards incompatibility.
<plug>
Here's what CSEQ showed, BTW:
:cseq flabelinfo
CSEQ [2.0] - LPS Toolbox [A.01j] (c) 1995 Lund Performance Solutions
For Help at the CSEQ prompt enter ?
The number of days left in your DV Toolbox Demo is 158
Procedure FLABELINFO (
filename : anyvar record ; {R26}
mode : int16 ; {R25}
error : var int16 ; {R24}
itemnums : anyvar record ; {R23, @32 -> 4800}
itemvalues : anyvar record ; {SP-$0034}
itemerrors : anyvar record ) {SP-$0038, @32 -> 4800}
{ CCE: ok }
{ CCL: error }
{mode: }
{ 0 use file equation, if one exists }
{ 1 MUST use file equation (if none, error!) }
{ 2 ignore file equation, if one exists }
{ or: (as of 5.0, a different viewpoint) }
{ (00:11) reserved }
{ (11:01) Symbolic Link traversal (1=don't) }
{ (12:02) Callers Privilege Level }
{ (non-0: use specified value instead }
{ of caller's actual priv level) }
{ (14:02) 0: use file eq, if one exists }
{ 1: MUST use file eq }
{ 2: DON'T use file eq }
{error: }
{ 0 = no errors }
{ > 0 = file system error code. items not returned }
{ -1 = see itemerrors }
{itemerrors: (array of 16-bit err#s) }
{itemvalues: results, end-to-end (packed) }
{itemnums: (array of 16-bit item#s) }
{ 0 Stopper (must be last item#) }
{ 1 ca8 file name }
{ 2 ca8 group name }
{ 3 ca8 account name }
{ 4 ca8 creator name (maybe...use #43 to be safe) }
{ 5 u32 security matrix }
{ 6 u16 creation date calendar format }
{ 7 u16 access date " " }
{ 8 u16 modification date " " }
{ 9 i16 filecode }
...
{ 36 ca4 transaction mgt logset id }
{ new on 5.0: (?) }
{ 37 u16 logical device number }
{ 38 rec HFS filename; first 4 bytes are I/O: }
{ on input, size of param }
{ on output, #bytes in filename }
{ Filename will be terminated by null. }
{ 39 u32 # hard links to file }
{ 40 i32 time since last file access (clock format) }
{ 41 i32 time of last file status change (clock fmt) }
{ 42 u16 date of last file status change (calendar) }
{ 43 ca32 file owner. (May be "0") }
...
</plug>
--
Stan Sieler [log in to unmask]
http://www.allegro.com/sieler.html
|