1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146
|
/*
* alias.h: header for alias.c
*
* Written By Michael Sandrof
*
* Copyright(c) 1990
*
* See the COPYRIGHT file, or do a HELP IRCII COPYRIGHT
*
* @(#)$Id: alias.h,v 1.1.1.1 2003/04/11 01:09:07 dan Exp $
*/
#ifndef _ALIAS_H_
#define _ALIAS_H_
#include "irc_std.h"
#define DCC_STRUCT 0
#define USERLIST_STRUCT 1
#define NICK_STRUCT 2
#define SERVER_STRUCT 3
extern BuiltInDllFunctions *dll_functions;
/*
* XXXX - These need to go away
*/
#define COMMAND_ALIAS 0
#define VAR_ALIAS 1
#define VAR_ALIAS_LOCAL 2
/*
* These are the user commands. Dont call these directly.
*/
extern void aliascmd (char *, char *, char *, char *);
extern void assigncmd (char *, char *, char *, char *);
extern void localcmd (char *, char *, char *, char *);
extern void stubcmd (char *, char *, char *, char *);
extern void dumpcmd (char *, char *, char *, char *);
extern void add_var_alias (char *, char *);
extern void add_local_alias (char *, char *);
/*extern void add_cmd_alias (char *, char *);*/
extern void add_var_stub_alias (char *, char *);
extern void add_cmd_stub_alias (char *, char *);
extern char * get_variable (char *);
extern char ** glob_cmd_alias (char *, int *);
extern char * get_cmd_alias (char *, int *, char **, void **);
extern char ** get_subarray_elements (char *, int *, int);
/* These are in expr.c */
/*
* This function is a general purpose interface to alias expansion.
* The second argument is the text to be expanded.
* The third argument are the command line expandoes $0, $1, etc.
* The fourth argument is a flag whether $0, $1, etc are used
* The fifth argument, if set, controls whether only the first "command"
* will be expanded. If set, this argument will be set to the "rest"
* of the commands (after the first semicolon, or the null). If NULL,
* then the entire text will be expanded.
*/
extern char * BX_expand_alias (const char *, const char *, int *, char **);
/*
* This is the interface to the "expression parser"
* The first argument is the expression to be parsed
* The second argument is the command line expandoes ($0, $1, etc)
* The third argument will be set if the command line expandoes are used.
*/
extern char * BX_parse_inline (char *, const char *, int *);
/*
* This function is used to call a user-defined function.
* Noone should be calling this directly except for call_function.
*/
extern char * call_user_function (char *, char *);
extern void call_user_alias (char *, char *, char *, void *);
/*
* This function is sued to save all the current aliases to a global
* file. This is used by /SAVE and /ABORT.
*/
extern void save_aliases (FILE *, int);
extern void save_assigns (FILE *, int);
/*
* This function is in functions.c
* This function allows you to execute a primitive "BUILT IN" expando.
* These are the $A, $B, $C, etc expandoes.
* The argument is the character of the expando (eg, 'A', 'B', etc)
*
* This is in functions.c
*/
extern char * built_in_alias (char, int *);
/* BOGUS */
/*
* This function is used by parse_command to directly execute an alias.
* Noone should be calling this function directly. (call parse_line.)
*/
/*extern void execute_alias (char *, char *, char *);*/
void prepare_alias_call (void *, char **);
void destroy_alias_call (void *);
/*
* This is in functions.c
* This is only used by next_unit and expand_alias to call built in functions.
* Noone should call this function directly.
*/
extern char * call_function (char *, const char *, int *);
/*
* These are the two primitives for runtime stacks.
*/
extern void BX_make_local_stack (char *);
extern void BX_destroy_local_stack (void);
extern void set_current_command (char *);
extern void bless_local_stack (void);
extern void unset_current_command (void);
extern void dump_call_stack (void);
extern void panic_dump_call_stack (void);
extern void BX_lock_stack_frame (void);
extern void BX_unlock_stack_frame (void);
extern void destroy_aliases (int);
Alias *find_var_alias (char *);
void delete_var_alias (char *, int);
char *parse_line_with_return (char *, char *, char *, int, int);
/*
* This is the alias interface to the /STACK command.
*/
extern void do_stack_alias (int, char *, int);
char *BX_next_unit (char *, const char *, int *, int);
char *BX_alias_special_char(char **buffer, char *ptr, const char *args, char *quote_em, int *args_flag);
#endif /* _ALIAS_H_ */
|