void *open_settings_w(char *sessionname) {
short sessVRefNum, tmpVRefNum;
long sessDirID, tmpDirID;
void *open_settings_w(char *sessionname) {
short sessVRefNum, tmpVRefNum;
long sessDirID, tmpDirID;
char *read_setting_s(void *handle, char *key, char *buffer, int buflen) {
int fd;
Handle h;
char *read_setting_s(void *handle, char *key, char *buffer, int buflen) {
int fd;
Handle h;
- if (GetHandleSize(h) > buflen) goto out;
- p2cstrcpy(buffer, (StringPtr)*h);
+ len = GetHandleSize(h);
+ if (len + 1 > buflen) goto out;
+ memcpy(buffer, *h, len);
+ buffer[len] = '\0';
+