/*
** $Id: shell_struct.h,v 1.3 2005/06/26 08:29:26 svitak Exp $
** $Log: shell_struct.h,v $
** Revision 1.3  2005/06/26 08:29:26  svitak
** Added comment regarding include directives in this file.
**
** Revision 1.2  2005/06/26 08:25:37  svitak
** Provided explicit types for untyped funtions. Fixed return statements to
** match return type.
**
** Revision 1.1.1.1  2005/06/14 04:38:34  svitak
** Import from snapshot of CalTech CVS tree of June 8, 2005
**
** Revision 1.3  2001/04/25 17:17:00  mhucka
** Misc. small changes to improve portability and address compiler warnings.
**
** Revision 1.2  2000/06/19 06:06:26  mhucka
** The Script structure and the handling of scripts had this bogosity in which
** FILE pointers were being cast to char * and back again.  Why on earth
** didn't the authors just keep a separate pointer in the Script structure for
** FILE pointers, instead of shoehorning the pointers into the .ptr char *
** field?  Anyway, for better robustness and portability, I reimplemented this
** part using two separate pointers.
**
** Revision 1.1  1992/12/11 19:04:55  dhb
** Initial revision
**
*/

/*
** This file is processed by the code_sym program, a code-generation
** utility of genesis. It requires definitions for FILE from <stdio.h>
** and PFD from "header.h". These files should be included before this file.
**
** Do not include any other files within this file!
*/

#ifndef SHELL_STRUCT_H
#define SHELL_STRUCT_H

#ifndef PFI_DEFINED
#define PFI_DEFINED
typedef int	(*PFI)();
#endif

typedef struct _EscapeCommand {
    char	*escseq;
    char	*string;
    int		argc;
    char	**argv;
    int		exec_mode;
    char	*id;
    struct _EscapeCommand *next;
} EscapeCommand;

typedef struct script_type {
    char	*ptr;
    char	*current;
    short	type;
    int		argc;
    char	**argv;
    short	line;
    FILE    *file;
} Script;

typedef struct func_table_type {
	char 	*name;
	PFI	adr;
	char 	*type;
} FuncTable;

typedef struct {
    char 	*name;
    char 	*type;
    short 	offset;
    short 	type_size;
    short 	field_indirection;
    short 	function_type;
    short 	dimensions;
    int 	dimension_size[4];
} Info;

typedef struct {
    PFI		function;
    int		count;
    int		priority;
} Job; 


#endif