|
|
| version 1.13, 2025/04/17 14:34:27 | version 1.15, 2025/05/16 04:02:14 |
|---|---|
| Line 24 | Line 24 |
| * along with FreeM. If not, see <https://www.gnu.org/licenses/>. | * along with FreeM. If not, see <https://www.gnu.org/licenses/>. |
| * | * |
| * $Log$ | * $Log$ |
| * Revision 1.15 2025/05/16 04:02:14 snw | |
| * Make FreeM build on macOS on Apple Silicon | |
| * | |
| * Revision 1.14 2025/04/20 03:13:17 snw | |
| * Updates to init_execution_context | |
| * | |
| * Revision 1.13 2025/04/17 14:34:27 snw | * Revision 1.13 2025/04/17 14:34:27 snw |
| * Further logging improvements | * Further logging improvements |
| * | * |
| Line 82 | Line 88 |
| # include <termios.h> | # include <termios.h> |
| #endif | #endif |
| #if defined(__APPLE__) | |
| # define termio termios | |
| # define TCGETA TIOCGETA | |
| # define TCSETA TIOCSETA | |
| #endif | |
| #include "config.h" | #include "config.h" |
| #if defined(HAVE_MWAPI_MOTIF) | #if defined(HAVE_MWAPI_MOTIF) |
| Line 398 void init_timezone (void) | Line 410 void init_timezone (void) |
| long clock; | long clock; |
| #ifdef __CYGWIN__ | #if defined(__CYGWIN__) |
| tzset (); /* may be required in order */ | tzset (); /* may be required in order */ |
| /* to guarantee _timezone set */ | /* to guarantee _timezone set */ |
| #else | #else |
| Line 487 void init_execution_context (void) | Line 498 void init_execution_context (void) |
| codptr = code; | codptr = code; |
| code[0] = EOL; /* init code_pointer */ | code[0] = EOL; /* init code_pointer */ |
| partition = calloc ((unsigned) (PSIZE + 2), 1); | |
| if (partition == NULL) exit (2); /* could not allocate stuff... */ | if ((partition = calloc ((unsigned) (PSIZE + 2), 1)) == NULL) { |
| logprintf (FM_LOG_FATAL, "init_execution_context: could not allocate symbol table (error code %d [%s])", errno, strerror (errno)); | |
| } | |
| for (i = 0; i < MAXNO_OF_RBUF; i++) { | for (i = 0; i < MAXNO_OF_RBUF; i++) { |
| rbuf_flags[i].standard = standard; | rbuf_flags[i].standard = standard; |
| Line 503 void init_execution_context (void) | Line 515 void init_execution_context (void) |
| s = &partition[PSIZE] - 256; /* pointer to symlen_offset */ | s = &partition[PSIZE] - 256; /* pointer to symlen_offset */ |
| argptr = partition; /* pointer to beg of tmp-storage */ | argptr = partition; /* pointer to beg of tmp-storage */ |
| svntable = calloc ((unsigned) (UDFSVSIZ + 1), 1); | if ((svntable = calloc ((unsigned) (UDFSVSIZ + 1), 1)) == NULL) { |
| if (svntable == NULL) exit (2); /* could not allocate stuff... */ | logprintf (FM_LOG_FATAL, "init_execution_context: could not allocate user-defined ISV table (error code %d [%s])", errno, strerror (errno)); |
| } | |
| svnlen = UDFSVSIZ; /* begin of udf_svn_table */ | svnlen = UDFSVSIZ; /* begin of udf_svn_table */ |
| buff = calloc ((unsigned) NO_OF_RBUF * (unsigned) PSIZE0, 1); /* routine buffer pool */ | |
| if (buff == NULL) exit (2); /* could not allocate stuff... */ | |
| if ((buff = calloc ((unsigned) NO_OF_RBUF * (unsigned) PSIZE0, 1)) == NULL) { | |
| logprintf (FM_LOG_FATAL, "init_execution_context: could not allocate routine buffers (error code %d [%s])", errno, strerror (errno)); | |
| } | |
| newstack = calloc ((unsigned) NSIZE, 1); | if ((newstack = calloc ((unsigned) NSIZE, 1)) == NULL) { |
| if (newstack == NULL) exit (2); /* could not allocate stuff... */ | logprintf (FM_LOG_FATAL, "init_execution_context: could not allocate NEW stack (error code %d [%s])", errno, strerror (errno)); |
| } | |
| #ifdef DEBUG_NEWPTR | logprintf (FM_LOG_DEBUG, "allocating newptr stack..."); |
| printf("Allocating newptr stack...\r\n"); | |
| #endif | |
| newptr = newstack; | newptr = newstack; |
| newlimit = newstack + NSIZE - 1024; | newlimit = newstack + NSIZE - 1024; |
| namstck = calloc ((unsigned) NESTLEVLS * 13, 1); | if ((namstck = calloc ((unsigned) NESTLEVLS * 13, 1)) == NULL) { |
| if (namstck == NULL) exit (2); /* could not allocate stuff... */ | logprintf (FM_LOG_FATAL, "init_execution_context: could not allocate newptr stack (error code %d [%s])", errno, strerror (errno)); |
| } | |
| *namstck = EOL; | *namstck = EOL; |
| *(namstck + 1) = EOL; | *(namstck + 1) = EOL; |
| namptr = namstck; /* routine name stack pointer */ | namptr = namstck; /* routine name stack pointer */ |
| framstck = calloc ((unsigned) NESTLEVLS * 256, 1); | |
| if (framstck == NULL) exit (2); /* could not allocate stuff... */ | if ((framstck = calloc ((unsigned) NESTLEVLS * 256, 1)) == NULL) { |
| logprintf (FM_LOG_FATAL, "init_execution_context: could not allocate DO frame stack stack (error code %d [%s])", errno, strerror (errno)); | |
| } | |
| *framstck = EOL; | *framstck = EOL; |
| *(framstck + 1) = EOL; | *(framstck + 1) = EOL; |
| dofrmptr = framstck; /* DO_frame stack pointer */ | dofrmptr = framstck; /* DO_frame stack pointer */ |
| cmdstack = calloc ((unsigned) NESTLEVLS * 256, 1); | |
| if (cmdstack == NULL) exit (2); /* could not allocate stuff... */ | if ((cmdstack = calloc ((unsigned) NESTLEVLS * 256, 1)) == NULL) { |
| logprintf (FM_LOG_FATAL, "init_execution_context: could not allocate command stack (error code %d [%s])", errno, strerror (errno)); | |
| } | |
| cmdptr = cmdstack; /* command stack */ | cmdptr = cmdstack; /* command stack */ |