diff --git a/README b/README index cd7ed6a..2ef53c8 100644 --- a/README +++ b/README @@ -10,8 +10,6 @@ just like emulation a lot, you probably don't want to spend any time with Executor. Included are a bunch of auxiliarly files and miscellaneous front-ends. -It's unlikely anything other than the Linux and win32 ports can be -made to go. The DOS port required various other libraries that we had permission to use, but that we did not necessarily have the permission to publish @@ -25,7 +23,7 @@ install of syn68k): mkdir -p build/debug-linux cd build/debug-linux - ../../util/configure.sh '--target=i486-linux' '--host=i486-linux' '--front-end=x' '--target-gcc=gcc' '--cflags=-fno-strict-aliasing -I/usr/X11R6/include -DNDEBUG -O0 -finline-functions -g -Wall -DRELEASE_INTERNAL -DERROR_SUPPORTED_MASK="(~0)"' '--root=../..' '--target-file-format=glibc' '--sound=linux' '--syn68k-target=i486-linux-glibc' + ../../util/configure.sh '--target=i486-linux' '--host=i486-linux' '--front-end=x' '--target-gcc=gcc' '--cflags=-fno-strict-aliasing -I/usr/X11R6/include -O0 -finline-functions -g -Wall' '--root=../..' '--target-file-format=glibc' '--sound=linux' '--syn68k-target=i486-linux-glibc' make That should leave you with a binary called executor. Unfortunately, without @@ -44,7 +42,7 @@ something like mkdir -p build/debug-linux cd build/debug-linux - ../../util/configure.sh '--target=i486-linux' '--host=i486-linux' '--front-end=x' '--target-gcc=gcc -m32' '--cflags=-fno-strict-aliasing -I/usr/X11R6/include -DNDEBUG -O0 -finline-functions -g -Wall -DRELEASE_INTERNAL -DERROR_SUPPORTED_MASK="(~0)"' '--root=../..' '--target-file-format=glibc' '--sound=linux' '--syn68k-target=i486-linux-glibc' + ../../util/configure.sh '--target=i486-linux' '--host=i486-linux' '--front-end=x' '--target-gcc=gcc -m32' '--cflags=-fno-strict-aliasing -I/usr/X11R6/include -O0 -finline-functions -g -Wall' '--root=../..' '--target-file-format=glibc' '--sound=linux' '--syn68k-target=i486-linux-glibc' make However, you may find that you need to hand-edit Makefile and change the line @@ -61,7 +59,7 @@ the SDL-based version of Executor on Linux, you can try: mkdir -p build/debug-linux-sdl cd build/debug-linux-sdl - ../../util/configure.sh '--target=i486-linux' '--host=i486-linux' '--front-end=sdl' '--cflags=-fno-strict-aliasing -I/usr/X11R6/include -DNDEBUG -O0 -finline-functions -g -Wall -DRELEASE_INTERNAL -DERROR_SUPPORTED_MASK="(~0)"' '--root=../..' '--target-file-format=glibc' '--sound=sdl' '--syn68k-target=i486-linux-glibc' + ../../util/configure.sh '--target=i486-linux' '--host=i486-linux' '--front-end=sdl' '--cflags=-fno-strict-aliasing -I/usr/X11R6/include -O0 -finline-functions -g -Wall' '--root=../..' '--target-file-format=glibc' '--sound=sdl' '--syn68k-target=i486-linux-glibc' make If you have SDL installed and would like to play with @@ -69,10 +67,13 @@ the SDL-based version of Executor on Mac OS X Intel, you can try: mkdir -p build/debug-macosx-sdl cd build/debug-macosx-sdl - ../../util/configure.sh '--target=i486-macosx' '--host=i486-macosx' '--front-end=sdl' '--cflags=-fno-strict-aliasing -I/usr/X11R6/include -DNDEBUG -O0 -finline-functions -g -Wall -DRELEASE_INTERNAL -DERROR_SUPPORTED_MASK="(~0)"' '--root=../..' '--target-file-format=glibc' '--sound=sdl' '--syn68k-target=i486-macosx-glibc' + ../../util/configure.sh '--target=i486-macosx' '--host=i486-macosx' '--front-end=sdl' '--cflags=-fno-strict-aliasing -I/usr/X11R6/include -O0 -finline-functions -g -Wall' '--root=../..' '--target-file-format=glibc' '--sound=sdl' '--syn68k-target=i486-macosx-glibc' make -The Mac OS X version has problems, especially with quitting. +In the past it was possible to cross-compile a version of Executor for +Windows using mingw32. So far that port hasn't been tried since +putting the code on Github. It probably doesn't work, but probably +could be made to work without much effort. My email address is still , although ARDI itself is defunct. I get a ridiculous amount of spam and will quite possibly diff --git a/TODO b/TODO index dc666f3..adc7127 100644 --- a/TODO +++ b/TODO @@ -1,8 +1,15 @@ - Get rid of old copy-protection stuff - package up the System Folder and whatnot so that people w/o the old executor-aux can run Executor + do this before or after switching to GNU build system? + + probably get rid of most of the customization stuff (don't yet + wholesale kill it, since some might be useful as per-user, + per-app or command line configuration) + + splash screen stuff: does it even make sense anymore, + since the app should come up quickly now + Try building the mingw32 version using the mingw32 toolchain for Fedora 11 (mingw32 has been done before) diff --git a/src/Makefile.am b/src/Makefile.am index ba816e2..9ad73b1 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -40,13 +40,13 @@ executor_SOURCE = \ dump.c trapname.c float4.c float5.c float7.c floatnext.c font.c \ gestalt.c globals.c \ image.c image_inits.c iu.c launch.c main.c mman.c mmansubr.c \ - notify.c hle.c osevent.c osutil.c pack.c protector.c scrap.c script.c \ + notify.c hle.c osevent.c osutil.c pack.c scrap.c script.c \ segment.c serial.c setuid.c slash.c \ sounddriver.c sound.c soundIMVI.c soundfake.c \ stdfile.c romlib_stubs.c \ snth5.c syserr.c toolevent.c toolmath.c toolutil.c time.c vbl.c \ syncint.c virtualint.c refresh.c autorefresh.c \ - license.c aboutbox.c licensetext.c dcmaketables.c \ + aboutbox.c licensetext.c dcmaketables.c \ dcconvert.c rgbutil.c keycode.c option.c parseopt.c parsenum.c \ desperate.c \ version.c shutdown.c uniquefile.c sigio_multiplex.c \ diff --git a/src/PSprint.c b/src/PSprint.c index e06ad53..b62a30a 100644 --- a/src/PSprint.c +++ b/src/PSprint.c @@ -504,9 +504,9 @@ static void dumpimage( unsigned char *p, int numrows, int numbytes, toskip = rowbytes - numbytes; context = DPSGetCurrentContext(); - for (i = CRACKER_ZERO; i < numrows; ++i) + for (i = 0; i < numrows; ++i) { - for (j = CRACKER_ZERO; j < numbytes; ++j) + for (j = 0; j < numbytes; ++j) DPSPrintf(context, "%02X", *p++); DPSPrintf(context, "\n"); p += toskip; diff --git a/src/PSstrings.c b/src/PSstrings.c index 97345f3..9935054 100644 --- a/src/PSstrings.c +++ b/src/PSstrings.c @@ -221,16 +221,6 @@ const char ROMlib_page_end[] = #endif "%%%%EndDocument\n" -#if defined (PRINT_DEMO_WATERMARK) -"gsave\n" -"/Helvetica findfont2 250 scalefont setfont\n" -"75 200 moveto\n" -"1 -1 scale\n" -"%d rotate\n" -"(Demo) false charpath 1 setlinewidth stroke\n" -"grestore\n" -#endif - "/showpage systemdict begin { showpage } bind end def\n" #if !defined (NEXTSTEP) "showpage\n" diff --git a/src/aboutbox.c b/src/aboutbox.c index fe5a7f5..c516353 100644 --- a/src/aboutbox.c +++ b/src/aboutbox.c @@ -9,8 +9,6 @@ char ROMlib_rcsid_aboutbox[] = #include "rsys/common.h" -#if defined (SUPPORT_ABOUT_EXECUTOR_BOX) - #include "rsys/aboutbox.h" #include "rsys/mman.h" #include "rsys/vdriver.h" @@ -36,374 +34,6 @@ char ROMlib_rcsid_aboutbox[] = #include "rsys/gestalt.h" #include "rsys/osevent.h" -#if !defined (TIME_OUT_DAYS) - -#define days_left_func() (1) - -#else - -#include "rsys/cookie.h" - -#if defined (LINUX) -#define COOKIE_FILE "/etc/opt/executor/.xp" -#endif - - -#if defined (LINUX) || defined (MSDOS) - -#if defined (MSDOS) - -#define COOKIE_FILE "excook.xp" - -PRIVATE char * -viable_path (char vol, const char *path) -{ - char *retval; - int path_len, retval_size; - - path_len = strlen (path); - retval_size = sizeof vol + sizeof ':' + path_len + 1 + sizeof (COOKIE_FILE); - retval = malloc (retval_size); - if (retval) - { - struct stat sbuf; - - sprintf (retval, "%c:%s", vol, path); - if (stat (retval, &sbuf) != 0 || !S_ISDIR (sbuf.st_mode)) - { - free (retval); - retval = NULL; - } - else - { - if (path[1] != 0) /* test for non-root directory */ - strcat (retval, "/"); - strcat (retval, COOKIE_FILE); - } - } - return retval; -} - -#endif - -PRIVATE char * -cookie_file_name (void) -{ - char *retval; - -#if defined (LINUX) - retval = strdup (COOKIE_FILE); -#elif defined (MSDOS) - static char vols[] = - { - 'C', - 0, /* to be filled in with ROMlib_start_drive*/ - }; - static char *dirs[] = - { - "/dos", - "/windows", - "/winnt", - "/", - }; - int i, j; - - vols[NELEM (vols)-1] = ROMlib_start_drive; - retval = NULL; - for (i = 0; !retval && i < (int) NELEM (vols); ++i) - for (j = 0; !retval && j < (int) NELEM (dirs); ++j) - retval = viable_path (vols[i], dirs[j]); - -#else -#error need cookie file name -#endif - return retval; -} - -#define open_cookie_file ocf - -PRIVATE -FILE *open_cookie_file (const char *mode) -{ - FILE *retval; - char *file; - - file = cookie_file_name (); - retval = file ? fopen (file, mode) : NULL; - if (!retval) - warning_trace_info ("%s", file ? file : "NULL"); - if (file) - free (file); - - return retval; -} -#endif - -PRIVATE boolean_t -retrieve_cookie (cookie_t *cookiep) -{ - boolean_t retval; - -#if defined (LINUX) || defined (MSDOS) - retval = FALSE; - { - FILE *fp; - - fp = open_cookie_file ("rb"); - if (fp) - { - retval = fread (cookiep, sizeof *cookiep, 1, fp) == 1; - fclose (fp); - } - } -#elif defined (CYGWIN32) - - retval = win_retrieve_cookie (cookiep); - -#else -#warning not implemented -#endif - - return retval; -} - -PRIVATE long -today (void) -{ - time_t t; - struct tm tm; - int retval; - - time (&t); - tm = *localtime (&t); - retval = (long) tm.tm_year * 365 + tm.tm_yday; - return retval; -} - -PRIVATE long -unify_version (int major, int minor) -{ - long retval; - - retval = major * 10000 + minor; - return retval; -} - -#define leave_cookie lc - -PRIVATE boolean_t -leave_cookie (const cookie_t *cookiep) -{ - boolean_t retval; - -#if defined (LINUX) || defined (MSDOS) - retval = FALSE; - { - FILE *fp; - - fp = open_cookie_file ("wb"); - if (fp) - { - retval = (fwrite (cookiep, sizeof *cookiep, 1, fp) == 1 && - fclose (fp) == 0); - } - if (!retval) - warning_trace_info ("fp = %p", fp); - } -#elif defined (CYGWIN32) - retval = win_leave_cookie (cookiep); - if (!retval) - warning_trace_info (NULL_STRING); -#else -#error "don't know how to leave cookie" -#endif - return retval; -} - -#define COOKIE_RES_TYPE TICK(" xp ") -enum { COOKIE_RES_ID = 0 }; - -PRIVATE boolean_t -retrieve_system_cookie (cookie_t *cookiep) -{ - boolean_t retval; - Handle h; - INTEGER rn; - - rn = CW (CurMap); - UseResFile (0); - h = GetResource (COOKIE_RES_TYPE, COOKIE_RES_ID); - if (!h) - retval = FALSE; - else - { - if (cookiep) - *cookiep = *(cookie_t *) STARH (h); - retval = TRUE; - } - UseResFile (rn); - return retval; -} - -#define leave_system_cookie lsc - -PRIVATE boolean_t -leave_system_cookie (const cookie_t *cookiep) -{ - boolean_t retval, need_to_add; - Handle h; - INTEGER rn; - - retval = TRUE; - rn = CW (CurMap); - UseResFile (0); - h = GetResource (COOKIE_RES_TYPE, COOKIE_RES_ID); - if (h) - need_to_add = FALSE; - else - { - need_to_add = TRUE; - h = NewHandleSys (sizeof *cookiep); - if (!h) - retval = FALSE; - } - if (retval) - { - *(cookie_t *)STARH (h) = *cookiep; - if (need_to_add) - AddResource (h, COOKIE_RES_TYPE, COOKIE_RES_ID, NULL); - else - ChangedResource (h); - WriteResource (h); - } - UseResFile (rn); - return retval; -} - -PRIVATE boolean_t -leave_cookies (const cookie_t *cookiep) -{ - boolean_t retval; - - retval = leave_cookie (cookiep); - if (retval) - retval = leave_system_cookie (cookiep); - return retval; -} - -enum -{ - COOKIE_MAJOR_REVISION = 2, - COOKIE_MINOR_REVISION = 12, /* 2.0v was 1 */ -}; - -PRIVATE void -setup_cookie (cookie_t *cookiep) -{ - cookiep->version = unify_version (COOKIE_MAJOR_REVISION, - COOKIE_MINOR_REVISION); - cookiep->day = today () + TIME_OUT_DAYS; -} - -#define days_left_func dlf - -#define days_left(expire_day) \ -({ \ - typeof (expire_day) _d; \ - int retval; \ - \ - _d = expire_day; \ - retval = _d - today (); \ - if (retval < 0 || retval > TIME_OUT_DAYS) \ - retval = 0; \ - retval; \ -}) - -PRIVATE int -days_left_func (void) -{ - int retval; - cookie_t cookie; - - if (retrieve_cookie (&cookie)) - { - if (cookie.version < unify_version (COOKIE_MAJOR_REVISION, - COOKIE_MINOR_REVISION)) - { - setup_cookie (&cookie); - retval = leave_cookies (&cookie) ? days_left (cookie.day) : 0; - if (retval == 0) - warning_trace_info ("found old, couldn't leave new"); - } - else - { - cookie_t cookie2; - - if (!retrieve_system_cookie (&cookie2)) - { - if (leave_system_cookie (&cookie)) - retval = days_left (cookie.day); - else - { - warning_trace_info ("couldn't leave sys"); - retval = 0; - } - } - else - { - if (cookie.day == cookie2.day) - retval = days_left (cookie.day); - else - { - retval = 0; - warning_trace_info ("mismatch"); - } - } - } - } - else if (retrieve_system_cookie (&cookie)) - { - if (cookie.version < unify_version (COOKIE_MAJOR_REVISION, - COOKIE_MINOR_REVISION)) - { - setup_cookie (&cookie); - retval = leave_cookies (&cookie) ? days_left (cookie.day) : 0; - if (retval == 0) - warning_trace_info ("found old, couldn't leave new"); - else - warning_trace_info ("found old, left new"); - } - else - { - retval = 0; - warning_trace_info ("unexpected system"); - } - } - else - { - setup_cookie (&cookie); - if (leave_cookies (&cookie)) - retval = days_left (cookie.day); - else - { - retval = 0; - warning_trace_info ("couldn't leave"); - } - } - - if (retval <= 0) - { - ROMlib_exit = TRUE; - if (retval < 0) - warning_trace_info ("%d", retval); - } - replace_physgestalt_selector (gestaltDemoExpiration, retval); - return retval; -} - -#endif - - #define ABOUT_BOX_WIDTH 500 #define ABOUT_BOX_HEIGHT 300 #define BUTTON_WIDTH 85 @@ -431,14 +61,6 @@ static struct { char *name, *text; ControlHandle ctl; } about_box_buttons[] = { }, { "Maker", "ARDI\r" - // "Suite 4-101\r" - // "1650 University Blvd., NE\r" - // "Albuquerque, NM 87102\r\r" - - // "+1 505 766 5153 FAX\r" - // "+1 505 766 9115 Phone (M-F 9am-5pm Mountain Time)\r\r" - - // "E-Mail: questions@ardi.com\r" "World Wide Web: \r" "FTP: \r", NULL @@ -614,13 +236,8 @@ find_license_button (void) return retval; } -#if defined (TIME_OUT_DAYS) -#define DAYS_LEFT_MESSAGE "%d DAYS LEFT\r\r" -#define EXPIRED_MESSAGE "This demo has EXPIRED.\r\r" -#endif - static void -create_license_text (int days_left) +create_license_text (void) { int b; @@ -632,13 +249,6 @@ create_license_text (int days_left) new_size = 0; -#if defined (TIME_OUT_DAYS) -#if TIME_OUT_DAYS > 999 -#error string overflow -#endif - new_size += MAX (sizeof DAYS_LEFT_MESSAGE, sizeof EXPIRED_MESSAGE); -#endif - /* Compute the length of the license string. */ for (licensep = ROMlib_licensep ? (char *) ROMlib_licensep->chars : ""; *licensep;) @@ -659,13 +269,6 @@ create_license_text (int days_left) p = license_text; -#if defined (TIME_OUT_DAYS) - if (days_left > 0) - p += sprintf (p, DAYS_LEFT_MESSAGE, days_left); - else - p += sprintf (p, EXPIRED_MESSAGE); -#endif - for (licensep = ROMlib_licensep ? (char *) ROMlib_licensep->chars : ""; *licensep;) { @@ -860,7 +463,7 @@ dispose_tips_text (void) static void -create_about_box (int days_left) +create_about_box () { static Rect scroll_bar_bounds = { CWC (TE_TOP), @@ -877,7 +480,7 @@ create_about_box (int days_left) Rect about_box_bounds; int b; - create_license_text (days_left); + create_license_text (); create_tips_text (); SetRect (&about_box_bounds, @@ -1190,18 +793,15 @@ do_about_box (void) if (!busy_p) { - int days_left; - busy_p = TRUE; /* Only allow one about box at a time. */ if (scroll_bar_callback == 0) scroll_bar_callback = (ProcPtr) SYN68K_TO_US(callback_install (scroll_stub, NULL)); - days_left = days_left_func (); ZONE_SAVE_EXCURSION (SysZone, { - create_about_box (days_left); + create_about_box (); THEPORT_SAVE_EXCURSION (about_box, @@ -1217,9 +817,5 @@ do_about_box (void) }); busy_p = FALSE; - if (days_left <= 0) - C_ExitToShell (); } } - -#endif /* SUPPORT_ABOUT_EXECUTOR_BOX */ diff --git a/src/adb.c b/src/adb.c index e6f3d5f..1e167bc 100644 --- a/src/adb.c +++ b/src/adb.c @@ -194,7 +194,7 @@ adb_apeiron_hack (boolean_t deltas_p, ...) /* begin code for PegLeg */ if (button_is_down) - MBState = CRACKER_ZERO; + MBState = 0; else MBState = 0xFF; diff --git a/src/config/front-ends/dos/NEWdosdisk.c b/src/config/front-ends/dos/NEWdosdisk.c index 0d9e6cf..49ddc9d 100644 --- a/src/config/front-ends/dos/NEWdosdisk.c +++ b/src/config/front-ends/dos/NEWdosdisk.c @@ -286,10 +286,6 @@ dosdisk_open (int disk, LONGINT *bsizep, drive_flags_t *flagsp) d->disk_number = disk; d->is_open = 1; -#if defined (DISABLE_FLOPPY_WRITES) - *flagsp |= DRIVE_FLAGS_LOCKED; -#endif - dcache_invalidate (disk | DOSFDBIT); return disk; @@ -833,9 +829,6 @@ dosdisk_read (int disk, void *buf, int num_bytes) int dosdisk_write (int disk, const void *buf, int num_bytes) { -#if defined (DISABLE_FLOPPY_WRITES) - return -1; -#else dosdisk_info_t *d = disk_number_to_disk_info (disk); int orig_num_bytes; boolean_t old_slow_clock_p; @@ -971,5 +964,4 @@ dosdisk_write (int disk, const void *buf, int num_bytes) set_expect_slow_clock (old_slow_clock_p); return orig_num_bytes - num_bytes; -#endif /* !defined (DISABLE_FLOPPY_WRITES) */ } diff --git a/src/config/front-ends/dos/aspi.c b/src/config/front-ends/dos/aspi.c index cd9866f..9fd8b4b 100644 --- a/src/config/front-ends/dos/aspi.c +++ b/src/config/front-ends/dos/aspi.c @@ -930,11 +930,7 @@ aspi_disk_read (int disk, void *buf, int num_bytes) PUBLIC int aspi_disk_write (int disk, const void *buf, int num_bytes) { -#if defined (DISABLE_SCSI_WRITES) - return -1; -#else return aspi_disk_xfer (WRITE_10, disk, (void *) buf, num_bytes); -#endif } @@ -1033,9 +1029,6 @@ aspi_try_to_open_and_mount_disk (int disk) sprintf (aspi_name, "aspi(%d,%d,%d)", aspi_info[disk].adaptor, aspi_info[disk].target, aspi_info[disk].lun); -#if defined (DISABLE_SCSI_WRITES) - flags |= DRIVE_FLAGS_LOCKED; -#endif try_to_mount_disk (aspi_name, disk | ASPIFDBIT, &mess, blocksize, 16 * PHYSBSIZE, flags, 0); mess = CL (mess); diff --git a/src/config/front-ends/dos/dosdisk.c b/src/config/front-ends/dos/dosdisk.c index 65e8861..20f7cee 100644 --- a/src/config/front-ends/dos/dosdisk.c +++ b/src/config/front-ends/dos/dosdisk.c @@ -386,10 +386,6 @@ dosdisk_open (int disk, LONGINT *bsizep, drive_flags_t *flagsp) d->disk_number = disk; d->is_open = 1; -#if defined (DISABLE_FLOPPY_WRITES) - *flagsp |= DRIVE_FLAGS_LOCKED; -#endif - dcache_invalidate (disk | DOSFDBIT, FALSE); lock_media (disk); @@ -876,9 +872,6 @@ dosdisk_read (int disk, void *buf, int num_bytes) int dosdisk_write (int disk, const void *buf, int num_bytes) { -#if defined (DISABLE_FLOPPY_WRITES) - return -1; -#else dosdisk_info_t *d = disk_number_to_disk_info (disk); int orig_num_bytes; boolean_t old_slow_clock_p; @@ -1030,5 +1023,4 @@ dosdisk_write (int disk, const void *buf, int num_bytes) if (changed && num_bytes == 0) complain_about_changed_media (); return orig_num_bytes - num_bytes; -#endif /* !defined (DISABLE_FLOPPY_WRITES) */ } diff --git a/src/config/front-ends/nextstep/ourstuff.h b/src/config/front-ends/nextstep/ourstuff.h index 7b80e30..ae88cee 100644 --- a/src/config/front-ends/nextstep/ourstuff.h +++ b/src/config/front-ends/nextstep/ourstuff.h @@ -8,7 +8,6 @@ extern void sendresumeevent(LONGINT cvtclip); extern void sendsuspendevent(void); extern void ROMlib_writenameorgkey(char *name, char *org, char *key); extern void contextswitch(char **from_spp, char **to_spp); -extern void protectus(long serialnumber, long max); extern LONGINT insertfonttbl(char **op, char doit); #ifndef OPENSTEP diff --git a/src/config/front-ends/sdl/sdlscrap.c b/src/config/front-ends/sdl/sdlscrap.c index 3524b71..d49c95b 100644 --- a/src/config/front-ends/sdl/sdlscrap.c +++ b/src/config/front-ends/sdl/sdlscrap.c @@ -648,7 +648,7 @@ void PutScrapX(LONGINT type, LONGINT length, char *p, int scrap_count) PUBLIC boolean_t we_lost_clipboard(void) { - /* TODO */ + return false; /* TODO */ } LONGINT GetScrapX(LONGINT type, char **h) diff --git a/src/config/os/cygwin32/win_cookie.c b/src/config/os/cygwin32/win_cookie.c deleted file mode 100644 index ce7888c..0000000 --- a/src/config/os/cygwin32/win_cookie.c +++ /dev/null @@ -1,107 +0,0 @@ -/* Copyright 1998, 1999 by Abacus Research and - * Development, Inc. All rights reserved. - */ - -#if !defined (OMIT_RCSID_STRINGS) -char ROMlib_rcsid_win_cookie[] = "$Id: win_cookie.c 63 2004-12-24 18:19:43Z ctm $"; -#endif - -#define USE_WINDOWS_NOT_MAC_TYPEDEFS_AND_DEFINES - -#include "rsys/common.h" -#include "rsys/cookie.h" -#include "rsys/custom.h" - -#include -#include - -#if defined (TIME_OUT_DAYS) - -#define COOKIE_KEY_ROOT "SOFTWARE\\ARDI\\xp" - -PRIVATE const char * -create_cookie_key (void) -{ - char *retval; - int length; - - length = strlen (COOKIE_KEY_ROOT) + 1; - - if (ROMlib_mac_demo_idp) - length += 1 + strlen (ROMlib_mac_demo_idp->chars); - retval = malloc (length); - if (retval) - { - strcpy (retval, COOKIE_KEY_ROOT); - if (ROMlib_mac_demo_idp) - { - char *ip, *op; - - /* make sure there's just one \ separator and that we always use - lower case in the key */ - - for (ip = ROMlib_mac_demo_idp->chars; *ip == '\\'; ++ip) - ; - for (op = retval + strlen (retval), *op++ = '\\'; *ip; ++ip) - *op++ = tolower (*ip); - *op = 0; - } - } - return retval; -} - -PRIVATE void -destroy_cookie_key (const char *cookie_key) -{ - free ((char *) cookie_key); -} - -PUBLIC int -win_retrieve_cookie (cookie_t *cookiep) -{ - int retval; - HKEY key; - const char *cookie_key; - - retval = 0; - cookie_key = create_cookie_key (); - if (RegOpenKeyEx (HKEY_LOCAL_MACHINE, cookie_key, 0, KEY_READ, &key) - == ERROR_SUCCESS) - { - DWORD val_len; - - val_len = sizeof *cookiep; - retval = (RegQueryValueEx (key, "xp", NULL, NULL, (LPBYTE) cookiep, - &val_len) == ERROR_SUCCESS); - RegCloseKey (key); - } - destroy_cookie_key (cookie_key); - return retval; -} - -PUBLIC int -win_leave_cookie (const cookie_t *cookiep) -{ - int retval; - HKEY key; - DWORD disp; - const char *cookie_key; - - retval = 0; - cookie_key = create_cookie_key (); - if (RegCreateKeyEx (HKEY_LOCAL_MACHINE, cookie_key, 0, NULL, - REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, - &key, &disp) == ERROR_SUCCESS) - { - DWORD val_len; - - val_len = sizeof *cookiep; - retval = (RegSetValueEx (key, "xp", 0, REG_BINARY, (LPBYTE) cookiep, - sizeof *cookiep) == ERROR_SUCCESS); - RegCloseKey (key); - } - destroy_cookie_key (cookie_key); - return retval; -} - -#endif diff --git a/src/config/os/cygwin32/win_disk.c b/src/config/os/cygwin32/win_disk.c index aa0f685..10d090a 100644 --- a/src/config/os/cygwin32/win_disk.c +++ b/src/config/os/cygwin32/win_disk.c @@ -343,10 +343,6 @@ dosdisk_open (int disk, LONGINT *bsizep, drive_flags_t *flagsp) } } -#if defined (DISABLE_FLOPPY_WRITES) - *flagsp |= DRIVE_FLAGS_LOCKED; -#endif - dcache_invalidate (disk | DOSFDBIT, FALSE); SetErrorMode (old_err_mode); diff --git a/src/desk.c b/src/desk.c index 52a7642..9ec7199 100644 --- a/src/desk.c +++ b/src/desk.c @@ -33,14 +33,12 @@ P1(PUBLIC pascal trap, INTEGER, OpenDeskAcc, Str255, acc) /* IMI-440 */ DCtlHandle dctlh; WindowPtr wp; -#if defined (SUPPORT_ABOUT_EXECUTOR_BOX) if (EqualString (acc, about_box_menu_name_pstr, TRUE, TRUE)) { do_about_box (); retval = 0; goto done; } -#endif /* SUPPORT_ABOUT_EXECUTOR_BOX */ if (OpenDriver(acc, &retval) == noErr) { retval = CW(retval); @@ -56,9 +54,7 @@ P1(PUBLIC pascal trap, INTEGER, OpenDeskAcc, Str255, acc) /* IMI-440 */ } } -#if defined (SUPPORT_ABOUT_EXECUTOR_BOX) done: -#endif SEvtEnb = TRUE; return retval; diff --git a/src/dialCreate.c b/src/dialCreate.c index 57abef2..ad376f2 100644 --- a/src/dialCreate.c +++ b/src/dialCreate.c @@ -282,7 +282,7 @@ ROMlib_new_dialog_common (DialogPtr dp, itp = (itmp) (ip + 1); i = CW (*ip); item_no = 1; - while (i-- >= CRACKER_ZERO) + while (i-- >= 0) { dialog_create_item ((DialogPeek) dp, itp, itp, item_no, zero_pt); diff --git a/src/dialHandle.c b/src/dialHandle.c index 79d08ed..f5c727c 100644 --- a/src/dialHandle.c +++ b/src/dialHandle.c @@ -32,7 +32,6 @@ char ROMlib_rcsid_dialHandle[] = #include "rsys/pstuff.h" #include "rsys/stdfile.h" #include "rsys/print.h" -#include "rsys/license.h" #include "rsys/hook.h" #include "rsys/executor.h" #include "rsys/osevent.h" @@ -92,8 +91,6 @@ ROMlib_CALLMODALPROC (DialogPtr dp, retval = C_ROMlib_numsonlyfilterproc((DialogPeek) dp, evtp, ip); else if (fp == (modalprocp) P_ROMlib_stlfilterproc) retval = C_ROMlib_stlfilterproc((DialogPeek) dp, evtp, ip); - else if (fp == (modalprocp) P_ROMlib_licensefilt) - retval = C_ROMlib_licensefilt((DialogPeek) dp, evtp, ip); else { ROMlib_hook(dial_modalnumber); diff --git a/src/dirtyrect.c b/src/dirtyrect.c index 54594cd..989810f 100644 --- a/src/dirtyrect.c +++ b/src/dirtyrect.c @@ -123,7 +123,7 @@ dirty_rect_accrue (int top, int left, int bottom, int right) /* Figure out which union adds the least new area. */ best_area_added = ~0UL; best = 0; - for (i = ndr - 1; i >= CRACKER_ZERO; i--) + for (i = ndr - 1; i >= 0; i--) { unsigned long added; diff --git a/src/diskinit.c b/src/diskinit.c index e21a185..857cdec 100644 --- a/src/diskinit.c +++ b/src/diskinit.c @@ -35,9 +35,6 @@ P2(PUBLIC pascal trap, INTEGER, DIBadMount, Point, pt, LONGINT, evtmess) P1(PUBLIC pascal trap, OSErr, DIFormat, INTEGER, dn) { -#if defined (DISABLE_FLOPPY_WRITES) - return wPrErr; -#endif return noErr; /* We don't do low-level formats right now */ } diff --git a/src/dump.c b/src/dump.c index 1129f75..4e3eed3 100644 --- a/src/dump.c +++ b/src/dump.c @@ -20,6 +20,7 @@ char ROMlib_rcsid_dump[] = #include "DialogMgr.h" #include "ControlMgr.h" #include "MenuMgr.h" +#include "FileMgr.h" #include "rsys/cquick.h" #include "rsys/wind.h" diff --git a/src/emutraptables.c b/src/emutraptables.c index 24e138a..07243bc 100644 --- a/src/emutraptables.c +++ b/src/emutraptables.c @@ -26,7 +26,6 @@ char ROMlib_rcsid_emutraptables[] = #include "rsys/osutil.h" #include "rsys/vbl.h" #include "rsys/soundopts.h" -#include "rsys/license.h" #include "rsys/refresh.h" #include "rsys/gestalt.h" #include "rsys/emustubs.h" @@ -1195,7 +1194,6 @@ toolstuff_t pstuff[] = { { { _Key1Trans, -1 }, (void *) 0}, { { _Key2Trans, -1 }, (void *) 0}, - { { C_ROMlib_licensefilt, PTOC_ROMlib_licensefilt }, (void *) 0 }, { { C_unixmount, PTOC_unixmount }, (void *) 0 }, { { C_GestaltTablesOnly, PTOC_GestaltTablesOnly }, (void *) 0 }, { { C_sound_timer_handler, 0 }, (void *) 0 }, diff --git a/src/executor.c b/src/executor.c index 512e0ef..7a56129 100644 --- a/src/executor.c +++ b/src/executor.c @@ -50,7 +50,6 @@ char ROMlib_rcsid_executor[] = #include "rsys/trapname.h" #include "rsys/options.h" -#include "rsys/license.h" #include "rsys/suffix_maps.h" #include "rsys/string.h" #include "rsys/custom.h" @@ -639,7 +638,6 @@ PUBLIC void executor_main( void ) #define ALINETRAPNUMBER 0xA trap_install_handler( ALINETRAPNUMBER, alinehandler, (void *) 0); #endif - dolicense(); if (thefile.fType == CLC(T('A','P','P','L'))) { ClrAppFiles(1); diff --git a/src/executor.make b/src/executor.make index 603698e..2442a8d 100644 --- a/src/executor.make +++ b/src/executor.make @@ -58,13 +58,13 @@ AUX_SRC = \ dump.c trapname.c float4.c float5.c float7.c floatnext.c font.c \ gestalt.c globals.c \ image.c image_inits.c iu.c launch.c main.c mman.c mmansubr.c \ - notify.c hle.c osevent.c osutil.c pack.c protector.c scrap.c script.c \ + notify.c hle.c osevent.c osutil.c pack.c scrap.c script.c \ segment.c serial.c setuid.c slash.c \ sounddriver.c sound.c soundIMVI.c soundfake.c \ stdfile.c romlib_stubs.c \ snth5.c syserr.c toolevent.c toolmath.c toolutil.c time.c vbl.c \ syncint.c virtualint.c refresh.c autorefresh.c \ - license.c aboutbox.c licensetext.c dcmaketables.c \ + aboutbox.c licensetext.c dcmaketables.c \ dcconvert.c rgbutil.c keycode.c option.c parseopt.c parsenum.c \ desperate.c \ version.c shutdown.c uniquefile.c sigio_multiplex.c \ diff --git a/src/fileInfo.c b/src/fileInfo.c index 3daf880..5845d76 100644 --- a/src/fileInfo.c +++ b/src/fileInfo.c @@ -235,11 +235,9 @@ quoted_character (unsigned char *name, int length) { retval = (length > 2 && iscandidate_for_quoting (name[1], name[2])); -#if defined (RELEASE_INTERNAL) if (!retval) fprintf (stderr, "*** suspicious colon in '%.*s' ***\n", length, name); -#endif } } return retval; @@ -304,7 +302,7 @@ A5(PUBLIC, OSErr, ROMlib_PBGetSetFInfoD, ParmBlkPtr, pb, /* INTERNAL */ char *pathname, *filename, *endname, *rpathname; char savechar; struct stat datasbuf, resourcesbuf, parentsbuf; - LONGINT longzero = CRACKER_ZERO; + LONGINT longzero = 0; VCBExtra *vcbp; THz savezone; struct timeval accessupdatetimes[2]; diff --git a/src/float4.c b/src/float4.c index e5a4710..ee9c021 100644 --- a/src/float4.c +++ b/src/float4.c @@ -1242,14 +1242,3 @@ P_SAVED0D1A0A1_3 (PUBLIC pascal trap, void, ROMlib_Fclassx, void *, *dp = CW (0 - CW (*dp)); } - -#if !defined (NDEBUG) - -#undef EXTERN_INLINE -#define EXTERN_INLINE - -#undef _floatconv_h_ - -#include "rsys/floatconv.h" - -#endif diff --git a/src/gestalt.c b/src/gestalt.c index 0911eb7..0370ab2 100644 --- a/src/gestalt.c +++ b/src/gestalt.c @@ -235,17 +235,6 @@ PRIVATE gestaltentry_t phystable[] = #else #warning gestaltExecutorVersionString not currently available #endif -#if defined (RELEASE_DEMO) - { gestaltDemoStatus, 1 }, -#if defined (TIME_OUT_DAYS) - { gestaltDemoExpiration, TO_BE_FILLED_IN }, -#endif -#else - { gestaltDemoStatus, 0 }, - { gestaltSerialNumber, TO_BE_FILLED_IN }, - { gestaltRegisteredName, TO_BE_FILLED_IN }, - { gestaltRegisteredOrg, TO_BE_FILLED_IN }, -#endif #if defined (LINUX) || defined (CYGWIN32) { gestaltPhysicalRAMSize, TO_BE_FILLED_IN }, #endif diff --git a/src/include/OSEvent.h b/src/include/OSEvent.h index 8d35649..00c4c8b 100644 --- a/src/include/OSEvent.h +++ b/src/include/OSEvent.h @@ -75,30 +75,7 @@ extern INTEGER SysEvtMask; extern QHdr EventQueue; #endif -#if !defined (SHORT_TICKS) - #define Ticks (Ticks_UL.u) -#define CRACKER_ZERO (0) - -#else - -#if !defined (SHORT_TICKS_SHIFT) -#define SHORT_TICKS_SHIFT 0 -#endif - -#define Ticks ((ULONGINT) (*(unsigned long *)SYN68K_TO_US(0x16c)) \ - & ((1<<(16+SHORT_TICKS_SHIFT))-1)) - -/* This macro evaluates to *(short *) 0x16a, but the assembly code - * generated varies depending on what line the macro is invoked! - */ - -#define CRACKER_ZERO \ -(CW(*(short *) ({ volatile long a = __LINE__ * 17; \ - *&a + ((SYN68K_TO_US(0x16a)) - __LINE__ * 17); })) >> SHORT_TICKS_SHIFT) - -#endif - extern void ROMlib_eventdep( void ); extern void insertcommonevent( char *xeventp, commonevent *comevtp ); diff --git a/src/include/rsys/aboutbox.h b/src/include/rsys/aboutbox.h index 2f82a68..fcf8ed6 100644 --- a/src/include/rsys/aboutbox.h +++ b/src/include/rsys/aboutbox.h @@ -1,11 +1,7 @@ #if !defined (_RSYS_ABOUTBOX_H_) #define _RSYS_ABOUTBOX_H_ -#if defined (SUPPORT_ABOUT_EXECUTOR_BOX) - extern StringPtr about_box_menu_name_pstr; extern void do_about_box (void); -#endif /* SUPPORT_ABOUT_EXECUTOR_BOX */ - #endif /* !_RSYS_ABOUTBOX_H_ */ diff --git a/src/include/rsys/aboutpanel.h b/src/include/rsys/aboutpanel.h index 0c3859a..7985c44 100644 --- a/src/include/rsys/aboutpanel.h +++ b/src/include/rsys/aboutpanel.h @@ -3,8 +3,6 @@ extern void ROMlib_circledefault(DialogPtr dp); -#if !defined (SUPPORT_ABOUT_EXECUTOR_BOX) #define ABOUTOKITEM 1 -#endif #endif /* !defined(__RSYS_ABOUTPANEL__) */ diff --git a/src/include/rsys/cookie.h b/src/include/rsys/cookie.h deleted file mode 100644 index 224253f..0000000 --- a/src/include/rsys/cookie.h +++ /dev/null @@ -1,25 +0,0 @@ -#if !defined(_RSYS_COOKIE_H_) -#define _RSYS_COOKIE_H_ - -/* - * Copyright 1998 by Abacus Research and Development, Inc. - * All rights reserved. - * - * $Id: cookie.h 63 2004-12-24 18:19:43Z ctm $ - */ - -typedef struct -{ - long version; - long day; -} -cookie_t; - -#if defined (CYGWIN32) - -extern int win_retrieve_cookie (cookie_t *cookiep); -extern int win_leave_cookie (const cookie_t *cookiep); - -#endif - -#endif diff --git a/src/include/rsys/gestalt.h b/src/include/rsys/gestalt.h index 6d25156..89291c6 100644 --- a/src/include/rsys/gestalt.h +++ b/src/include/rsys/gestalt.h @@ -28,24 +28,9 @@ enum { gestaltGhostScriptVersion = T ('g', 'o', 's', 't') }; /* Executor Version as string */ enum { gestaltExecutorVersionString = T ('x', 'q', 't', 'r') }; -/* whether or not we're the demo version */ -enum { gestaltDemoStatus = T ('d', 'e', 'm', 'o') }; - -/* expiration date */ -enum { gestaltDemoExpiration = T ('x', 'p', 'i', 'r') }; - -/* serial number */ -enum { gestaltSerialNumber = T ('s', '/', 'n', ' ') }; - /* screen size */ enum { gestaltScreenSize = T ('s', 'c', 'r', 'n') }; -/* registered name */ -enum { gestaltRegisteredName = T ('n', 'a', 'm', 'e') }; - -/* registered organization */ -enum { gestaltRegisteredOrg = T ('o', 'r', 'g', ' ') }; - enum { gestaltPHYSICAL = T ('M', 'U', 'L', '8') }; enum { physicalUndefSelectorErr = -15551 }; diff --git a/src/include/rsys/launch.c b/src/include/rsys/launch.c index 552d3b2..f74c2c9 100644 --- a/src/include/rsys/launch.c +++ b/src/include/rsys/launch.c @@ -867,10 +867,6 @@ PRIVATE void reset_low_globals(void) ((char *)&lastlowglobal - (char *)&nilhandle - 64 * sizeof (ULONGINT))); -#if defined (SHORT_TICKS) - /* CRACKER_ZERO = 0; */ - *(short *)SYN68K_TO_US(0x16a) = 0; -#endif AE_info = saveAE_info; JCrsrTask = saveJCrsrTask; diff --git a/src/include/rsys/license.h b/src/include/rsys/license.h deleted file mode 100644 index 7213314..0000000 --- a/src/include/rsys/license.h +++ /dev/null @@ -1,25 +0,0 @@ -#if !defined(_RSYS_LICENSE_H_) -#define _RSYS_LICENSE_H_ - -/* - * Copyright 1994 by Abacus Research and Development, Inc. - * All rights reserved. - * - * $Id: license.h 63 2004-12-24 18:19:43Z ctm $ - */ - -#include - -enum { GENERIC_COMPLAINT_ID = -3000 }; - -typedef enum { no_license, old_license, register_only } which_license_t; - -extern void dolicense ( void ); -extern which_license_t ROMlib_dolicense; - -extern INTEGER C_ROMlib_licensefilt(DialogPeek dp, EventRecord *evtp, - INTEGER *ith); -extern void ROMlib_writenameorgkey(char *name, char *org, char *key); -extern void protectus(long serialnumber, long max); - -#endif diff --git a/src/include/rsys/next.h b/src/include/rsys/next.h index b0fc20d..18099dd 100644 --- a/src/include/rsys/next.h +++ b/src/include/rsys/next.h @@ -17,19 +17,6 @@ #define INFO_START_STRING "Run Paiot,-Svp." /* 1234567890123456 */ -typedef struct -{ - char info_start_string[sizeof(INFO_START_STRING)]; - LONGINT serialnumber; - char name[81]; - char organization[81]; - char key[81]; - LONGINT inodenumber; - LONGINT timechanged; -} infoblock; - -extern infoblock ROMlib_info; - #define SETUPA5 LONGINT savea5; savea5 = EM_A5; EM_A5 = CL( (LONGINT) CurrentA5) #define RESTOREA5 EM_A5 = savea5 diff --git a/src/include/rsys/release.h b/src/include/rsys/release.h index 3812be7..86bf2f2 100644 --- a/src/include/rsys/release.h +++ b/src/include/rsys/release.h @@ -1,130 +1,30 @@ #if !defined (_RSYS_RELEASE_H_) #define _RSYS_RELEASE_H_ -/* There are four kinds of builds: - * RELEASE_INTERNAL: - * for internal use ONLY, and should not be released to the public. - * RELEASE_PRE_BETA: - * a time-limited demo copy that can be registered to remove the limit. - * RELEASE_DEMO: - * a "crippled" demo copy that cannot be registered. - * RELEASE_COMMERCIAL: - * the full commercial release, for sale but not to be made publicly - * available. +/* + * There used to be different types of releases, e.g. commercial demo, + * internal. This header file used to set up different options + * depending on which release we were. * - * Other files can expect that Exactly one of these will be #defined. - * If none are #defined, RELEASE_PRE_BETA will be #defined here. + * In general, all the old pain-in-the-butt options have been removed + * and what little is left will be converted to configuration options + * when (if) we switch to the GNU build system. * - * Certain releases enable certain features: - * - * DISPLAY_SPLASH_INFO_BOX: - * display the old syserr demo/info box on startup - * DISPLAY_SPLASH_SCREEN: - * display a fancy splash screen while loading - * SUPPORT_ABOUT_EXECUTOR_BOX: - * make an "about Executor" menu available that brings up a special - * about box. - * REGISTER_BEFORE_USABLE: - * Executor must be registered before it can be used at all. - * SHORT_TICKS: - * low-memory global Ticks is treated as a short and the high 2 bytes - * are used (this means if crackers disable the "Time's Up" message, - * subtle things will go awry) - * PRINT_DEMO_WATERMARK: - * All output comes with "Demo" printed diagonally down the page - * DISABLE_FLOPPY_WRITES: - * Executor will read HD floppies but not write to them - * DISABLE_SCSI_WRITES: - * Executor will read SCSI drives but not write to them - * DISABLE_COMMAND_KEY_EQUIVS: - * Command-key shortcuts won't work in the demo version - * DISPLAY_DEMO_ON_MENU_BAR: - * Menu Bar says "DEMO" in red, which can be clicked on to get a little - * information about where to find the real thing. - * TIME_OUT n - * Executor time's out in n minutes. - * SHORT_TICKS_SHIFT n - * The number of bits to right shift the high short of Ticks. Could - * be computed from TIME_OUT if we could do log2 in #defines. Not needed - * for timeouts up to 18 minutes, but needs to be 1 for 30 minutes. + * In the meantime, there's still a little cruft in here. */ - -/* - * NOTE: Internal builds are now flagged as such - */ - -#if defined (RELEASE_INTERNAL) - -#define DISPLAY_DEMO_ON_MENU_BAR -#define DEMO_PREFIX "INTERNAL " - -#else - -#define DEMO_PREFIX "" - -#endif - -#if (!defined (RELEASE_DEMO) \ - && !defined (RELEASE_COMMERCIAL) \ - && !defined (RELEASE_PRE_BETA) \ - && !defined (RELEASE_INTERNAL)) -#define RELEASE_PRE_BETA -#endif - -#if (1 != (defined (RELEASE_DEMO) \ - + defined (RELEASE_COMMERCIAL) \ - + defined (RELEASE_PRE_BETA) \ - + defined (RELEASE_INTERNAL))) -#error "Exactly one release type must be specified." -#endif - -#if defined (RELEASE_PRE_BETA) -#define DISPLAY_SPLASH_INFO_BOX -#define TIME_OUT -#endif - -#if !defined (RELEASE_PRE_BETA) #define DISPLAY_SPLASH_SCREEN -#define SUPPORT_ABOUT_EXECUTOR_BOX -#endif - -#if defined (RELEASE_DEMO) - - /* #define SHORT_TICKS */ -#define PRINT_DEMO_WATERMARK -#define DISABLE_FLOPPY_WRITES -#define DISABLE_SCSI_WRITES -#define DISPLAY_DEMO_ON_MENU_BAR - -#define TIME_OUT_DAYS (ROMlib_days_of_demop ? ROMlib_days_of_demop->val : 30) -#define DISABLE_COMMAND_KEY_EQUIVS - -#endif - -#if defined (RELEASE_COMMERCIAL) -#define REGISTER_BEFORE_USABLE -#endif /* Set up the bit mask for which classes of debugging information * we can generate. This can be overridden on the command line * by defining ERROR_SUPPORTED_MASK there. */ + #if !defined (ERROR_SUPPORTED_MASK) -# if defined (RELEASE_INTERNAL) # define ERROR_SUPPORTED_MASK (~0) /* all errors */ -# else /* !RELEASE_INTERNAL */ -# define ERROR_SUPPORTED_MASK \ - (ERROR_BIT_MASK (ERROR_UNIMPLEMENTED) \ - | ERROR_BIT_MASK (ERROR_UNEXPECTED) \ - | ERROR_BIT_MASK (ERROR_TRACE_INFO) \ - | ERROR_BIT_MASK (ERROR_FILESYSTEM_LOG)) -# endif /* !RELEASE_INTERNAL */ #endif /* !ERROR_SUPPORTED_MASK */ -#if defined (RELEASE_INTERNAL) #define SUPPORT_LOG_ERR_TO_RAM -#endif #if defined (EXPERIMENTAL) #define ALLOW_MOVABLE_MODAL diff --git a/src/include/rsys/system_error.h b/src/include/rsys/system_error.h index 613062f..10fc47d 100644 --- a/src/include/rsys/system_error.h +++ b/src/include/rsys/system_error.h @@ -1,8 +1,7 @@ #if !defined (_SYSTEM_ERROR_H_) #define _SYSTEM_ERROR_H_ -/* system_error.h - $Id: system_error.h 63 2004-12-24 18:19:43Z ctm $ */ +enum { GENERIC_COMPLAINT_ID = -3000 }; typedef void (*system_error_callback_t) (void); diff --git a/src/launch.c b/src/launch.c index 4e98835..572d5ff 100644 --- a/src/launch.c +++ b/src/launch.c @@ -81,7 +81,6 @@ char ROMlib_rcsid_launch[] = #include "rsys/print.h" #include "rsys/gestalt.h" #include "rsys/osevent.h" -#include "rsys/license.h" #include "rsys/cfm.h" #include "rsys/launch.h" @@ -952,10 +951,6 @@ PRIVATE void reset_low_globals(void) ((char *)&lastlowglobal - (char *)&nilhandle - 64 * sizeof (ULONGINT))); -#if defined (SHORT_TICKS) - /* CRACKER_ZERO = 0; */ - *(short *)SYN68K_TO_US(0x16a) = 0; -#endif AE_info = saveAE_info; JCrsrTask = saveJCrsrTask; diff --git a/src/license.c b/src/license.c deleted file mode 100644 index bb0062a..0000000 --- a/src/license.c +++ /dev/null @@ -1,582 +0,0 @@ -/* Copyright 1994 - 2000 by Abacus Research and - * Development, Inc. All rights reserved. - */ - -#if !defined (OMIT_RCSID_STRINGS) -char ROMlib_rcsid_license[] = - "$Id: license.c 137 2006-07-10 21:25:07Z ctm $"; -#endif - -#include "rsys/common.h" - -#include "DialogMgr.h" -#include "OSUtil.h" -#include "SysErr.h" -#include "ResourceMgr.h" -#include "BinaryDecimal.h" -#include "SegmentLdr.h" -#include "MemoryMgr.h" - -#include "rsys/arrowkeys.h" -#include "rsys/aboutpanel.h" -#include "rsys/license.h" -#include "rsys/keycode.h" -#include "rsys/pstuff.h" -#include "rsys/next.h" -#include "rsys/licensetext.h" -#include "rsys/segment.h" -#include "rsys/vdriver.h" -#include "rsys/custom.h" -#include "rsys/string.h" -#include "rsys/osevent.h" - -which_license_t ROMlib_dolicense = no_license; - -typedef enum -{ - REGISTER_OK_ITEM = 1, - REGISTER_CANCEL_ITEM, - REGISTER_NAME_ITEM, - REGISTER_ORGANIZATION_ITEM, - REGISTER_SN_ITEM, - REGISTER_KEY_ITEM, - REGISTER_MESSAGE_ITEM, - REGISTER_NAME_LABEL, - REGISTER_ORGANIZATION_LABEL, - REGISTER_SN_LABEL, - REGISTER_KEY_LABEL, - REGISTER_COPYRIGHT_NOTICE, - REGISTER_INSTRUCTIONS, - REGISTER_THANK_YOU, -} register_items_t; - -typedef enum -{ - LICENSE_NEXT_ITEM = 1, - LICENSE_HEADING_ITEM, - LICENSE_BODY_ITEM, - LICENSE_OK_ITEM, - LICENSE_PREVIOUS_ITEM, -} license_items_t; - -typedef enum -{ - REGISTER_DIAL_ID= -4065, -} license_id_t; - -typedef enum { dim, undim } operation_t; - -PRIVATE void modify_item(operation_t op, DialogPtr dp, license_items_t item) -{ - HIDDEN_Handle h; - INTEGER type; - Rect r; - BOOLEAN need_to_change; - - GetDItem(dp, item, &type, &h, &r); - h.p = MR(h.p); - need_to_change = FALSE; - switch (op) { - case dim: - if (!(type & CWC(itemDisable))) { - need_to_change = TRUE; - type |= CWC(itemDisable); - HiliteControl((ControlHandle) h.p, 255); - } - break; - case undim: - if (type & CWC(itemDisable)) { - need_to_change = TRUE; - type &= ~CWC(itemDisable); - HiliteControl((ControlHandle) h.p, 0); - } - break; - } - if (need_to_change) - SetDItem(dp, item, CW(type), h.p, &r); -} - -PRIVATE void -right_justify (DialogPtr dp, INTEGER item) -{ - INTEGER type; - HIDDEN_Handle h; - Rect r; - int len; - enum { JUSTIFY_SLOP = 6 }; - - GetDItem (dp, item, &type, &h, &r); - h.p = MR (h.p); - len = TextWidth (STARH (h.p), 0, GetHandleSize (h.p)); - r.left = CW (CW (r.right) - len - JUSTIFY_SLOP); - SetDItem (dp, item, CW(type), h.p, &r); - InvalRect (&r); -} - -const char *updatetext = - "Number of CPUs: xxx\nLast free update: yyy.zzz\nExpires: www/vvv"; - -PRIVATE void updatemessage(DialogPtr dp, INTEGER valid_p, - decoded_info_t *infop) -{ - HIDDEN_Handle h; - INTEGER type; - Rect r; - Str255 s; - INTEGER pos; - - if (valid_p) - modify_item(undim, dp, REGISTER_OK_ITEM); -/* TODO: Hilight ok button */ - else - modify_item(dim, dp, REGISTER_OK_ITEM); - - GetDItem(dp, REGISTER_MESSAGE_ITEM, &type, &h, &r); - h.p = MR(h.p); - if (!infop) - { -#if !defined (RELEASE_COMMERCIAL) - pos = 1 + sprintf((char *) s + 1, "This is a demo version"); -#else - pos = 0; -#endif - s[0] = pos; - SetIText(h.p, s); - } - else - { - pos = 1; - pos += sprintf((char *) s+pos, - "Number of CPUs: %ld\r", (long) infop->n_cpu); - if (!ROMlib_creatorsp) - { - pos += sprintf((char *) s+pos, - "Last free update: %d", infop->major_revision); - pos += sprintf((char *) s+pos, - ".%s\r", infop->updates_p ? "*" : "0"); - } - if (infop->expires_p) - pos += sprintf((char *) s+pos, "Expires: %d/%d", infop->last_month, - infop->last_year); - s[0] = pos; - SetIText(h.p, s); - } - InvalRect(&r); - - { - StringPtr sp; - Str255 str; - - GetDItem(dp, REGISTER_COPYRIGHT_NOTICE, &type, &h, &r); - h.p = MR(h.p); - if (!ROMlib_copyright_infop) - sp = (StringPtr) "\073Copyright \251 1986-2006 " - "Abacus Research and Development, Inc."; - else - { - str255_from_c_string (str, (char *) ROMlib_copyright_infop->chars); - sp = str; - } - SetIText(h.p, sp); - InvalRect(&r); - } - if (ROMlib_thank_you_infop) - { - Str255 str; - - GetDItem(dp, REGISTER_THANK_YOU, &type, &h, &r); - h.p = MR(h.p); - str255_from_c_string (str, (char *) ROMlib_thank_you_infop->chars); - SetIText(h.p, str); - InvalRect(&r); - } - if (ROMlib_registration_instructionsp) - { - Str255 str; - - GetDItem(dp, REGISTER_INSTRUCTIONS, &type, &h, &r); - h.p = MR(h.p); - str255_from_c_string (str, - (char *) ROMlib_registration_instructionsp->chars); - SetIText(h.p, str); - InvalRect(&r); - } - right_justify (dp, REGISTER_NAME_LABEL); - right_justify (dp, REGISTER_ORGANIZATION_LABEL); - right_justify (dp, REGISTER_SN_LABEL); - right_justify (dp, REGISTER_KEY_LABEL); -} - -#define KEYLENGTH 13 -PRIVATE INTEGER checkkeychange(DialogPtr dp, EventRecord *ev, char ch) -{ - TEHandle teh; - - switch(ch) - { - case '\177': case '\010': case '\t': - case ASCIILEFTARROW: case ASCIIRIGHTARROW: case ASCIIUPARROW: - case ASCIIDOWNARROW: -/*--*/ return FALSE; - break; - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - case 'a': case 'b': case 'c': case 'd': case 'e': - case 'f': case 'g': case 'h': case 'i': case 'j': - case 'k': case 'l': case 'm': case 'n': case 'o': - case 'p': case 'q': case 'r': case 's': case 't': - case 'u': case 'v': case 'w': case 'x': case 'y': - case 'z': - break; - default: - ParamText((StringPtr) "\077Authentication Keys contain only digits and lower-case letters.", - 0, 0, 0); - CautionAlert(GENERIC_COMPLAINT_ID, (ProcPtr) 0); - return TRUE; - break; - } - - teh = MR(((DialogPeek) dp)->textH); - if (Hx(teh, teLength) >= KEYLENGTH && Hx(teh, selEnd) == Hx(teh, selStart)) - { -/* FIXME: 13 is a constant in the text below. */ - ParamText((StringPtr) "\041Keys are only 13 characters long.", 0, 0, 0); - CautionAlert(GENERIC_COMPLAINT_ID, (ProcPtr) 0); - return TRUE; - } - return FALSE; -} - - -#define SNLENGTH 10 -PRIVATE INTEGER checksnchange(DialogPtr dp, EventRecord *ev, char ch) -{ - TEHandle teh; - - switch(ch) - { - case '\177': case '\010': case '\t': - case ASCIILEFTARROW: case ASCIIRIGHTARROW: case ASCIIUPARROW: - case ASCIIDOWNARROW: -/*--*/ return FALSE; - break; - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - break; - default: - ParamText((StringPtr) "\043Serial Numbers contain only digits.", - 0, 0, 0); - CautionAlert(GENERIC_COMPLAINT_ID, (ProcPtr) 0); - return TRUE; - break; - } - teh = MR(((DialogPeek) dp)->textH); - if (Hx(teh, teLength) >= SNLENGTH && Hx(teh, selEnd) == Hx(teh, selStart)) - { -/* FIXME: 10 is a constant in the text below. */ - ParamText((StringPtr) "\051Serial Numbers are at most " - "10 digits long.", 0, 0, 0); - CautionAlert(GENERIC_COMPLAINT_ID, (ProcPtr) 0); - return TRUE; - } - return FALSE; -} - -P3(PUBLIC, pascal INTEGER, ROMlib_licensefilt, DialogPeek, dp, - EventRecord *, ev, INTEGER *, ith) -{ - char ch; - TEHandle teh; - - switch (ev->what) - { - case CWC(keyDown): - case CWC(autoKey): - ch = CL(ev->message) & 0xFF; - teh = MR(dp->textH); - if (ev->modifiers & CW(cmdKey)) - { - switch(ch) { - case 'c': - TECopy(teh); - break; - case 'v': - TEPaste(teh); -#if 0 /* TODO */ -/* FIXME */ - checkvalue(? ? ?); -#endif /* 0 */ - break; - case 'x': - TECut(teh); - break; - default: - SysBeep(1); - break; - } -/*--*/ return -1; - } - else - { - if (ch == '\n' || ch == '\r' || ch == NUMPAD_ENTER) - { - *ith = CWC(REGISTER_OK_ITEM); -/*-->*/ return -1; - } - switch (CW(dp->editField) + 1) - { - case REGISTER_SN_ITEM: - return checksnchange((DialogPtr) dp, ev, ch); - break; - case REGISTER_KEY_ITEM: - return checkkeychange((DialogPtr) dp, ev, ch); - break; - } - } - case CWC(updateEvt): - ROMlib_circledefault((DialogPtr)dp); - break; - } - return FALSE; -} - -PRIVATE void get_dp_item_text(DialogPtr dp, INTEGER item, Str255 retstring) -{ - HIDDEN_Handle h; - INTEGER type; - Rect r; - - GetDItem(dp, item, &type, &h, &r); - GetIText(MR(h.p), retstring); -} - -PRIVATE int validcode(DialogPtr dp, decoded_info_t *info, Str255 userkey) -{ - LONGINT sn; - Str255 s; - - get_dp_item_text(dp, REGISTER_SN_ITEM, s); - StringToNum(s, &sn); - if ( decode(userkey + 1, info) && (info->serial_number == sn)) - return TRUE; - else - return FALSE; -} - -PRIVATE INTEGER validexit(DialogPtr dp, INTEGER ihit, INTEGER valid_p) -{ - Str255 s; - - if (ihit == CWC(REGISTER_CANCEL_ITEM)) -/*-->*/ return TRUE; - else if (ihit == CWC(REGISTER_OK_ITEM)) - { - if (!valid_p) -/*-->*/ return FALSE; - get_dp_item_text(dp, REGISTER_NAME_ITEM, s); - if (s[0] < 1) - { - ParamText((StringPtr) "\027Please enter your name.", 0, 0, 0); - StopAlert(GENERIC_COMPLAINT_ID, (ProcPtr) 0); -/*-->*/ return FALSE; - } - else -/*-->*/ return TRUE; - } - return FALSE; -} - -PRIVATE void SetI_c_string(Handle h, const char *name) -{ - Str255 s; - - s[0] = strlen(name); - memcpy(s+1, name, s[0]); - SetIText(h, s); -} - -PRIVATE void lockinfo(DialogPtr dp, LONGINT sn, const char *name, - const char *organization) -{ - HIDDEN_Handle h; - INTEGER type; - Rect r; - Str255 s; - - GetDItem(dp, REGISTER_SN_ITEM, &type, &h, &r); - h.p = MR(h.p); - NumToString(sn, s); - SetIText(h.p, s); - SetDItem(dp, REGISTER_SN_ITEM, statText | itemDisable, h.p, &r); - - GetDItem(dp, REGISTER_NAME_ITEM, &type, &h, &r); - h.p = MR(h.p); - SetI_c_string(h.p, name); - SetDItem(dp, REGISTER_NAME_ITEM, statText | itemDisable, h.p, &r); - - GetDItem(dp, REGISTER_ORGANIZATION_ITEM, &type, &h, &r); - h.p = MR(h.p); - SetI_c_string(h.p, organization); - SetDItem(dp, REGISTER_ORGANIZATION_ITEM, statText | itemDisable, h.p, &r); -} - -PRIVATE void clear_item_text(DialogPtr dp, INTEGER itemno) -{ - HIDDEN_Handle h; - INTEGER type; - Rect r; - - GetDItem(dp, itemno, &type, &h, &r); - h.p = MR(h.p); - SetIText(h.p, (StringPtr) ""); - SetDItem(dp, itemno, CW(type), h.p, &r); -} - -PRIVATE void get_dp_item_c_string(DialogPtr dp, INTEGER item, char *stringp, - int string_length) -{ - Str255 temp_text; - - get_dp_item_text(dp, item, temp_text); - if (temp_text[0] >= string_length) - temp_text[0] = string_length-1; - - /* FIXME - use a subroutine to convert pascal string to C string */ - strncpy(stringp, (char *) temp_text + 1, temp_text[0]); - stringp[temp_text[0]] = 0; -} - -PRIVATE void doregistration( void ) -{ - DialogPtr dp; - INTEGER ihit; - Str255 userkey; - decoded_info_t info, default_info, *default_infop; - INTEGER valid_p; - INTEGER start_sel; - - dp = GetNewDialog(REGISTER_DIAL_ID, (Ptr) 0, (WindowPtr) -1); - - default_infop = 0; - if (ROMlib_info.serialnumber) - { - clear_item_text(dp, REGISTER_KEY_ITEM); - start_sel = REGISTER_KEY_ITEM; - lockinfo(dp, ROMlib_info.serialnumber, ROMlib_info.name, - ROMlib_info.organization); - if ( decode((unsigned char *) ROMlib_info.key, &default_info) - && (default_info.serial_number == ROMlib_info.serialnumber)) - default_infop = &default_info; - } - else - { - clear_item_text(dp, REGISTER_NAME_ITEM); - clear_item_text(dp, REGISTER_ORGANIZATION_ITEM); - clear_item_text(dp, REGISTER_SN_ITEM); - clear_item_text(dp, REGISTER_KEY_ITEM); - start_sel = REGISTER_NAME_ITEM; - } - SelIText(dp, start_sel, 0, 32767); - - valid_p = FALSE; - modify_item(dim, dp, REGISTER_OK_ITEM); - ROMlib_circledefault(dp); - ShowWindow(dp); - SetPort(dp); - - updatemessage(dp, FALSE, default_infop); - do - { - ModalDialog((ProcPtr) P_ROMlib_licensefilt, &ihit); - get_dp_item_text(dp, REGISTER_KEY_ITEM, userkey); -/* these next two lines won't be needed once the filterproc is added */ - if (userkey[0] == 255) - userkey[0] = 254; - userkey[userkey[0] + 1] = 0; - if (valid_key_format(userkey + 1) && validcode(dp, &info, userkey)) - { - if (!valid_p) - { - updatemessage(dp, TRUE, &info); - valid_p = TRUE; - } - } - else - { - if (valid_p) - { - updatemessage(dp, FALSE, default_infop); - valid_p = FALSE; - } - } - } - while (!validexit(dp, ihit, valid_p)); - if (ihit != CWC(REGISTER_OK_ITEM)) - { - ROMlib_exit = 1; - C_ExitToShell (); - } - else - { - char temp_name[81]; - char temp_org[81]; - char temp_key[14]; /* FIXME hardcoded numbers */ - - -#if 0 -#if !defined(NEXTSTEP) - ParamText("\070Executor will now exit and be registered when restarted.", - 0, 0, 0); -#else - ParamText("\072Executor will now exit, then you must run it once as root.", - 0, 0, 0); -#endif -#endif - if (!ROMlib_restart_stringp) - ParamText((StringPtr) "\070Executor will now exit and " - "be registered when restarted.", - 0, 0, 0); - else - { - Str255 str; - - str255_from_c_string (str, (char *) ROMlib_restart_stringp->chars); - ParamText(str, 0, 0, 0); - } - - NoteAlert(GENERIC_COMPLAINT_ID, (ProcPtr) 0); - get_dp_item_c_string(dp, REGISTER_NAME_ITEM, - temp_name, sizeof(temp_name)); - - get_dp_item_c_string(dp, REGISTER_ORGANIZATION_ITEM, - temp_org, sizeof(temp_org)); - - - get_dp_item_c_string(dp, REGISTER_KEY_ITEM, - temp_key, sizeof(temp_key)); - - ROMlib_info.serialnumber = info.serial_number; - ROMlib_writenameorgkey(temp_name, temp_org, temp_key); - } - DisposDialog(dp); -} - -PUBLIC void dolicense( void ) -{ - if (ROMlib_dolicense != no_license) - { - if (WWExist != EXIST_YES) - { - SysBeep (5); - vdriver_shutdown (); - fprintf (stderr, "Error: could not display registration panel!\n"); - ROMlib_exit = 1; - C_ExitToShell (); - } - else if (ROMlib_dolicense == register_only) - { - doregistration (); - ROMlib_exit = 1; - } - } -} diff --git a/src/licensetext.c b/src/licensetext.c index 38c39d6..c11fe92 100644 --- a/src/licensetext.c +++ b/src/licensetext.c @@ -10,8 +10,6 @@ char ROMlib_rcsid_licensetext[] = #include "rsys/common.h" -#if defined (DISPLAY_SPLASH_INFO_BOX) || defined (SUPPORT_ABOUT_EXECUTOR_BOX) - #include "rsys/licensetext.h" license_text_page_t ROMlib_license[] = @@ -246,5 +244,4 @@ license_text_page_t ROMlib_license[] = { NULL, NULL }, /* array terminator */ }; -#endif /* DISPLAY_SPLASH_INFO_BOX || SUPPORT_ABOUT_EXECUTOR_BOX */ #endif diff --git a/src/main.c b/src/main.c index eaec316..1e3dd63 100644 --- a/src/main.c +++ b/src/main.c @@ -62,7 +62,6 @@ char ROMlib_rcsid_main[] = #include "rsys/blockinterrupts.h" #include "rsys/rgbutil.h" #include "rsys/refresh.h" -#include "rsys/license.h" #include "rsys/executor.h" #include "rsys/wind.h" #include "rsys/osevent.h" @@ -145,23 +144,8 @@ char *ROMlib_xfervmaddr; LONGINT ROMlib_xfervmsize = 0; #endif /* NEXTSTEP */ -infoblock ROMlib_info = -{ - INFO_START_STRING, - 0, - "", - "", - "", - 0, - 0, -}; - PUBLIC int ROMlib_noclock = 0; -#if defined (DISPLAY_SPLASH_INFO_BOX) -PUBLIC int ROMlib_nosplash = 0; -#endif - #if defined (NOMOUSE_COMMAND_LINE_OPTION) PUBLIC int ROMlib_no_mouse = 1; #endif @@ -315,10 +299,6 @@ static option_t common_opts[] = { "noclock", "disable timer", opt_no_arg, NULL }, #endif -#if defined (DISPLAY_SPLASH_INFO_BOX) - { "nosplash", "skip splash screen", opt_no_arg, NULL }, -#endif - #if defined (NOMOUSE_COMMAND_LINE_OPTION) /* Hack Dr. Chung wanted */ { "nomouse", "ignore missing mouse", opt_no_arg, NULL }, @@ -543,353 +523,8 @@ PUBLIC char *ROMlib_appname; #define APPWRAP "/Executor.app" -PRIVATE void maskkey( void ) -{ - unsigned char *p, *ep; - - for (p = (unsigned char *) &ROMlib_info.info_start_string - + sizeof(ROMlib_info.info_start_string), - ep = (unsigned char *) &ROMlib_info + sizeof(ROMlib_info); - p < ep; *p++ ^= 0xA5) - ; -} - -PRIVATE void byteswapinfo(infoblock *infop) -{ - infop->serialnumber = CL(infop->serialnumber); - infop->inodenumber = CL(infop->inodenumber); - infop->timechanged = CL(infop->timechanged); -} - -#if !defined (NEXTSTEP) -enum { N_COOKIES = 1 }; -#else -enum { N_COOKIES = 2 }; -#endif - -PRIVATE void -copy_with_cookie_substitution (FILE *read_fp, FILE *write_fp) -{ - int n_subs_made; - int c; - - for (n_subs_made = 0; n_subs_made < N_COOKIES; ++n_subs_made) - { - int i; - - i = 0; - do - { - c = fgetc(read_fp); - if (write_fp != read_fp && c != EOF) - if (fputc(c, write_fp) == EOF) - { - fprintf(stderr, "trouble writing\n"); - exit(3); - } - if (c == ROMlib_info.info_start_string[i]) - ++i; - else - i = 0; - } - while (i != sizeof(ROMlib_info.info_start_string) && c != EOF); - - if (c == EOF) - { - if (n_subs_made == 0) - { - fprintf(stderr, "Couldn't find cookie; unable to register.\n"); - exit(3); - } - } - else - { - long offset; - struct stat sbuf; - - offset = ftell(write_fp) - sizeof(ROMlib_info.info_start_string); - - if (write_fp == read_fp) - { - - /* This seek may not be needed, but it appears that - NEXTSTEP gets confused if we don't do this */ - - if (fseek(read_fp, (offset - + sizeof(ROMlib_info.info_start_string)), - SEEK_SET) == -1) - { - fprintf(stderr, "bizarre seek problem\n"); - exit(3); - } - } - byteswapinfo(&ROMlib_info); - if (fwrite((char *) - &ROMlib_info + sizeof(ROMlib_info.info_start_string), - sizeof(ROMlib_info) - - sizeof(ROMlib_info.info_start_string), 1, write_fp) - != 1) - { - fprintf(stderr, "couldn't fwrite\n"); - /* exit(11); */ - } - byteswapinfo(&ROMlib_info); - if (fseek(write_fp, offset, SEEK_SET) == -1) - { - fprintf(stderr, "couldn't seek to lowseg\n"); - exit(12); - } - if (fflush(write_fp) == EOF) - { - fprintf(stderr, "couldn't fflush\n"); - exit(13); - } - fsync(fileno(write_fp)); - if (fstat(fileno(write_fp), &sbuf) < 0) - { - fprintf(stderr, "couldn't fstat\n"); - exit(14); - } - ROMlib_info.timechanged = sbuf.st_mtime; - ROMlib_info.inodenumber = ST_INO (sbuf); - byteswapinfo(&ROMlib_info); - maskkey(); - if (fwrite(&ROMlib_info, sizeof(ROMlib_info), 1, write_fp) != 1) - { - fprintf(stderr, "couldn't fwrite\n"); - /* exit(15); */ - } - maskkey(); - byteswapinfo(&ROMlib_info); - - if (write_fp == read_fp) - { - - /* This seek may not be needed, but it appears that - NEXTSTEP gets confused if we don't do this */ - - if (fseek(read_fp, (offset - + sizeof(ROMlib_info.info_start_string)), - SEEK_SET) == -1) - { - fprintf(stderr, "bizarre seek problem\n"); - exit(3); - } - } - else - { - if (fseek(read_fp, - sizeof(ROMlib_info) - - sizeof(ROMlib_info.info_start_string), SEEK_CUR) - == -1) - { - fprintf(stderr, "bizarre seek problem\n"); - exit(3); - } - } - } - } - if (write_fp != read_fp) - while ((c = fgetc(read_fp)) != EOF) - if (fputc(c, write_fp) == EOF) - { - fprintf(stderr, "trouble writing\n"); - exit(3); - } -} - -static void -complain_and_die_because_not_writeable (const char *verb, - const char *file, - const char *errno_string) -{ - char errmsg[2048]; - - sprintf (errmsg, - "Registration failed: \"%s\". " - "This application needs to %s %s during the " - "registration process, but is unable to do so. " - "This means either that you are running this application " - "from a CD-ROM (or other write-protected medium), " - "or that you do not have permission to modify " - "this application. Make sure this application is installed on " - "a hard drive before you try to run it.", - errno_string, verb, file); - - system_error (errmsg, 0, - "Exit", NULL, NULL, - NULL, NULL, NULL); - exit (-1); -} - -A3(PUBLIC, void, ROMlib_writenameorgkey, char *, name, char *, org, - char *, key) -{ - FILE *read_fp, *write_fp; - char *orig_file_name, *new_file_name; - -#if !defined (CYGWIN32) - char *backup_file_name; -#endif - -/* - * On Linux Executor can't open itself for writing, so we make a temporary copy - * of ourselves by putting a '.' before our name. This won't work on DOS, but - * I don't think it's needed there, either. - */ - - new_file_name = 0; - - orig_file_name = alloca(ROMlib_startdirlen + 1 - + strlen(ROMlib_appname) + 1); - sprintf(orig_file_name, "%s/%s", ROMlib_startdir, ROMlib_appname); - -#if defined (MSDOS) - /* fopen in read/write mode can succeed under MSDOS even when the - * file isn't writeable (as when run off the CD-ROM). This check - * works, however. - */ - if (access (orig_file_name, W_OK)) - complain_and_die_because_not_writeable ("modify", orig_file_name, - strerror (errno)); -#endif - -#if !defined(LETGCCWAIL) - new_file_name = 0; -#endif - if ((write_fp = Ufopen(orig_file_name, "r+b"))) - { - read_fp = write_fp; - } - else - { - if ((read_fp = Ufopen(orig_file_name, "rb"))) - { - struct stat sbuf; - - new_file_name = alloca(ROMlib_startdirlen + 1 + 1 - + strlen(ROMlib_appname) + 1); - sprintf(new_file_name, "%s/.%s", ROMlib_startdir, ROMlib_appname); - - /* Fetch original permission bits. */ - if (Ustat(orig_file_name, &sbuf)) - errno_fatal ("Unable to stat %s", orig_file_name); - - /* Open the new file for writing. */ - write_fp = Ufopen(new_file_name, "wb"); - if (write_fp == NULL) - complain_and_die_because_not_writeable ("create", - new_file_name, - strerror (errno)); - - /* Copy permission bits. */ - if (Uchmod(new_file_name, sbuf.st_mode)) - errno_fatal ("Unable to chmod %s", new_file_name); - } - else - { - errno_fatal ("Couldn't open %s for reading", orig_file_name); - } - } - - strncpy(ROMlib_info.name, name, sizeof(ROMlib_info.name)); - strncpy(ROMlib_info.organization, org, sizeof(ROMlib_info.organization)); - strncpy(ROMlib_info.key, key, sizeof(ROMlib_info.key)); - - copy_with_cookie_substitution (read_fp, write_fp); - - fsync(fileno(write_fp)); - if (fclose(write_fp) == EOF) - { - if (write_fp != read_fp) - { - fclose(read_fp); - unlink(orig_file_name); - fprintf(stderr, "trouble closing file\n"); - exit(3); - } - } -#if !defined (CYGWIN32) - else - { - if (write_fp != read_fp) - { - boolean_t failed_p; - -#define BACKUP_SUFFIX ".old" - backup_file_name = alloca(strlen(orig_file_name) - + sizeof(BACKUP_SUFFIX)); - sprintf(backup_file_name, "%s%s", orig_file_name, BACKUP_SUFFIX); - unlink(backup_file_name); /* No need to check for error here. */ - - failed_p = (Ulink (orig_file_name, backup_file_name) != 0); - if (failed_p) - warning_errno ("Unable to link \"%s\" to \"%s\".", - orig_file_name, backup_file_name); - else - { - failed_p = (unlink (orig_file_name) != 0); - if (failed_p) - warning_errno ("Unable to unlink \"%s\"\n", orig_file_name); - } - - if (failed_p) - { - fprintf(stderr, "Unable to move \"%s\" to \"%s\"\n" - "New file left as \"%s\"\n", orig_file_name, - backup_file_name, new_file_name); - exit(3); - } - else - { - if (Ulink (new_file_name, orig_file_name) != 0) - { - warning_errno ("Unable to link \"%s\" to \"%s\".\n", - new_file_name, orig_file_name); - Ulink (backup_file_name, orig_file_name); - fprintf(stderr, "Unable to move \"%s\" to \"%s\"\n" - "New file left as \"%s\"\n", new_file_name, - orig_file_name, new_file_name); - exit(3); - } - unlink(new_file_name); - /* unlink(backup_file_name); This just doesn't work. */ - } - } - } -#endif - -#if defined (CYGWIN32) - if (new_file_name) - add_to_cleanup ("\"%s\\exemove\" \"%s\" \"%s\"\n", ROMlib_startdir, - new_file_name, orig_file_name); -#endif - - /* TODO: explain why Executor is quitting and state that the registration - process has succeeded if it has */ - ROMlib_exit = 1; - C_ExitToShell(); -} - ULONGINT ROMlib_ourmtime; -/* - * TODO: change printf to some sort of alert thing. - */ - -PRIVATE void revert_to_demo_mode( const char *stringp ) -{ -#if 0 -#if !defined (REGISTER_BEFORE_USABLE) - fprintf(stderr, "Reverting to demo mode: %s\n", stringp); -#else - fprintf(stderr, "Reverting to unregistered mode: %s\n", stringp); -#endif -#endif - - ROMlib_info.serialnumber = 0; -} - #if defined (NEXTSTEP) #if !defined (STRICT_OPENSTEP) @@ -1023,144 +658,6 @@ A1(PRIVATE, void, misc_self_examination, char *, us) } #endif /* defined (NEXTSTEP) */ -PRIVATE boolean_t -valid_sn_for_this_platform (unsigned long sn) -{ - boolean_t retval; - - retval = FALSE; - - if (ROMlib_first_snp && ROMlib_last_snp) - retval = sn >= ROMlib_first_snp->val && sn <= ROMlib_last_snp->val; - else - { - int platform; - - platform = sn % PLATFORM_MOD; - -#if defined(CYGWIN32) - if (platform == PLATFORM_DOS) - retval = TRUE; -#endif - -#if defined(MSDOS) - if (platform == PLATFORM_CYGWIN32) - retval = TRUE; -#endif - - if (platform == VERSION_SIG || platform == PLATFORM_ANY) - retval = TRUE; - } - - return retval; -} - -static inline void -info_after_hook (void) -{ - /* dummy hook so we can break here in gdb and set - `ROMlib_info.serial_number' to fully enable executor */ - -#if defined (RELEASE_INTERNAL) - ROMlib_info.serialnumber = 3; -#endif - -} - -A1(PRIVATE, void, readinfo, char *, us) -{ - struct stat sbuf; - decoded_info_t info; - - if (us[0] == 0) - { - fprintf (stderr, "don't know where we're being run from\n"); - exit (10); - } - if (Ustat(us, &sbuf) < 0) - { -#ifdef CYGWIN32 -#define EXE_SUFFIX ".exe" - { - char *us_plus_exe; - - us_plus_exe = alloca(strlen(us)+strlen(EXE_SUFFIX)+1); - sprintf(us_plus_exe, "%s%s", us, EXE_SUFFIX); - if (Ustat(us_plus_exe, &sbuf) < 0) - { - fprintf(stderr, "couldn't stat \"%s\" or \"%s\"\n", us, - us_plus_exe); - exit(10); - } - } -#else - fprintf(stderr, "couldn't stat \"%s\"\n", us); - exit(10); -#endif - } - ROMlib_ourmtime = sbuf.st_mtime; - if (ROMlib_info.serialnumber) - { - maskkey(); - byteswapinfo(&ROMlib_info); - if (decode((unsigned char *) ROMlib_info.key, &info) - && info.serial_number == ROMlib_info.serialnumber) - { - struct tm *tmp; - unsigned int this_year, this_month; - time_t t; - - time(&t); - tmp = localtime(&t); - this_year = tmp->tm_year + 1900; - this_month = tmp->tm_mon + 1; - - if (!valid_sn_for_this_platform(ROMlib_info.serialnumber)) - revert_to_demo_mode("authorization key not" - " valid for this platform"); - else if (CL(ROMlib_info.serialnumber) == CLC (2392023) - || CL(ROMlib_info.serialnumber) == CLC (2175023) - || CL(ROMlib_info.serialnumber) == CLC (5958004) - || (info.expires_p - && (info.last_year < this_year - || (info.last_year == this_year - && info.last_month < this_month)))) - revert_to_demo_mode("authorization key expired"); - else if (info.major_revision < MAJOR_REVISION || - (info.major_revision == MAJOR_REVISION && - !info.updates_p && MINOR_REVISION > 0)) - revert_to_demo_mode("authorization key not" - " valid for this revision"); -#if !defined(MSDOS) && !defined (CYGWIN32) - else - protectus(info.serial_number, info.n_cpu); -#endif - } - else - revert_to_demo_mode("authorization key vs. serial number" - " mismatch"); - } - - if (ST_INO (sbuf) != ROMlib_info.inodenumber - || (ULONGINT) (sbuf.st_mtime - ROMlib_info.timechanged) > 300) - ROMlib_info.key[0] = 0; - - info_after_hook (); -} - -PRIVATE void -patch_phys_gestalt_ROMlib_info (void) -{ - replace_physgestalt_selector (gestaltSerialNumber, - ROMlib_info.serialnumber); - - replace_physgestalt_selector (gestaltRegisteredName, - US_TO_SYN68K (ROMlib_info.name)); - - replace_physgestalt_selector (gestaltRegisteredOrg, - US_TO_SYN68K (ROMlib_info.organization)); -} - #if defined(MSDOS) || defined (CYGWIN32) PUBLIC char ROMlib_savecwd[MAXPATHLEN]; @@ -1228,7 +725,6 @@ A1(PRIVATE, void, setstartdir, char *, argv0) #if defined(NEXTSTEP) misc_self_examination (lookhere); #endif - readinfo(lookhere); suffix = rindex(lookhere, '/'); *suffix = 0; getcwd(savedir, sizeof savedir); @@ -1294,7 +790,6 @@ A1(PRIVATE, void, setstartdir, char *, argv0) strcpy(ROMlib_startdir, "."); } ROMlib_startdirlen = strlen(ROMlib_startdir); - readinfo(argv0); #endif /* defined(MSDOS) */ } @@ -2134,8 +1629,6 @@ A2 (PUBLIC, int, main, int, argc, char **, argv) ROMlib_InitZones (force_big_offset ? offset_big : offset_none); - patch_phys_gestalt_ROMlib_info (); - { uint32 save_a7; @@ -2216,10 +1709,6 @@ A2 (PUBLIC, int, main, int, argc, char **, argv) opt_int_val (common_db, "nomouse", &ROMlib_no_mouse, &bad_arg_p); #endif -#if defined (DISPLAY_SPLASH_INFO_BOX) - opt_int_val (common_db, "nosplash", &ROMlib_nosplash, &bad_arg_p); -#endif - #if 0 opt_int_val (common_db, "noclock", &ROMlib_noclock, &bad_arg_p); #endif @@ -2597,15 +2086,6 @@ A2 (PUBLIC, int, main, int, argc, char **, argv) restore_virtual_ints (int_state); -#if defined (DISPLAY_SPLASH_INFO_BOX) - if (!ROMlib_no_windows && ROMlib_startupscreen) - SysError (0x28); /* welcome to m*cintosh */ -#endif /* DISPLAY_SPLASH_INFO_BOX */ - - if (!ROMlib_info.serialnumber && - (!ROMlib_must_registerp || ROMlib_must_registerp->val)) - ROMlib_dolicense = register_only; - WWExist = QDExist = EXIST_NO; #if defined (CYGWIN32) diff --git a/src/menu.c b/src/menu.c index 5eafa93..45b0c0c 100644 --- a/src/menu.c +++ b/src/menu.c @@ -62,12 +62,6 @@ P0 (PUBLIC pascal trap, void, InvalMenuBar) DrawMenuBar (); } -#if defined (DISPLAY_DEMO_ON_MENU_BAR) -/* Bounding box for "DEMO" text on menu bar. */ -static Rect menu_demo_text_rect; -#endif - - P0(PUBLIC pascal trap, void, DrawMenuBar) { if (MBDFHndl) @@ -75,57 +69,6 @@ P0(PUBLIC pascal trap, void, DrawMenuBar) TheMenu = 0; MBDFCALL(mbDraw, 0, 0L); -#if defined (DISPLAY_DEMO_ON_MENU_BAR) - if (WWExist == EXIST_YES) - { - THEPORT_SAVE_EXCURSION - (MR (wmgr_port), - { - static char demo_string[] = DEMO_PREFIX "DEMO"; - FontInfo font_info; - int text_width; - int text_height; - int left; - int top; - RGBColor save_fg; - RGBColor save_bk; - - save_fg = CPORT_RGB_FG_COLOR (MR (wmgr_port)); - save_bk = CPORT_RGB_BK_COLOR (MR (wmgr_port)); - - /* Set up the pen and colors. */ - PenNormal (); - if (vdriver_bpp > 2) - ForeColor (redColor); - else - ForeColor (blackColor); - BackColor (whiteColor); - - /* Set up the font. */ - TextFont (0); - TextSize (0); - GetFontInfo (&font_info); - text_width = TextWidth ((Ptr) demo_string, - 0, strlen (demo_string)); - text_height = (CW (font_info.ascent)); - - left = vdriver_width - 16 - text_width; - top = (CW (MBarHeight) - text_height) / 2 - 2; - - /* Record the bounding rect. */ - SetRect (&menu_demo_text_rect, - left, top, left + text_width, top + text_height); - - /* Draw the demo text. */ - MoveTo (left, top + text_height); - DrawText_c_string (demo_string); - - /* Restore the foreground and background colors. */ - RGBForeColor (&save_fg); - RGBBackColor (&save_bk); - }); - } -#endif /* DISPLAY_DEMO_ON_MENU_BAR */ } } @@ -539,7 +482,6 @@ P2(PUBLIC pascal trap, void, AddResMenu, MenuHandle, mh, ResType, restype) } while (restype == TICK("FONT") && (restype = TICK("FOND"))); -#if defined (SUPPORT_ABOUT_EXECUTOR_BOX) /* Add an "About Executor..." menu to the Apple menu when they * ask for desk accessories. */ @@ -550,7 +492,6 @@ P2(PUBLIC pascal trap, void, AddResMenu, MenuHandle, mh, ResType, restype) about_box_menu_name_pstr = (StringPtr) "\016\000About CCRS..."; if (restype == TICK ("DRVR") && about_box_menu_name_pstr[0]) app (about_box_menu_name_pstr, 0, 0, 0, 0, FALSE, &endinf); -#endif /* defined (SUPPORT_ABOUT_EXECUTOR_BOX) */ n = GetHandleSize(temph); sp = (StringPtr) STARH(temph); @@ -1184,7 +1125,7 @@ int32 ROMlib_menuhelper (MenuHandle mh, Rect *saverp, restoren(nmenusdisplayed, (RgnHandle) 0, 0); nmenusdisplayed = 0; } - whichmenuhit = CRACKER_ZERO; + whichmenuhit = 0; if (where == NOTHITINMBAR) { mh = NULL; @@ -1233,7 +1174,7 @@ int32 ROMlib_menuhelper (MenuHandle mh, Rect *saverp, item = CW(item); } else - item = CRACKER_ZERO; + item = 0; where = oldwhere; olditem = 0; } @@ -1369,12 +1310,6 @@ P1(PUBLIC pascal trap, LONGINT, MenuSelect, Point, p) TopMenuItem = MBarHeight; retval = ROMlib_menuhelper((MenuHandle) 0, &spooeyr, 0, FALSE, 0); - -#if defined (DISPLAY_DEMO_ON_MENU_BAR) - if (retval == 0 && PtInRect (p, &menu_demo_text_rect)) - do_about_box (); -#endif - return retval; } @@ -1394,7 +1329,6 @@ P1(PUBLIC pascal trap, void, FlashMenuBar, INTEGER, mid) MBDFCALL(mbHilite, 0, l); } -#if 1 || !defined (DISABLE_COMMAND_KEY_EQUIVS) A2(PRIVATE, BOOLEAN, findroot, INTEGER, menuid, INTEGER *, root_unswp) { INTEGER loopcount, i, maxi; @@ -1438,74 +1372,60 @@ A2(PRIVATE, BOOLEAN, findroot, INTEGER, menuid, INTEGER *, root_unswp) } return FALSE; } -#endif /* !defined (DISABLE_COMMAND_KEY_EQUIVS) */ P1(PUBLIC pascal trap, LONGINT, MenuKey, CHAR, thec) { -#if defined (DISABLE_COMMAND_KEY_EQUIVS) - if (!ROMlib_disable_command_key_equivsp || - !ROMlib_disable_command_key_equivsp->val) -#endif + muelem *mp, *mpend; + startendpairs mps; + unsigned char *p; + MenuHandle mh; + int mitem; + mextp mxp; + LONGINT e, retval; + Byte c; + INTEGER i, menuid; + + if (thec >= 0x1B && thec <= 0x1F) + /*-->*/ return 0; + c = thec; + if (c >= 'a' && c <= 'z') + c = 'A' + c - 'a'; + + initpairs(mps); + for (i = (int) nonhier; i <= (int) hier; i++) { - muelem *mp, *mpend; - startendpairs mps; - unsigned char *p; - MenuHandle mh; - int mitem; - mextp mxp; - LONGINT e, retval; - Byte c; - INTEGER i, menuid; - - if (thec >= 0x1B && thec <= 0x1F) - /*-->*/ return 0; - c = thec; - if (c >= 'a' && c <= 'z') - c = 'A' + c - 'a'; - - initpairs(mps); - for (i = (int) nonhier; i <= (int) hier; i++) - { - for (mpend = mps[i].startp - 1, mp = mps[i].endp - 1; mp != mpend ; - mp--) - { - mh = MR(mp->muhandle); - p = (unsigned char *) STARH(mh) + SIZEOFMINFO + - *(unsigned char *)(HxX(mh, menuData)); - mitem = 1; - while (*p != 0) - { - mxp = (mextp)(p + U(*p) + 1); - if (mxp->mkeyeq == c && ((e = Hx(mh, enableFlags)) & 1) && - e & ((LONGINT)1 << mitem)) - { - if (i == (int) nonhier) - menuid = Hx(mh, menuID); - else if (!findroot(Hx(mh, menuID), &menuid)) -/*-->*/ return 0L; - retval = ((LONGINT)Hx(mh, menuID) << 16) | - (unsigned short) mitem; - FlashMenuBar(menuid); - if (Hx(mh, menuID) < 0) - { - SystemMenu(retval); - retval = 0; - } -/*-->*/ return retval; - } - mitem++; - p += U(*p) + SIZEOFMEXT; - } - } - } + for (mpend = mps[i].startp - 1, mp = mps[i].endp - 1; mp != mpend ; + mp--) + { + mh = MR(mp->muhandle); + p = (unsigned char *) STARH(mh) + SIZEOFMINFO + + *(unsigned char *)(HxX(mh, menuData)); + mitem = 1; + while (*p != 0) + { + mxp = (mextp)(p + U(*p) + 1); + if (mxp->mkeyeq == c && ((e = Hx(mh, enableFlags)) & 1) && + e & ((LONGINT)1 << mitem)) + { + if (i == (int) nonhier) + menuid = Hx(mh, menuID); + else if (!findroot(Hx(mh, menuID), &menuid)) + /*-->*/ return 0L; + retval = ((LONGINT)Hx(mh, menuID) << 16) | + (unsigned short) mitem; + FlashMenuBar(menuid); + if (Hx(mh, menuID) < 0) + { + SystemMenu(retval); + retval = 0; + } + /*-->*/ return retval; + } + mitem++; + p += U(*p) + SIZEOFMEXT; + } + } } -#if defined (DISABLE_COMMAND_KEY_EQUIVS) - else - system_error ("Menu command-key equivalents are disabled in the " - "demo version of Executor. You must use the mouse " - "to select menu items.", - 0, "OK", NULL, NULL, NULL, NULL, NULL); -#endif /* defined (DISABLE_COMMAND_KEY_EQUIVS) */ return(0L); } diff --git a/src/mman.c b/src/mman.c index 65a8faf..6b3e6fe 100644 --- a/src/mman.c +++ b/src/mman.c @@ -33,8 +33,13 @@ char ROMlib_rcsid_mman[] = #include "dpmilock.h" #endif -#if defined (LINUX) +#if defined (LINUX) || defined (MACOSX) #include + +#if !defined (MAP_ANONYMOUS) +# define MAP_ANONYMOUS MAP_ANON +#endif + #endif /* LINUX */ #if defined(NEXT) && !defined (STRICT_OPENSTEP) @@ -768,7 +773,7 @@ _NewHandle_flags (Size size, boolean_t sys_p, boolean_t clear_p) newh->p = BLOCK_DATA_X (block); if (clear_p) - memset (BLOCK_DATA (block), CRACKER_ZERO, size - HDRSIZE); + memset (BLOCK_DATA (block), 0, size - HDRSIZE); SET_MEM_ERR (noErr); @@ -1235,7 +1240,7 @@ _NewPtr_flags (Size size, boolean_t sys_p, boolean_t clear_p) p = BLOCK_DATA (b); if (clear_p) - memset (p, CRACKER_ZERO, size - HDRSIZE); + memset (p, 0, size - HDRSIZE); TheZone = save_zone; SET_MEM_ERR (noErr); diff --git a/src/osevent.c b/src/osevent.c index 7d3cff7..0fff8e6 100644 --- a/src/osevent.c +++ b/src/osevent.c @@ -41,7 +41,6 @@ char ROMlib_rcsid_osevent[] = #include "rsys/toolevent.h" #include "rsys/osevent.h" #include "rsys/dirtyrect.h" -#include "rsys/license.h" #include "rsys/stdfile.h" #include "rsys/system_error.h" @@ -437,9 +436,6 @@ A3(PRIVATE, BOOLEAN, OSEventCommon, INTEGER, evmask, EventRecord *, eventp, BOOLEAN retval; static Point oldpoint = { -1, -1 }; LONGINT ticks; -#if !defined(MSDOS) && !defined(CYGWIN32) - static LONGINT protector_ticks; -#endif /* We tend to call this routine from various ROMlib modal loops, so this * is a good place to check for timer interrupts, etc. */ @@ -525,31 +521,6 @@ A3(PRIVATE, BOOLEAN, OSEventCommon, INTEGER, evmask, EventRecord *, eventp, ROMlib_memnomove_p = FALSE; /* this is an icky hack needed for Excel */ ticks = TickCount(); -#if !defined(MSDOS) && !defined (CYGWIN32) -#define TICKS_PER_MINUTE (60 * 60) - if (ticks - protector_ticks > 4 * TICKS_PER_MINUTE) - { - protectus(0, 0); - protector_ticks = ticks; - } -#endif - -#if defined (TIME_OUT) - { - static char in_alert = FALSE; - - if (!ROMlib_info.serialnumber && ticks > TIME_OUT * 60 * 60 && !in_alert) - { - in_alert = TRUE; - - ROMlib_exit = TRUE; - system_error ("Time's up!", 0, "Exit", NULL, NULL, - C_ExitToShell, NULL, NULL); - } - } -#endif - - #if defined (X) /* if we are running on a version of linux that doesn't support SIGIO this will handle events (although not asynchronously) */ diff --git a/src/parse.y b/src/parse.y index 0bd948f..579142c 100644 --- a/src/parse.y +++ b/src/parse.y @@ -37,6 +37,8 @@ pair_t ROMlib_ScreenLocation = { INITIALPAIRVALUE, INITIALPAIRVALUE }; unsigned short crcval; int ROMlib_AppleChar = 0; int ROMlib_right_button_modifier = 0; + +void yyerror(const char *str); %} %start configuration @@ -576,7 +578,7 @@ static long yylex( void ) { } } -void yyerror(char *str) +void yyerror(const char *str) { warning_unexpected ("configuration file parse error (line %ld): %s", linecount, str); } diff --git a/src/protector.c b/src/protector.c deleted file mode 100644 index 70692bd..0000000 --- a/src/protector.c +++ /dev/null @@ -1,454 +0,0 @@ -/* Copyright 1992 by Abacus Research and - * Development, Inc. All rights reserved. - */ - -#if !defined (OMIT_RCSID_STRINGS) -char ROMlib_rcsid_protector[] = - "$Id: protector.c 63 2004-12-24 18:19:43Z ctm $"; -#endif - -#include "rsys/common.h" - -#if defined(NEXTSTEP) || defined(LINUX) || defined (MACOSX) - -/* - * TODO: make sure no one interferes with SIGIO - */ - -#include "rsys/next.h" -#include -#include -#include -#include -#include -#include - -#include "rsys/sigio_multiplex.h" - -#if defined(NEXTSTEP) -#include -#endif - -/* - * Here's the plan: - * - * We try to get a port number as close to BASEPORT as we can. - * We listen on whatever we get. - * We broadcast on all ports between BASEPORT and the highest we've seen. - * (except the who's alive message is broadcast to all the ports) - * We advertise when we start up and when we die. - * We send an alive message whenever in response to a who's alive message. - * If we don't see an alive message for five minutes we send one. - */ - -static LONGINT sock; - -#define WHOLIVES 0x50505050 -#define ILIVE 0x55555555 -#define IDIED 0xAAAAAAAA - -#define HASHSIZE 1031 - -#define BASEPORT 62331 -#define NPORTS 10 - -#define STALE (5 * 60) /* 5 minutes */ - -static LONGINT portcount[NPORTS]; - -typedef struct __hashentry { - struct sockaddr_in addr; - LONGINT datestarted; - LONGINT datenow; - struct __hashentry *next; -} hashentry; - -hashentry *hashtable[HASHSIZE]; -LONGINT hashcount; - -time_t datestarted; - -typedef struct { - LONGINT message; - LONGINT serialnumber; - LONGINT datenow; - LONGINT datestarted; -} packet; - -static LONGINT ourserialnumber; -static LONGINT maxconcurrent; - -static unsigned short curbigport = BASEPORT; - -static struct sockaddr_in ourname, broadname; - -/* - * NOTE: sorted hash chain. This is necessary so we can figure out which - * copies are running on which machines. - */ - -static int -compareaddrs(struct sockaddr_in *addr1, struct sockaddr_in *addr2, - char *partialmatchp) -{ - ULONGINT u1, u2; - char retval; - - if (partialmatchp) - *partialmatchp = FALSE; - if ((u1 = addr1->sin_addr.s_addr) < (u2 = addr2->sin_addr.s_addr)) - retval = -1; - else if (u1 == u2) { - if (partialmatchp) - *partialmatchp = TRUE; - if ((u1 = ntohs (addr1->sin_port)) < (u2 = ntohs (addr2->sin_port))) - retval = -1; - else if (u1 == u2) - retval = 0; - else - retval = 1; - } else - retval = 1; - - return retval; -} - -static hashentry **find(struct sockaddr_in *fromp, char *partialmatchp) -{ - hashentry **retval; - ULONGINT key; - - key = fromp->sin_addr.s_addr; - *partialmatchp = FALSE; - retval = &hashtable[key % HASHSIZE]; - while (*retval && compareaddrs(&(*retval)->addr, fromp, partialmatchp) < 0) - retval = &(*retval)->next; - return retval; -} - -hashentry *freechain; - -void mymallocinit(LONGINT nneeded) -{ - hashentry *p; - - freechain = malloc(sizeof(hashentry) * nneeded); - for (p = freechain; --nneeded >= 0; ++p) { - p->next = p+1; - } - p[-1].next = 0; -} - -void myfree(hashentry *tofree) -{ - tofree->next = freechain; - freechain = tofree; -} - -hashentry *mymalloc( void ) -{ - hashentry *retval; - - retval = freechain; - if (freechain) - freechain = freechain->next; - return retval; -} - -static void hash_delete(struct sockaddr_in *fromp) -{ - hashentry *totoss; - hashentry **loc; - char partialmatch; - - loc = find(fromp, &partialmatch); - if (*loc && compareaddrs(&(*loc)->addr, fromp, (char *) 0) == 0) { - totoss = *loc; - *loc = (*loc)->next; - myfree(totoss); - /* the test after the && is to make sure that there aren't other - entries with this addr remaining */ - if (!partialmatch && (!*loc || - (*loc)->addr.sin_addr.s_addr != fromp->sin_addr.s_addr)) - --hashcount; - if (--portcount[ntohs (fromp->sin_port) - BASEPORT] == 0 - && ntohs (fromp->sin_port) == curbigport) { - while (!portcount[--curbigport - BASEPORT]) - ; - } - } -} - -/* - * NOTE: we call hash_delete below instead of doing it by hand because we don't - * want to worry about the trickiness of when to decrement hashcount - * and curbigport. - */ - - -#if !defined(NEXTSTEP) - -/* - * NOTE: we need better routines than this eventually - */ - -void toomanycopiesonnet( void ) -{ - printf("too many copies on net\n"); - exit(1); -} -#endif - -static void incrhashcount( void ) -{ - short i; - hashentry **loc; - time_t now; - - ++hashcount; - if (hashcount > maxconcurrent) { - time(&now); - /* loop through, purging old stuff */ - for (i = 0; i < HASHSIZE; ++i) { - for (loc = &hashtable[i]; *loc; loc = &(*loc)->next) { - if (now - (*loc)->datenow >= STALE) - hash_delete(&(*loc)->addr); - } - } - if (hashcount > maxconcurrent) { - toomanycopiesonnet(); - exit(1); - } - } -} - -static void add(packet *bufp, struct sockaddr_in *fromp) -{ - hashentry **loc; - hashentry *newentryp; - LONGINT olddate; - char partialmatch; - - loc = find(fromp, &partialmatch); - if (*loc && compareaddrs(&(*loc)->addr, fromp, (char *) 0) == 0) { - if (bufp->datestarted < (olddate = (*loc)->datestarted)) { -#if 0 - fprintf(stderr, "startdate went backwards\n"); - /* exit(1); */ - (*loc)->datestarted = bufp->datestarted; - if (olddate > datestarted && bufp->datestarted <= datestarted) - incrhashcount(); -#endif - } - } else { - newentryp = mymalloc(); - if (newentryp) { - newentryp->addr = *fromp; - newentryp->datestarted = bufp->datestarted; - newentryp->datenow = bufp->datenow; - newentryp->next = *loc; - *loc = newentryp; - if (!partialmatch && bufp->datestarted <= datestarted + 2) - incrhashcount(); - } - } - if (ntohs (fromp->sin_port) > curbigport) - curbigport = ntohs (fromp->sin_port); - ++portcount[ntohs (fromp->sin_port) - BASEPORT]; -} - -#if 0 -#if defined(BINCOMPAT) -#define OURID 0x40000000 -#else -#define OURID 0x20000000 -#endif - -#else - -#define OURID 0x00000000 - -#endif - -static void sendpacket(LONGINT message) -{ - packet buf; - unsigned short lastport; - struct sockaddr_in to; - time_t thetime; - - if (ourserialnumber) - { - buf.message = CL(message); - buf.serialnumber = CL(ourserialnumber | OURID); - time(&thetime); - buf.datenow = CL(thetime); - buf.datestarted = CL(datestarted); - if (message == WHOLIVES) - lastport = BASEPORT + NPORTS - 1; - else - lastport = MAX(ntohs (ourname.sin_port), curbigport); - for (to = broadname; ntohs (to.sin_port) <= lastport; - to.sin_port = htons (ntohs (to.sin_port) + 1)) - sendto(sock, &buf, sizeof(buf), 0, (struct sockaddr *) &to, - sizeof(to)); - } -} - -#if !defined(BINCOMPAT) -#define TRAP -#else -#define TRAP trap -#endif - -static TRAP void gotsigio (int signo) -{ - struct sockaddr_in from; - packet buf; - LONGINT count; - time_t currenttime; - LONGINT fromlen; - - time(¤ttime); - fromlen = sizeof(from); - do { - count = recvfrom(sock, &buf, sizeof(buf), 0, (struct sockaddr *) &from, - (void *) &fromlen); - if (count == sizeof(buf) && - buf.serialnumber == CL(ourserialnumber | OURID)) { - - buf.message = CL(buf.message); - buf.serialnumber = CL(buf.serialnumber); - buf.datenow = CL(buf.datenow); - buf.datestarted = CL(buf.datestarted); - - buf.datestarted += currenttime - buf.datenow; - buf.datenow = currenttime; - switch (buf.message) { - case WHOLIVES: - add(&buf, &from); - sendpacket(ILIVE); - break; - case ILIVE: - add(&buf, &from); - break; - case IDIED: - hash_delete(&from); - break; - } - } - } while (count >= 0); -} - - -#define TRANSFORM_CHAR(c) ((c) ^ 0xA3) - -PRIVATE void -transform_string (char *p) -{ - for (;*p;++p) - *p = TRANSFORM_CHAR (*p); -} - -PRIVATE boolean_t -check_net (void) -{ - char env[] = - { - TRANSFORM_CHAR('E'), - TRANSFORM_CHAR('X'), - TRANSFORM_CHAR('E'), - TRANSFORM_CHAR('C'), - TRANSFORM_CHAR('U'), - TRANSFORM_CHAR('T'), - TRANSFORM_CHAR('O'), - TRANSFORM_CHAR('R'), - TRANSFORM_CHAR('_'), - TRANSFORM_CHAR('N'), - TRANSFORM_CHAR('E'), - TRANSFORM_CHAR('T'), - TRANSFORM_CHAR('C'), - TRANSFORM_CHAR('H'), - TRANSFORM_CHAR('E'), - TRANSFORM_CHAR('C'), - TRANSFORM_CHAR('K'), - 0 - }; - boolean_t retval; - char *name; - - retval = TRUE; - - transform_string (env); - name = getenv (env); - transform_string (env); - if (name && strcmp (name, "0") == 0) - retval = FALSE; - - return retval; -} - -void protectus(LONGINT serialnumber, LONGINT max) -{ - LONGINT err; - LONGINT val; - static char beenhere; - struct ifreq ifr; - - if (check_net ()) - { - if (serialnumber && !freechain) - { - mymallocinit(MIN(50, max * 4)); - ourserialnumber = serialnumber; - maxconcurrent = max; - } - if (!beenhere) - { - int try_port; - - time(&datestarted); - sock = socket(AF_INET, SOCK_DGRAM, 0); - sigio_multiplex_install_handler (sock, gotsigio); -#if defined(LINUX) - strcpy(ifr.ifr_name, "eth0"); - if (ioctl(sock, SIOCGIFBRDADDR, &ifr) < 0) -#endif - ((struct sockaddr_in *) &ifr.ifr_broadaddr)->sin_addr.s_addr - = INADDR_BROADCAST; - val = 1; - err = setsockopt(sock, SOL_SOCKET, SO_BROADCAST, &val, sizeof(val)); - err = setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &val, sizeof(val)); - ourname.sin_family = AF_INET; - ourname.sin_addr.s_addr = INADDR_ANY; - memset(ourname.sin_zero, 0, sizeof(ourname.sin_zero)); - try_port = BASEPORT; - do - { - ourname.sin_port = htons (try_port); - err = bind(sock, (struct sockaddr *) &ourname, sizeof(ourname)); - } - while (err < 0 && errno == EADDRINUSE - && ++try_port < BASEPORT + NPORTS); - if (err == 0) - { - err = fcntl(sock, F_SETFL, FASYNC|FNDELAY); - err = fcntl(sock, F_SETOWN, getpid()); - broadname.sin_family = AF_INET; - broadname.sin_port = htons (BASEPORT); - broadname.sin_addr = - ((struct sockaddr_in *) &ifr.ifr_broadaddr)->sin_addr; - memset(broadname.sin_zero, 0, sizeof(broadname.sin_zero)); - beenhere = 1; - } - } - if (ourserialnumber && beenhere) - sendpacket(WHOLIVES); - } -} - -void stopprotectingus( void ) -{ - sendpacket(IDIED); -} -#endif /* defined(NEXTSTEP) || defined(LINUX) */ diff --git a/src/resGet.c b/src/resGet.c index 872e779..f9e1929 100644 --- a/src/resGet.c +++ b/src/resGet.c @@ -86,7 +86,7 @@ A3(PRIVATE, Handle, getindmapresource, resmaphand, map, ResType, typ, if (CL(tr->rtyp) == typ) { nr = Cx(tr->nres) + 1; WALKRR(map, tr, j, rr) - if (--*indx == CRACKER_ZERO) + if (--*indx == 0) /*-->*/ return ROMlib_mgetres(map, rr); EWALKRR(rr) } diff --git a/src/splash.c b/src/splash.c index e984e76..cd64dd6 100644 --- a/src/splash.c +++ b/src/splash.c @@ -19,7 +19,6 @@ char ROMlib_rcsid_splash[] = #include "rsys/splash.h" #include "rsys/vdriver.h" -#include "rsys/license.h" #include "rsys/cquick.h" #include "rsys/slash.h" #include "rsys/notmac.h" diff --git a/src/stdfile-new.c b/src/stdfile-new.c index 3606a77..1e2de7a 100644 --- a/src/stdfile-new.c +++ b/src/stdfile-new.c @@ -1546,22 +1546,8 @@ PUBLIC int linuxfloppy_open(int disk, LONGINT *bsizep, *flagsp = 0; #define FLOPPY_PREFIX "/dev/fd" if (strncmp (dname, FLOPPY_PREFIX, sizeof(FLOPPY_PREFIX)-1) == 0) - { - *flagsp |= DRIVE_FLAGS_FLOPPY; -#if defined (DISABLE_FLOPPY_WRITES) - force_read_only = TRUE; -#endif - } + *flagsp |= DRIVE_FLAGS_FLOPPY; -#if defined (DISABLE_SCSI_WRITES) - { - struct stat sbuf; - - if (stat (dname, &sbuf) == 0 && !S_ISREG (sbuf.st_mode)) - force_read_only = TRUE; - } -#endif - if (!force_read_only) retval = Uopen (dname, O_RDWR); if (force_read_only || retval < 0) diff --git a/src/stdfile.c b/src/stdfile.c index 181679c..73882aa 100644 --- a/src/stdfile.c +++ b/src/stdfile.c @@ -57,7 +57,6 @@ char ROMlib_rcsid_stdfile[] = #include "rsys/tempalloc.h" #include "rsys/hook.h" #include "rsys/toolevent.h" -#include "rsys/license.h" #include "rsys/string.h" #include "rsys/dcache.h" #include "rsys/menu.h" @@ -75,6 +74,7 @@ PUBLIC int nodrivesearch_p = FALSE; #endif #include "rsys/print.h" +#include "rsys/system_error.h" typedef union { @@ -1576,22 +1576,8 @@ PUBLIC int linuxfloppy_open(int disk, LONGINT *bsizep, *flagsp = 0; #define FLOPPY_PREFIX "/dev/fd" if (strncmp (dname, FLOPPY_PREFIX, sizeof(FLOPPY_PREFIX)-1) == 0) - { - *flagsp |= DRIVE_FLAGS_FLOPPY; -#if defined (DISABLE_FLOPPY_WRITES) - force_read_only = TRUE; -#endif - } + *flagsp |= DRIVE_FLAGS_FLOPPY; -#if defined (DISABLE_SCSI_WRITES) - { - struct stat sbuf; - - if (stat (dname, &sbuf) == 0 && !S_ISREG (sbuf.st_mode)) - force_read_only = TRUE; - } -#endif - if (!force_read_only) retval = Uopen (dname, O_RDWR, 0); #if !defined (LETGCCWAIL) diff --git a/src/stdmdef.c b/src/stdmdef.c index 6909249..3e4122b 100644 --- a/src/stdmdef.c +++ b/src/stdmdef.c @@ -396,19 +396,6 @@ draw_item (Rect *rp, struct tableentry *tp, int32 bit, int item, MenuHandle mh, } RGBBackColor (invert_p ? &title_color : &bk_color); -#if defined (DISABLE_COMMAND_KEY_EQUIVS) - if (ROMlib_disable_command_key_equivsp && - ROMlib_disable_command_key_equivsp->val) - if (active_p && !dither_cmd_p) - { - if (!AVERAGE_COLOR (&bk_color, &command_color, 0x8000, &command_color)) - { - command_color = ROMlib_black_rgb_color; - dither_cmd_p = TRUE; - } - } -#endif - rtmp.top = CW (top); rtmp.bottom = CW (bottom); rtmp.left = rp->left; diff --git a/src/syserr.c b/src/syserr.c index f011198..fbb3fc0 100644 --- a/src/syserr.c +++ b/src/syserr.c @@ -28,17 +28,11 @@ char ROMlib_rcsid_syserr[] = #include "rsys/segment.h" #include "rsys/flags.h" #include "rsys/version.h" -#include "rsys/license.h" #include "rsys/vdriver.h" #include "rsys/next.h" #include "rsys/osevent.h" #include "rsys/options.h" -PRIVATE void mydolicense( void ) -{ - ROMlib_dolicense = old_license; -} - PRIVATE struct { INTEGER count PACKED; @@ -163,12 +157,7 @@ PRIVATE struct { CWC(156), /* 8. Info "procedure" */ CWC(4), -#if !defined(LITTLEENDIAN) - (void (*)()) mydolicense, -#else - 0, /* dolicense will be filled in later */ -#endif - + 0, /* was mydolicense, which we no longer use */ }; char syserr_msg[256]; @@ -355,23 +344,6 @@ A4(PRIVATE, void, dobuttons, INTEGER, id, INTEGER, offsetx, } } -#define DEMO_MODE_VERSION "Time Limited Demo Mode (" -#define REGISTERED_VERSION "Fully Enabled Version, Do NOT Redistribute (" - -#if defined (EXPERIMENTAL) -#define EXPERIMENTAL_STRING " -- experimental)" -#else -#define EXPERIMENTAL_STRING ")" -#endif - -PRIVATE void -DrawVersion (char *str) -{ - DrawText_c_string (str); - DrawText_c_string ((char *) ROMlib_executor_version); - DrawText_c_string (EXPERIMENTAL_STRING); -} - /* * NOTE: The version of SysError below will only handle natively compiled * code. When we want to be able to run arbitrary code we'll need @@ -395,11 +367,6 @@ P1(PUBLIC pascal, void, SysError, short, errorcode) main_gd_rect = PIXMAP_BOUNDS (GD_PMAP (MR (MainDevice))); -#if defined(LITTLEENDIAN) - myalerttab.func8 = - (void (*)(void)) (long) CL((LONGINT) (long) mydolicense); -#endif - if (!DSAlertTab) { #if defined (CLIFF_CENTERING_ALGORITHM) DSAlertTab = CL((Ptr) &myalerttab); @@ -459,101 +426,49 @@ P1(PUBLIC pascal, void, SysError, short, errorcode) /* 5, 6. Draw alert box if the errorcode is >= 0 */ TRAPBEGIN(); - if ( -#if defined (DISPLAY_SPLASH_INFO_BOX) - !ROMlib_nosplash -#else - 0 -#endif - ) { - if (errorcode < 0) - errorcode = -errorcode; - else { - r = DSAlertRect; - FillRect(&r, white); + if (errorcode < 0) + errorcode = -errorcode; + else { + r = DSAlertRect; + FillRect(&r, white); #if defined (OLDSTYLEALERT) - r.right = CW(CW(r.right) - (2)); - r.bottom = CW(CW(r.bottom) - (2)); - FrameRect(&r); - PenSize(2, 2); - MoveTo(CW(r.left)+2, CW(r.bottom)); - LineTo(CW(r.right), CW(r.bottom)); - LineTo(CW(r.right), CW(r.top)+2); - PenSize(1, 1); + r.right = CW(CW(r.right) - (2)); + r.bottom = CW(CW(r.bottom) - (2)); + FrameRect(&r); + PenSize(2, 2); + MoveTo(CW(r.left)+2, CW(r.bottom)); + LineTo(CW(r.right), CW(r.bottom)); + LineTo(CW(r.right), CW(r.top)+2); + PenSize(1, 1); #else /* OLDSTYLEALERT */ - FrameRect(&r); - InsetRect(&r, 3, 3); - PenSize(2, 2); - FrameRect(&r); - PenSize(1, 1); + FrameRect(&r); + InsetRect(&r, 3, 3); + PenSize(2, 2); + FrameRect(&r); + PenSize(1, 1); #endif /* OLDSTYLEALERT */ - } + } - /* find appropriate entry */ + /* find appropriate entry */ - ap = (struct adef *) findid(errorcode); - if (!ap) - ap = (struct adef *) ((INTEGER *) MR(DSAlertTab) + 1); + ap = (struct adef *) findid(errorcode); + if (!ap) + ap = (struct adef *) ((INTEGER *) MR(DSAlertTab) + 1); - /* 7. text strings */ - drawtextstring(CW(ap->primetextid), offsetx, offsety); - drawtextstring(CW(ap->secondtextid), offsetx, offsety); + /* 7. text strings */ + drawtextstring(CW(ap->primetextid), offsetx, offsety); + drawtextstring(CW(ap->secondtextid), offsetx, offsety); - /* 8. icon */ - drawicon(CW(ap->iconid), offsetx, offsety); + /* 8. icon */ + drawicon(CW(ap->iconid), offsetx, offsety); - /* 9. TODO: figure out what to do with the proc ... */ + /* 9. TODO: figure out what to do with the proc ... */ -#define NTK_LINE_1 "Distributed in Asia by NTK, Inc." -#define NTK_LINE_2 "+82 2 551 3505 FAX" -#define NTK_LINE_3 "+82 2 551 8425 Phone" - - if (errorcode == WELCOME_CODE) { -#if 0 - MoveTo((CW(DSAlertRect.left) + CW(DSAlertRect.right)) / 2, - CW(DSAlertRect.bottom) - 48); - DrawText_c_string (NTK_LINE_1); - MoveTo((CW(DSAlertRect.left) + CW(DSAlertRect.right)) / 2, - CW(DSAlertRect.bottom) - 32); - DrawText_c_string (NTK_LINE_2); - MoveTo((CW(DSAlertRect.left) + CW(DSAlertRect.right)) / 2, - CW(DSAlertRect.bottom) - 16); - DrawText_c_string (NTK_LINE_3); -#endif - - MoveTo (CW(main_gd_rect.left) + 5, - CW(main_gd_rect.bottom) - 17); -#if defined (USE_VGAVDRIVER) - TextMode(srcBic); -#endif - - if (ROMlib_info.serialnumber) - { - Str255 s; - - DrawVersion (REGISTERED_VERSION); - MoveTo(CW(main_gd_rect.left) + 5, - CW(main_gd_rect.bottom) - 33); - DrawText_c_string ("SN:"); - NumToString(ROMlib_info.serialnumber, s); - DrawString(s); - DrawText_c_string (" "); - DrawText_c_string (ROMlib_info.name); - DrawText_c_string (" --- "); - DrawText_c_string (ROMlib_info.organization); - } - else - DrawVersion (DEMO_MODE_VERSION); - TextMode(srcOr); - } - - /* 10, 11, 12, 13. check for non-zero button id */ + /* 10, 11, 12, 13. check for non-zero button id */ /* #warning We blow off ResumeProc until we can properly handle it */ - if (ap->buttonid) - dobuttons(/* CL(ResumeProc) ? Cx(ap->buttonid) + 1 : */ Cx(ap->buttonid), - offsetx, offsety, - !ROMlib_info.serialnumber && errorcode == WELCOME_CODE); - } + if (ap->buttonid) + dobuttons(/* CL(ResumeProc) ? Cx(ap->buttonid) + 1 : */ Cx(ap->buttonid), + offsetx, offsety, false); TRAPEND(); } diff --git a/src/toolevent.c b/src/toolevent.c index 3d46d01..df43ccf 100644 --- a/src/toolevent.c +++ b/src/toolevent.c @@ -246,74 +246,6 @@ PUBLIC void ROMlib_circledefault(DialogPtr dp) SetPort(saveport); } -#if !defined (SUPPORT_ABOUT_EXECUTOR_BOX) - -PRIVATE void substitute(Handle h, const char *findp, const char *replacep) -{ - Munger(h, 0, (Ptr) findp, strlen(findp), (Ptr) replacep, strlen(replacep)); -} - -/* This is the old, crufty about panel, which should eventually go away. - * The nice new about box is in aboutbox.c. - */ -PRIVATE void do_about_box(void) -{ - HIDDEN_Handle h; - Rect r; - INTEGER type; - DialogPtr dp; - INTEGER ihit; - INTEGER offset; - typedef Rect *RectPtr; - typedef struct { RectPtr p PACKED_P; } HIDDEN_RectPtr; - typedef HIDDEN_RectPtr *RectHandle; - RectHandle rh; /* all we're concerned with is the rect, but more follows */ - - if (WWExist != EXIST_YES) - SysBeep(5); - else - { - static BOOLEAN already_here = FALSE; - if (!already_here) - { - already_here = TRUE; - rh = (RectHandle) GetResource(TICK("DLOG"), ABOUTDIALID); - offset = (CW(screenBitsX.bounds.right) - - (Hx(rh, right) - Hx(rh, left))) / 2; - offset = offset - Hx(rh, left); - HxX(rh, left ) = CW(Hx(rh, left ) + offset); - HxX(rh, right) = CW(Hx(rh, right) + offset); - dp = GetNewDialog(ABOUTDIALID, (Ptr) 0, (WindowPtr) -1); - - GetDItem(dp, 2, &type, &h, &r); - h.p = CL(h.p); - substitute(h.p, "m.nnx", ROMlib_executor_version); -#if defined(LINUX) - substitute(h.p, "DOS", "Linux"); -#elif defined(NEXTSTEP) - substitute(h.p, "DOS", "NEXTSTEP"); -#endif - SetDItem(dp, 2, CW(type), h.p, &r); - - GetDItem(dp, 2, &type, &h, &r); - h.p = CL(h.p); - substitute(h.p, "License", "Info"); - SetDItem(dp, 2, CW(type), h.p, &r); - - ShowWindow(dp); - ROMlib_circledefault(dp); - do - ModalDialog((ProcPtr) 0, &ihit); - while (ihit != CWC(ABOUTOKITEM)); - DisposDialog(dp); - already_here = FALSE; - } - } -} - -#endif /* !defined (SUPPORT_ABOUT_EXECUTOR_BOX) */ - - PUBLIC void dofloppymount( void ) { #if !defined(MSDOS) && !defined(LINUX) && !defined (CYGWIN32) @@ -1311,13 +1243,8 @@ P0 (PUBLIC pascal trap, LONGINT, TickCount) */ if (ROMlib_clock) - Ticks_UL.u = CL (ticks); /* NOTE: we do it this way so that all four - bytes are used, even though if SHORT_TICKS - is set, we'll expect the top two bytes to - always be zero. If someone cracks out - our Time's up test then Ticks upper bytes - will get set eventually and that will - cause trouble */ + Ticks_UL.u = CL (ticks); + new_time = (UNIXTIMETOMACTIME (ROMlib_start_time.tv_sec) + (long) ((ROMlib_start_time.tv_usec / (1000000.0 / 60) + ticks) / 60)); diff --git a/src/toolutil.c b/src/toolutil.c index 54818c0..75edc38 100644 --- a/src/toolutil.c +++ b/src/toolutil.c @@ -103,26 +103,21 @@ get_phoney_name_resource (void) { if (!ROMlib_phoney_name_string) { + char *name = ""; +#if defined (linux) || defined (MACOSX) + name = getlogin (); + if (!name) + name = getenv ("LOGNAME"); + if (!name) + name = ""; +#endif int len; - len = strlen (ROMlib_info.name); + len = strlen (name); ROMlib_phoney_name_string = (StringHandle) NewHandleSys (len+1); if (ROMlib_phoney_name_string) { - char *name; - - name = ROMlib_info.name; HSetRBit ((Handle) ROMlib_phoney_name_string); -#if defined (linux) - if (!name[0]) - { - name = getlogin (); - if (!name) - name = getenv ("LOGNAME"); - if (!name) - name = ""; - } -#endif str255_from_c_string (STARH (ROMlib_phoney_name_string), name); } } diff --git a/src/unix_like.c b/src/unix_like.c index e1976a1..76eee93 100644 --- a/src/unix_like.c +++ b/src/unix_like.c @@ -304,6 +304,8 @@ mmap_lowglobals (void) } } +#if !defined (MACOSX) + #if !defined (powerpc) PRIVATE caddr_t round_up_to_page_size (unsigned long addr) @@ -379,6 +381,7 @@ mmap_conflict (void *start, size_t length) return retval; } +#endif /* defined (MACOSX) */ /* * This code used to try to get us memory that we could use directly (meaning