sqInt getAttributeIntoLength(sqInt indexNumber, sqInt byteArrayIndex, sqInt length)


Parms:
indexNumber, a negative or positive number, or zero
byteArrayIndex a pointer to squeak memory, use pointerForOop(byteArrayIndex) to convert
length an agreed upon length for the storage area.

return: char*, or sucess(0) to fail primitive.
From: Interpreter
Why:
Returns char* to an empty string or magic value strings. which might be arguments to the VM at startup.
Works in conjunction with attributeSize which calls it to get data and use that for sizing.
Do NOT return NULL
ON unix systems for numbers < 0 it returns the arguments passed to the program via the cmd line
On unix systems for numbers > 2 it returns the
number
0 return vmName number
1 return imageName number
1001 number
1002 number
1003 number
1004 number
1006 Responsibility:
MacIntosh
os-9/OSXCarbon
indexNumber = 2, return document name, this is not allowed by unix port
BUGS This is not valid, not set, so returns empty string, also use of negative # does not match unix implementation
indexNumber = 1001, return 'Mac OS'
indexNumber = 1002, return Gestalt(gestaltSystemVersion
indexNumber = 1003, return Gestalt(gestaltSysArchitecture
indexNumber = 1004, return
CFBundleShortVersionString and interpreterVersion
indexNUmber = 1005, ignore
indexNumber = 1006, return build string, which is say 'Mac Carbon 3.8.18b3 10-Apr-08 >DC0EAF5D-C46C-479D-B2A3-DBD4A2DF95A8<'
indexNumber = 1201, return 255 that is the number of characters in a file name
indexNumber = 1202, return last file error number, was used by some macintosh VM to return file error information, not valid anymore


Cocoa:
if indexNumber < 0 and negated is between 1 and the number of arguments then return the start up argument as a char*
if indexNumber is > 0 and if you subtract 2 from it and it is between 1 and the number of arguments then return the startup argument as char*
indexNumber = 1001, return 'Mac OS'
indexNumber = 1002, return Gestalt(gestaltSystemVersion
indexNumber = 1003, return Gestalt(gestaltSysArchitecture
indexNumber = 1004, return
CFBundleShortVersionString and interpreterVersion
indexNumber = 1005, return 'Aqua'
indexNumber = 1006, return build string, which is say "Mac Cocoa 5.7b1 15-Jun-10 >34286DE5-3BD3-40D8-9700-4C41C772B16B<"
or maybe "Mac Cocoa Cog 5.8b10 07-Sep-10 >8AD3A516-DBAC-4CD4-BC89-8F21317DF7E1<
indexNumber = 1007, if stack vm return interpBuildInfo
indexNumber = 1008, if cog vm return
cogitBuildInfo

iPhone
if indexNumber < 0 and negated is between 1 and the number of arguments then return the start up argument as a char*
{However on the iPhone it's hard to say how you would pass in an argument since there is no cmd-line interface}
if indexNumber is > 0 and if you subtract 2 from it and it is between 1 and the number of arguments then return the startup argument as char*
indexNumber = 1001, return iPhone
indexNumber = 1002, return iPhone BUG
indexNumber = 1003, return iPhone BUG
indexNumber = 1004, return
CFBundleShortVersionString and interpreterVersion
indexNumber = 1006, return build string, which is say 'iPhone 1.0.1b1 18-May-08 >1B1BAAE0-F4CA-4192-B3E5-4FE51E5BB820<'
indexNumber = 1007, if stack vm return interpBuildInfo
indexNumber = 1008, if cog vm return
cogitBuildInfo
indexNumber = 1201, return 255 that is the number of characters in a file name
indexNumber = 1202, return last file error number, was used by some macintosh VM to return file error information, not valid anymore

Unix
indexNumber = 1005, return dpy->winSystemName
indexNumber = 1006, return VM_BUILD_STRING, "Unix built on "DATE " "TIME" Compiler: "VERSION"

Windows
if indexNumber is > 0 and <= 1000 return image options
if indexNumber is < 0 return VM options
indexNumber = 1001, return
Win32
indexNumber = 1002, return NT, 95, CE
indexNumber = 1003, return SH, MIPS, IX86
indexNumber = 1004, return interpreterVersion
indexNumber = 1005, return
Win32
indexNumber = 1006, return vmBuildString
indexNumber = 10001, return hwInfoString
indexNumber = 10002, return osInfoString
indexNumber = 10003, return gdInfoString

BUGS
If attributeSize(1) followed by getAttribute(1) does not return the same sized element the results will be bogus.
Possible memory corruption can occur.
There are no comments on this page.
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki