Blame src/command.h

Packit 0986c0
/*
Packit 0986c0
 * $Id: command.h,v 1.70 2015/08/08 18:32:17 sfeam Exp $
Packit 0986c0
 */
Packit 0986c0
Packit 0986c0
/* GNUPLOT - command.h */
Packit 0986c0
Packit 0986c0
/*[
Packit 0986c0
 * Copyright 1999, 2004   Thomas Williams, Colin Kelley
Packit 0986c0
 *
Packit 0986c0
 * Permission to use, copy, and distribute this software and its
Packit 0986c0
 * documentation for any purpose with or without fee is hereby granted,
Packit 0986c0
 * provided that the above copyright notice appear in all copies and
Packit 0986c0
 * that both that copyright notice and this permission notice appear
Packit 0986c0
 * in supporting documentation.
Packit 0986c0
 *
Packit 0986c0
 * Permission to modify the software is granted, but not the right to
Packit 0986c0
 * distribute the complete modified source code.  Modifications are to
Packit 0986c0
 * be distributed as patches to the released version.  Permission to
Packit 0986c0
 * distribute binaries produced by compiling modified sources is granted,
Packit 0986c0
 * provided you
Packit 0986c0
 *   1. distribute the corresponding source modifications from the
Packit 0986c0
 *    released version in the form of a patch file along with the binaries,
Packit 0986c0
 *   2. add special version identification to distinguish your version
Packit 0986c0
 *    in addition to the base release version number,
Packit 0986c0
 *   3. provide your name and address as the primary contact for the
Packit 0986c0
 *    support of your modified version, and
Packit 0986c0
 *   4. retain our contact information in regard to use of the base
Packit 0986c0
 *    software.
Packit 0986c0
 * Permission to distribute the released version of the source code along
Packit 0986c0
 * with corresponding source modifications in the form of a patch file is
Packit 0986c0
 * granted with same provisions 2 through 4 for binary distributions.
Packit 0986c0
 *
Packit 0986c0
 * This software is provided "as is" without express or implied warranty
Packit 0986c0
 * to the extent permitted by applicable law.
Packit 0986c0
]*/
Packit 0986c0
Packit 0986c0
#ifndef GNUPLOT_COMMAND_H
Packit 0986c0
# define GNUPLOT_COMMAND_H
Packit 0986c0
Packit 0986c0
#include "gp_types.h"
Packit 0986c0
#include "stdfn.h"
Packit 0986c0
Packit 0986c0
extern char *gp_input_line;
Packit 0986c0
extern size_t gp_input_line_len;
Packit 0986c0
Packit 0986c0
extern int inline_num;
Packit 0986c0
Packit 0986c0
extern int if_depth;			/* old if/else syntax only */
Packit 0986c0
extern TBOOLEAN if_open_for_else;	/* new if/else syntax only */
Packit 0986c0
extern TBOOLEAN if_condition;		/* used by both old and new syntax */
Packit 0986c0
Packit 0986c0
typedef struct lexical_unit {	/* produced by scanner */
Packit 0986c0
    TBOOLEAN is_token;		/* true if token, false if a value */
Packit 0986c0
    struct value l_val;
Packit 0986c0
    int start_index;		/* index of first char in token */
Packit 0986c0
    int length;			/* length of token in chars */
Packit 0986c0
} lexical_unit;
Packit 0986c0
Packit 0986c0
extern struct lexical_unit *token;
Packit 0986c0
extern int token_table_size;
Packit 0986c0
extern int plot_token;
Packit 0986c0
#define END_OF_COMMAND (c_token >= num_tokens || equals(c_token,";"))
Packit 0986c0
Packit 0986c0
extern char *replot_line;
Packit 0986c0
Packit 0986c0
/* flag to disable `replot` when some data are sent through stdin;
Packit 0986c0
 * used by mouse/hotkey capable terminals */
Packit 0986c0
extern TBOOLEAN replot_disabled;
Packit 0986c0
Packit 0986c0
#ifdef USE_MOUSE
Packit 0986c0
extern int paused_for_mouse;	/* Flag the end condition we are paused until */
Packit 0986c0
#define PAUSE_BUTTON1   001		/* Mouse button 1 */
Packit 0986c0
#define PAUSE_BUTTON2   002		/* Mouse button 2 */
Packit 0986c0
#define PAUSE_BUTTON3   004		/* Mouse button 3 */
Packit 0986c0
#define PAUSE_CLICK	007		/* Any button click */
Packit 0986c0
#define PAUSE_KEYSTROKE 010		/* Any keystroke */
Packit 0986c0
#define PAUSE_WINCLOSE	020		/* Window close event */
Packit 0986c0
#define PAUSE_ANY       077		/* Terminate on any of the above */
Packit 0986c0
#endif
Packit 0986c0
Packit 0986c0
/* output file for the print command */
Packit 0986c0
extern FILE *print_out;
Packit 0986c0
extern struct udvt_entry * print_out_var;
Packit 0986c0
extern char *print_out_name;
Packit 0986c0
Packit 0986c0
extern struct udft_entry *dummy_func;
Packit 0986c0
Packit 0986c0
#ifndef STDOUT
Packit 0986c0
# define STDOUT 1
Packit 0986c0
#endif
Packit 0986c0
Packit 0986c0
#if defined(MSDOS) && defined(DJGPP)
Packit 0986c0
extern char HelpFile[];         /* patch for do_help  - AP */
Packit 0986c0
#endif /* MSDOS */
Packit 0986c0
Packit 0986c0
#ifdef _Windows
Packit 0986c0
# define SET_CURSOR_WAIT SetCursor(LoadCursor((HINSTANCE) NULL, IDC_WAIT))
Packit 0986c0
# define SET_CURSOR_ARROW SetCursor(LoadCursor((HINSTANCE) NULL, IDC_ARROW))
Packit 0986c0
#else
Packit 0986c0
# define SET_CURSOR_WAIT        /* nought, zilch */
Packit 0986c0
# define SET_CURSOR_ARROW       /* nought, zilch */
Packit 0986c0
#endif
Packit 0986c0
Packit 0986c0
/* Include code to support deprecated "call" syntax. */
Packit 0986c0
#ifdef BACKWARDS_COMPATIBLE
Packit 0986c0
#define OLD_STYLE_CALL_ARGS
Packit 0986c0
#endif
Packit 0986c0
Packit 0986c0
/* input data, parsing variables */
Packit 0986c0
extern int num_tokens, c_token;
Packit 0986c0
Packit 0986c0
void raise_lower_command __PROTO((int));
Packit 0986c0
void raise_command __PROTO((void));
Packit 0986c0
void lower_command __PROTO((void));
Packit 0986c0
#ifdef OS2
Packit 0986c0
extern void pm_raise_terminal_window __PROTO((void));
Packit 0986c0
extern void pm_lower_terminal_window __PROTO((void));
Packit 0986c0
#endif
Packit 0986c0
#ifdef X11
Packit 0986c0
extern void x11_raise_terminal_window __PROTO((int));
Packit 0986c0
extern void x11_raise_terminal_group __PROTO((void));
Packit 0986c0
extern void x11_lower_terminal_window __PROTO((int));
Packit 0986c0
extern void x11_lower_terminal_group __PROTO((void));
Packit 0986c0
#endif
Packit 0986c0
#ifdef _Windows
Packit 0986c0
extern void win_raise_terminal_window __PROTO((int));
Packit 0986c0
extern void win_raise_terminal_group __PROTO((void));
Packit 0986c0
extern void win_lower_terminal_window __PROTO((int));
Packit 0986c0
extern void win_lower_terminal_group __PROTO((void));
Packit 0986c0
#endif
Packit 0986c0
#ifdef WXWIDGETS
Packit 0986c0
extern void wxt_raise_terminal_window __PROTO((int));
Packit 0986c0
extern void wxt_raise_terminal_group __PROTO((void));
Packit 0986c0
extern void wxt_lower_terminal_window __PROTO((int));
Packit 0986c0
extern void wxt_lower_terminal_group __PROTO((void));
Packit 0986c0
#endif
Packit 0986c0
extern void string_expand_macros __PROTO((void));
Packit 0986c0
Packit 0986c0
#ifdef USE_MOUSE
Packit 0986c0
void bind_command __PROTO((void));
Packit 0986c0
void restore_prompt __PROTO((void));
Packit 0986c0
#else
Packit 0986c0
#define bind_command()
Packit 0986c0
#endif
Packit 0986c0
void array_command __PROTO((void));
Packit 0986c0
void break_command __PROTO((void));
Packit 0986c0
void call_command __PROTO((void));
Packit 0986c0
void changedir_command __PROTO((void));
Packit 0986c0
void clear_command __PROTO((void));
Packit 0986c0
void continue_command __PROTO((void));
Packit 0986c0
void eval_command __PROTO((void));
Packit 0986c0
void exit_command __PROTO((void));
Packit 0986c0
void help_command __PROTO((void));
Packit 0986c0
void history_command __PROTO((void));
Packit 0986c0
void do_command __PROTO((void));
Packit 0986c0
void if_command __PROTO((void));
Packit 0986c0
void else_command __PROTO((void));
Packit 0986c0
void import_command __PROTO((void));
Packit 0986c0
void invalid_command __PROTO((void));
Packit 0986c0
void link_command __PROTO((void));
Packit 0986c0
void load_command __PROTO((void));
Packit 0986c0
void begin_clause __PROTO((void));
Packit 0986c0
void clause_reset_after_error __PROTO((void));
Packit 0986c0
void end_clause __PROTO((void));
Packit 0986c0
void null_command __PROTO((void));
Packit 0986c0
void pause_command __PROTO((void));
Packit 0986c0
void plot_command __PROTO((void));
Packit 0986c0
void print_command __PROTO((void));
Packit 0986c0
void printerr_command __PROTO((void));
Packit 0986c0
void pwd_command __PROTO((void));
Packit 0986c0
void refresh_request __PROTO((void));
Packit 0986c0
void refresh_command __PROTO((void));
Packit 0986c0
void replot_command __PROTO((void));
Packit 0986c0
void reread_command __PROTO((void));
Packit 0986c0
void save_command __PROTO((void));
Packit 0986c0
void screendump_command __PROTO((void));
Packit 0986c0
void splot_command __PROTO((void));
Packit 0986c0
void stats_command __PROTO((void));
Packit 0986c0
void system_command __PROTO((void));
Packit 0986c0
void test_command __PROTO((void));
Packit 0986c0
void toggle_command __PROTO((void));
Packit 0986c0
void update_command __PROTO((void));
Packit 0986c0
void do_shell __PROTO((void));
Packit 0986c0
void undefine_command __PROTO((void));
Packit 0986c0
void while_command __PROTO((void));
Packit 0986c0
Packit 0986c0
/* Prototypes for functions exported by command.c */
Packit 0986c0
void extend_input_line __PROTO((void));
Packit 0986c0
void extend_token_table __PROTO((void));
Packit 0986c0
int com_line __PROTO((void));
Packit 0986c0
int do_line __PROTO((void));
Packit 0986c0
void do_string __PROTO((const char* s));
Packit 0986c0
void do_string_and_free __PROTO((char* s));
Packit 0986c0
TBOOLEAN iteration_early_exit __PROTO((void));
Packit 0986c0
#ifdef USE_MOUSE
Packit 0986c0
void toggle_display_of_ipc_commands __PROTO((void));
Packit 0986c0
int display_ipc_commands __PROTO((void));
Packit 0986c0
void do_string_replot __PROTO((const char* s));
Packit 0986c0
#endif
Packit 0986c0
#ifdef VMS                     /* HBB 990829: used only on VMS */
Packit 0986c0
void done __PROTO((int status));
Packit 0986c0
#endif
Packit 0986c0
void define __PROTO((void));
Packit 0986c0
Packit 0986c0
void replotrequest __PROTO((void)); /* used in command.c & mouse.c */
Packit 0986c0
Packit 0986c0
void print_set_output __PROTO((char *, TBOOLEAN, TBOOLEAN)); /* set print output file */
Packit 0986c0
char *print_show_output __PROTO((void)); /* show print output file */
Packit 0986c0
Packit 0986c0
/* Activate/deactive effects of 'set view map' before 'splot'/'plot',
Packit 0986c0
 * respectively. Required for proper mousing during 'set view map';
Packit 0986c0
 * actually it won't be necessary if gnuplot keeps a copy of all variables for
Packit 0986c0
 * the current plot and don't share them with 'set' commands.
Packit 0986c0
 *   These routines need to be executed before each plotrequest() and
Packit 0986c0
 * plot3drequest().
Packit 0986c0
 */
Packit 0986c0
void splot_map_activate __PROTO((void));
Packit 0986c0
void splot_map_deactivate __PROTO((void));
Packit 0986c0
Packit 0986c0
int do_system_func __PROTO((const char *cmd, char **output));
Packit 0986c0
Packit 0986c0
#endif /* GNUPLOT_COMMAND_H */