81 printf(
"\n*** Rexx interrupted.\n");
84 printf(
"\n*** Rexx terminated.\n*** Closing Rexx !\n");
87 printf(
"\n*** Segmentation fault.\n*** Closing Rexx !\n");
90 printf(
"\n*** Floating point error.\n*** Closing Rexx\n");
93 printf(
"\n*** Bus error.\n*** Closing Rexx\n");
96 printf(
"\n*** Broken pipe.\n*** Closing Rexx\n");
99 printf(
"\n*** Error,closing REXX !\n");
110 else if (sig == SIGTERM)
115 else if (sig == SIGHUP)
131 struct sigaction new_action;
132 struct sigaction old_action;
136 old_action.sa_handler = NULL;
137 sigfillset(&new_action.sa_mask);
139 new_action.sa_flags = 0;
145 sigaction(SIGINT, NULL, &old_action);
146 sigaction(SIGTERM, NULL, &old_action);
147 sigaction(SIGHUP, NULL, &old_action);
148 if (old_action.sa_handler == NULL)
150 sigaction(SIGINT, &new_action, NULL);
151 sigaction(SIGTERM, &new_action, NULL);
152 sigaction(SIGHUP, &new_action, NULL);
160 setvbuf(stdin, (
char *)NULL, _IOLBF, 0);
161 setvbuf(stdout, (
char *)NULL, _IOLBF, 0);
185 if (!getcwd(buf, PATH_MAX))
187 strncpy(buf, getenv(
"PWD"), PATH_MAX);
static void processStartup()
static bool haltAllActivities(RexxString *)
static void terminateInterpreter()
static void startInterpreter()
static void liveGeneral(int reason)
static void processStartup()
static void processShutdown()
static void getCurrentWorkingDirectory(char *)
void signalHandler(int sig)