11ae349f5Scvs2svn /* 21ae349f5Scvs2svn * Written by Toshiharu OHNO (tony-o@iij.ad.jp) 31ae349f5Scvs2svn * 41ae349f5Scvs2svn * Copyright (C) 1993, Internet Initiative Japan, Inc. All rights reserverd. 51ae349f5Scvs2svn * 61ae349f5Scvs2svn * Redistribution and use in source and binary forms are permitted 71ae349f5Scvs2svn * provided that the above copyright notice and this paragraph are 81ae349f5Scvs2svn * duplicated in all such forms and that any documentation, 91ae349f5Scvs2svn * advertising materials, and other materials related to such 101ae349f5Scvs2svn * distribution and use acknowledge that the software was developed 111ae349f5Scvs2svn * by the Internet Initiative Japan. The name of the 121ae349f5Scvs2svn * IIJ may not be used to endorse or promote products derived 131ae349f5Scvs2svn * from this software without specific prior written permission. 141ae349f5Scvs2svn * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR 151ae349f5Scvs2svn * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED 161ae349f5Scvs2svn * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE. 171ae349f5Scvs2svn * 181342caedSBrian Somers * $Id: command.h,v 1.12.2.10 1998/04/14 23:17:03 brian Exp $ 191ae349f5Scvs2svn * 201ae349f5Scvs2svn * TODO: 211ae349f5Scvs2svn */ 221ae349f5Scvs2svn 231ae349f5Scvs2svn struct cmdtab; 242764b86aSBrian Somers struct bundle; 252764b86aSBrian Somers struct datalink; 262764b86aSBrian Somers struct prompt; 271ae349f5Scvs2svn 281ae349f5Scvs2svn struct cmdargs { 29aef795ccSBrian Somers struct cmdtab const *cmdtab; /* The entire command table */ 30aef795ccSBrian Somers struct cmdtab const *cmd; /* This command entry */ 31b6217683SBrian Somers int argc; /* Number of arguments (excluding cmd */ 3225092092SBrian Somers int argn; /* Argument to start processing from */ 33b6217683SBrian Somers char const *const *argv; /* Arguments */ 34b6217683SBrian Somers struct bundle *bundle; /* Our bundle */ 35b6217683SBrian Somers struct datalink *cx; /* Our context */ 36b6217683SBrian Somers struct prompt *prompt; /* Who executed us */ 371ae349f5Scvs2svn }; 381ae349f5Scvs2svn 391ae349f5Scvs2svn struct cmdtab { 401ae349f5Scvs2svn const char *name; 411ae349f5Scvs2svn const char *alias; 421ae349f5Scvs2svn int (*func) (struct cmdargs const *); 431ae349f5Scvs2svn u_char lauth; 441ae349f5Scvs2svn const char *helpmes; 451ae349f5Scvs2svn const char *syntax; 461ae349f5Scvs2svn const void *args; 471ae349f5Scvs2svn }; 481ae349f5Scvs2svn 491342caedSBrian Somers #define NEG_ACCEPTED (1) 501342caedSBrian Somers #define NEG_ENABLED (2) 511342caedSBrian Somers #define IsAccepted(x) ((x) & NEG_ACCEPTED) 521342caedSBrian Somers #define IsEnabled(x) ((x) & NEG_ENABLED) 531ae349f5Scvs2svn 54b6217683SBrian Somers extern int IsInteractive(struct prompt *); 551ae349f5Scvs2svn extern void InterpretCommand(char *, int, int *, char ***); 56b6217683SBrian Somers extern void RunCommand(struct bundle *, int, char const *const *, 57b6217683SBrian Somers struct prompt *, const char *); 58b6217683SBrian Somers extern void DecodeCommand(struct bundle *, char *, int, struct prompt *, 59b6217683SBrian Somers const char *); 603b0f8d2eSBrian Somers extern struct link *ChooseLink(struct cmdargs const *); 611342caedSBrian Somers const char *command_ShowNegval(unsigned); 62