Windows-Server-2003/base/cmd/ckeys.c

106 lines
2.3 KiB
C

/*++
Copyright (c) 1988-1999 Microsoft Corporation
Module Name:
ckeys.c
Abstract:
Dummy support for DOS KEYS command
--*/
#include "cmd.h"
extern TCHAR KeysStr[];
/* global variables */
int KeysFlag = 0; /* KeysFlag indicates on / off */
/**************** START OF SPECIFICATIONS ***********************/
/* */
/* SUBROUTINE NAME: eKeys */
/* */
/* DESCRIPTIVE NAME: Keys internal command */
/* */
/* FUNCTION: If no argument supplied then display the state */
/* of on / off. If argument is on / off then */
/* change the state. If argument is list then */
/* display the stack. */
/* */
/* NOTES: New for OS/2 1.2. */
/* */
/* ENTRY POINT: eKeys */
/* LINKAGE: */
/* */
/* INPUT: */
/* n */
/* */
/* EXIT-NORMAL: */
/* returns SUCCESS */
/* */
/* EXIT-ERROR: */
/* none. */
/* */
/* EFFECTS: */
/* */
/* INTERNAL REFERENCES: */
/* ROUTINES: */
/* PutStdErr */
/* PutStdOut */
/* TokStr */
/* strcmpi */
/* strncpy */
/* */
/* EXTERNAL REFERENCES: */
/* ROUTINES: */
/**************** END OF SPECIFICATIONS *************************/
eKeys( n )
struct cmdnode *n; /* the command node for the Keys command */
{
TCHAR *argptr; /* pointer to tozenized argument */
/* get the value of the argument pointer */
argptr = TokStr( n->argptr, 0, TS_NOFLAGS );
/* take action based on the argument */
if ((*argptr == 0) && (KeysFlag)) {
PutStdOut( MSG_KEYS_ON, NOARGS );
}
else if ((*argptr == 0) && (!KeysFlag)) {
PutStdOut( MSG_KEYS_OFF, NOARGS );
}
else if (!(argptr[ mystrlen( argptr ) + 1 ] == 0)) {
/* too many parameters */
PutStdErr( MSG_BAD_SYNTAX, NOARGS );
}
else if (_tcsicmp( argptr, TEXT("ON") ) == 0) {
/* set keys on */
KeysFlag = TRUE;
SetEnvVar(KeysStr, TEXT("ON") );
}
else if (_tcsicmp( argptr, TEXT("OFF") ) == 0) {
/* set keys off */
KeysFlag = FALSE;
SetEnvVar(KeysStr, TEXT("OFF") );
}
else if (_tcsicmp( argptr, TEXT("LIST") ) == 0) {
}
else {
/* invalid parameter */
PutStdErr( MSG_BAD_PARM1, NOARGS );
}
return SUCCESS;
} /* eKeys */