Document: hermes Purpose: master control program for GIPSY. Category: USER-INTERFACE File: hermes.src Author: J.P. Terlouw Description: There currenly are two versions: - An interactive versions for ASCII terminals, named thermes; - A non-interactive version for batch work: nhermes. See also: thermes.dc1 nhermes.dc1 Notes: Extracting source: $gip_exe/xfile hermes.src Packing for installers: make -f Makefile.uti pack Cleaning: make -f Makefile.uti pack Local build: p thermes.make Updates: Fri Sep 13, 1991: JPT, document created. Fri Jan 31, 1992: MAMR, added nhermes. . . . Jun 22, 1993: JPT, Silicon Graphics support added. Jul 26, 1993: KGB, Solaris and DEC alpha support added. Sep 27, 1993: JPT, implemented NTASK= keyword in hermes.def. Oct 19, 1993: JPT, removed buffer length limitation. Nov 9, 1993: JPT, improved stdout and stderr output handling Nov 16, 1993: JPT, more stdout and stderr output improvements Nov 17, 1993: JPT, eliminated bug related to NTASK= keyword Nov 23, 1993: JPT, report hint in tHermes Nov 25, 1993: JPT, improved task EDITFILE interaction in tHermes Dec 7, 1993: JPT, prevent 2nd interactive session in 1 directory Dec 8, 1993: JPT, allow environment variables task directories Jan 4, 1994: JPT, implemented LISTCTRL function Jan 31, 1994: JPT, use SIGTSTP instead of SIGSTOP to supend tasks Feb 15, 1994: JPT, changes for Solaris 2.3 Feb 17, 1994: JPT, fixed leading blanks bug in parmgr.c Feb 24, 1994: JPT, removed RAWPAR, added ALLPAR function. Jun 9, 1994: JPT, removed xhermes; added new user input parser. Jul , 1994: JPT, added expression logging and calculator. Aug 1, 1994: JPT, fixed bug in ALLPAR file closing. Mar 31, 1995: JPT, fixed bug in dcdparse.y (e.g. 0**1 failed). Apr 28, 1995: JPT, fixed bug parmgr.c (quoted text containing ';') May 2, 1995: JPT, improved back-quote handling for user input Jul 4, 1995: JPT, thermes extensions (a.o. WWW browser support) Aug 25, 1995: JPT, more robust check for local html presence Aug 31, 1995: JPT, help: defined html context for empty UCA Oct 17, 1995: JPT, unlimited file size for file input function Jan 25, 1996: JPT, fixed -1 success check in xeq() (do_request.c) Apr 12, 1996: JPT, workaround for bug in HP-UX 10 lex Sep 2, 1996: JPT, KGB's modifications (a.o. suni386) Dec 5, 1996: JPT, check file's execute permission (execpath.c) Dec 17, 1996: JPT, change for new Linux (thermes.make) Feb 11, 1997: JPT, handle blanks correctly (dcdgds.c) Apr 8, 1997: JPT, event notification feature added (do_request.c) Jun 2, 1997: JPT, broken pipe bug fix (taskmgr.c) Jun 3, 1997: JPT, bad proc pointer in pseudo task status block caused NotifyTask to fail (parmgr.c) Jul 22, 1997: JPT, temporary and partial fix for rejected keywords in connection with event notification. Aug 1, 1997: JPT, array bounds error 'fixed'; nhermes now supports rejected keywords (event notifict'n). Aug 7, 1997: JPT, buffer allocation fixed (hermesipc.c) Sep 16, 1997: JPT, fixed bug in USERTEXT code (do_request.c); removed file descriptor leak (taskmgr.c). Nov 7, 1997: JPT, allow tabs as separator in files read by the file input function. (dcdfile.c) Dec 12, 1997: JPT, implemented usertext default code -1 Jun 8, 1998: JPT, do not abort event-driven tasks in case of deputy task failure. Jul 1, 1998: JPT, implemented SAVEPAR function Aug 11, 1998: JPT, fixed task path bug. Oct 1, 1998: JPT, by default do not start WWW browser Jan 29, 1999: JPT, small changes for Linux 2.0 Jun 24, 1999: JPT, underflow in exp() is no error anymore, but gives a zero result (dcdparse.y) Jul 2, 1999: JPT, modified thermes.make Nov 16, 1999: JPT, nhermes also reports current "macro" parameters Nov 23, 1999: JPT, nhermes keyword file write bug fixed Mar 16, 2000: JPT, allow BLANKs in files read by the file input function. (dcdfile.c) Jul 21, 2000: JPT, blank lines in files read by the file input function considered to be comments. (dcdfile.c) Aug 25, 2000: JPT, remove keyword subtitutions after deputy call. Oct 3, 2000: JPT, limit log file sync to once every minute. Dec 7, 2000: JPT, max directory and path length to FILENAME_MAX. Jan 11, 2001: JPT, extended WKEY functionality. Mar 29, 2001: JPT, modified log file locking. (put_log.c) May 8, 2001: JPT, improved WKEY synchronization. Jun 12, 2001: JPT, enhanced default file functionality. Sep 25, 2003: JPT, fixed keyword file read bug. Apr 10, 2006: JPT, interfaced Firefox to web help. May 2, 2007: JPT, included code for Apple Mac support. Aug 27, 2007: JPT, improved child process handling. (taskmgr.c) Mar 10, 2009: JPT, changed institute name in splash screen and increased buffer space for status message. Jun 16, 2009: JPT, cleaned up declarations and code and replaced writev() by sock_writev() (hermesipc.c) Jul 15, 2009: JPT, fix screen page number>9999 crashes (coamgr.c) Aug 11, 2009: JPT, renamed getline to GetLine. Jun 10, 2010: JPT, fixed precision bug (file function: dcdfile.c) Apr 14, 2011: JPT, implemented notification to caller task about about xeqcont-called task's actions. Apr 18, 2011: JPT, implemented aborttask function. Apr 20, 2011: JPT, nhermes: improved caller task notification and optional screen log file. Jun 6, 2011: JPT, do not take directories as tasks (execpath.c) May 18, 2012: JPT, allow xeqcont to start independent tasks. Aug 2, 2012: JPT, fixed crashes due to calls to reject() from tasks started by an event-driven task. Oct 1, 2012: JPT, fixed crash when supplied user input keyword's length was exactly 20 (parse.l, parse.c) Oct 15, 2011: JPT, fixed bug in error reporting (nhermes.c) Dec 26, 2011: JPT, notify event-driven tasks about recall file problems (cannot open, range error: parmgr.c) May 30, 2018: VOG, union wait status not longer supported by gcc7. Changed to int.