Copy link to clipboard
Copied
In an Export plug-in, I need to read in the destination file path from scripting parameters. Often, the character at exportPath[0] is junk and not an actual part of the path (hence the check). Recently, this junk has actually been alphanumeric characters. I can write a more accurate platform-dependent workaround, but would prefer an actual solution. As a note, this happens whenever I use PIGetStr, not just in the case of reading filepaths.
Is there a standard way to handle this behavior?
Example:
case keyFilePath:
{
Str255 exportPath;
PIGetStr(token, &exportPath);
byte offset = 0;
if(!isalpha(exportPath[0]))
offset = 1;
strcpy_s((char*)gDestination, 256 - offset, (char*)exportPath + offset);
DescParams->playInfo = 0; //Don't pop dialog.
break;
}
Result in exportPath: Ec:\temp\assets\textures\brick_stacked_tile_01_SpecColor_gradients.dds
Expected: c:\temp\assets\textures\brick_stacked_tile_01_SpecColor_gradients.dds
From PITypes.h:
typedef unsigned char Str255[256]; /* first byte length of string. The string is zero terminated. */
It's pure legacy - this is how strings in ol' good Pascal used to be organized
Copy link to clipboard
Copied
From PITypes.h:
typedef unsigned char Str255[256]; /* first byte length of string. The string is zero terminated. */
It's pure legacy - this is how strings in ol' good Pascal used to be organized
Copy link to clipboard
Copied
So, those things that show up in green tell you how to use someone elses programming constructs. Fascinating stuff.
/facepalm. I even went to the definition in PITypes.h, and looked at it and was like "Hey, it's an unsigned character array of 256 characters" and never read the comment next to it.
Thank you for answering my question. It seems like I need to pay more attention to details in the future.