******************************************************************************** * * Support of PR1ME INFORMATION subroutine '!MESSAGE' * * Module %M% Version %I% Date %H% * * (c) Copyright 1998 Ardent Software Inc. - All Rights Reserved * This is unpublished proprietary source code of Ardent Software Inc. * The copyright notice above does not evidence any actual or intended * publication of such source code. * ******************************************************************************* * * Maintenence log - insert most recent change descriptions at top * * Date.... GTAR# WHO Description......................................... * 10/14/98 23801 SAP Change copyrights. * 03/13/96 17797 AGM Replace 'SH -c' with OS.EXEC * 01/19/94 12299 LA Fixed single user status and now returns a status * code. * 10/08/93 12299 LA Initial implementation. * ******************************************************************************* * START-DESCRIPTION: * * The syntax for the !MESSAGE subroutine is: * * CALL !MESSAGE(KEY, USERNAME, USERNUMBER, MESSAGE, STATUS) * * Where: * * KEY (I) is one of: IK$MSGACCEPT - set message status to accept * IK$MSGDEFER - set message status to defer * IK$MSGREJECT - set message status to reject * IK$MSGSEND - send message to user * IK$MSGSENDNOW - send message to user now * IK$MSGSTATUS - display message status of user * USERNAME (I) the name of the user or terminal for send/status operations * USERNO (I) PID of user for send/status operations * MESSAGE (I) message to be sent. Should be null for operations other * than IK$MSGSEND or IK$MSGSENDNOW * STATUS (O) status of the operation: * 0 = success * IE$NOSUPPORT = Unsupported key option * IE$KEY = Invalid key given * IE$PAR = Bad parameters given * IE$UNKNOWN_USER = Unknown user when sending message * * The subroutine is implemented by calling the uniVerse message program * * END-DESCRIPTION $OPTIONS DEFAULT subroutine PR1ME(KEY, USERNAME, USERNUMBER, MESSAGE, STATUS) $INCLUDE UNIVERSE.INCLUDE INFO_KEYS.H $INCLUDE UNIVERSE.INCLUDE INFO_ERRS.H $INCLUDE UNIVERSE.INCLUDE FILENAMES.H $INCLUDE UNIVERSE.INCLUDE MACHINE.NAME STATUS = 0 CMD = OS.EXEC:" '":UV.ROOT:"/bin/message " * Validate input arguments as far as possible. For the moment, can't * use usernumber as an identification, just username/ttyname IF USERNAME = "" AND USERNUMBER NE "" THEN STATUS = IE$NOSUPPORT GOTO EXIT.MESSAGE END BEGIN CASE CASE KEY = IK$MSGDEFER STATUS = IE$NOSUPPORT CASE KEY = IK$MSGSEND OR KEY = IK$MSGSENDNOW IF MESSAGE = "" THEN STATUS = IE$PAR ELSE CMD := USERNAME:' -BRIEF -MSG "':MESSAGE:'"' END CASE KEY = IK$MSGACCEPT CMD := USERNAME:" -BRIEF -ACCEPT" CASE KEY = IK$MSGREJECT CMD := USERNAME:" -BRIEF -REJECT" CASE KEY = IK$MSGSTATUS IF USERNAME NE "" THEN CMD := USERNAME:" -STATUS" END ELSE CMD := " -STATUS" END CASE 1 STATUS = IE$KEY END CASE IF STATUS = 0 THEN CMD := "'" IF KEY = IK$MSGSEND OR KEY = IK$MSGSENDNOW THEN EXECUTE CMD CAPTURING STATUS END ELSE EXECUTE CMD END EXIT.MESSAGE: RETURN