executor/src/custom.c

134 lines
4.0 KiB
C

/* Copyright 1988 by Abacus Research and
* Development, Inc. All rights reserved.
*/
#if !defined (OMIT_RCSID_STRINGS)
char ROMlib_rcsid_custom[] =
"$Id: custom.c 131 2006-05-10 19:23:20Z ctm $";
#endif
#include "rsys/common.h"
#include "rsys/custom.h"
#include "rsys/version.h"
#include "rsys/aboutbox.h"
PRIVATE custom_block_t custom =
{
CUSTOM_MAGIC,
};
PRIVATE void *
find_custom_string (const char *str)
{
header_t *headerp;
void *retval;
for (headerp = custom.headers;
headerp->length && headerp->magic != *(uint32 *)str;
headerp = (header_t *)
((char *) headerp + headerp->length + sizeof *headerp));
;
if (headerp->length)
retval = headerp;
else
retval = NULL;
return retval;
}
PUBLIC custom_val_t *ROMlib_checksump;
PUBLIC custom_vals_t *ROMlib_creatorsp;
PUBLIC custom_chars_t *ROMlib_licensep;
PUBLIC custom_val_t *ROMlib_first_snp;
PUBLIC custom_val_t *ROMlib_last_snp;
PUBLIC custom_chars_t *ROMlib_splashp;
PUBLIC custom_val_t *ROMlib_about_boxp;
PUBLIC custom_chars_t *ROMlib_copyright_infop;
PUBLIC custom_chars_t *ROMlib_thank_you_infop;
PUBLIC custom_chars_t *ROMlib_registration_instructionsp;
PUBLIC custom_chars_t *ROMlib_magic_volumesp;
PUBLIC custom_val_t *ROMlib_must_registerp;
PUBLIC custom_chars_t *ROMlib_mac_cdromp;
PUBLIC custom_chars_t *ROMlib_mac_demo_idp;
PUBLIC custom_val_t *ROMlib_disable_command_key_equivsp;
PUBLIC custom_chars_t *ROMlib_restart_stringp;
PUBLIC custom_chars_t *ROMlib_menu_about_stringp;
PRIVATE custom_chars_t *version_stringp;
PUBLIC custom_chars_t *ROMlib_suffix_mapsp;
PUBLIC custom_chars_t *ROMlib_default_appp;
PUBLIC custom_val_t *ROMlib_days_of_demop;
/*
* The about box string is a pascal string with a leading 0 to satisfy some
* weird compatibility constraint.
*/
PRIVATE StringPtr
about_box_string_from_c_string (const char *str)
{
StringPtr retval;
int len;
len = strlen (str) + 2;
retval = (StringPtr) malloc (len);
if (retval)
{
retval[0] = len - 1;
retval[1] = 0;
memcpy (retval+2, str, len - 2);
}
return retval;
}
PRIVATE char *
executor_full_name_from_prefix (const char *str)
{
char *retval;
int len;
len = strlen (str) + 1 + strlen (EXECUTOR_VERSION) + 1;
retval = malloc (len);
if (retval)
sprintf (retval, "%s %s", str, EXECUTOR_VERSION);
return retval;
}
PUBLIC void
ROMlib_do_custom (void)
{
ROMlib_checksump = find_custom_string (CUSTOM_CHECKSUM);
ROMlib_creatorsp = find_custom_string (CUSTOM_CREATORS);
ROMlib_licensep = find_custom_string (CUSTOM_LICENSE);
ROMlib_first_snp = find_custom_string (CUSTOM_FIRST_SN);
ROMlib_last_snp = find_custom_string (CUSTOM_LAST_SN);
ROMlib_splashp = find_custom_string (CUSTOM_SPLASH);
ROMlib_about_boxp = find_custom_string (CUSTOM_ABOUT_BOX);
ROMlib_copyright_infop = find_custom_string (CUSTOM_COPYRIGHT_INFO);
ROMlib_thank_you_infop = find_custom_string (CUSTOM_THANK_YOU_INFO);
ROMlib_registration_instructionsp =
find_custom_string (CUSTOM_REGISTRATION_INSTRUCTIONS);
ROMlib_magic_volumesp = find_custom_string (CUSTOM_MAGIC_VOLUMES);
ROMlib_suffix_mapsp = find_custom_string (CUSTOM_SUFFIX_MAPS);
ROMlib_default_appp = find_custom_string (CUSTOM_DEFAULT_APP);
ROMlib_must_registerp = find_custom_string (CUSTOM_MUST_REGISTER);
ROMlib_mac_cdromp = find_custom_string (CUSTOM_MAC_CDROM);
ROMlib_mac_demo_idp = find_custom_string (CUSTOM_DEMO_IDENTIFIER);
ROMlib_disable_command_key_equivsp
= find_custom_string (CUSTOM_DISABLE_COMMAND_KEYS);
ROMlib_restart_stringp = find_custom_string (CUSTOM_RESTART_STRING);
ROMlib_menu_about_stringp = find_custom_string (CUSTOM_MENU_ABOUT_STRING);
if (ROMlib_menu_about_stringp)
about_box_menu_name_pstr
= about_box_string_from_c_string ((char *)
ROMlib_menu_about_stringp->chars);
version_stringp = find_custom_string (CUSTOM_VERSION_STRING);
if (version_stringp)
ROMlib_executor_full_name
= executor_full_name_from_prefix ((char *) version_stringp->chars);
ROMlib_days_of_demop = find_custom_string (CUSTOM_DEMO_DAYS);
}