📄 cdcomm.c
字号:
/*************************************************************************Include Files*************************************************************************/#include <stdio.h>#include <string.h>#include <stdarg.h>#include "cdhouse.h"#include "iomngr.h"#include "strsub.h"#include "cdsubs.h"#include "plotc.h"/*************************************************************************Compile Switches*************************************************************************/#define USE_COMMAND_PARSER_FUNCTION#undef USE_COMMAND_PARSER_FUNCTION/*************************************************************************Global Variables*************************************************************************/extern Particle_t *a;extern Simulation_t *s;extern FILE *out;extern LIST *inlist;/*************************************************************************Module-wide Variables*************************************************************************/static int NumberOfCommandErrors_m = 0;static int NumberOfWarnings_m = 0;/* Local Command Buffer */#ifdef USE_COMMAND_PARSER_FUNCTIONstatic char CharBuffer_m[2048];#endif/*************************************************************************Exported Functions*************************************************************************/void read_command (char *instr, int *qflag){ char *lpnt, *cpnt, *cmdstr, *tailstr; char copystr[256]; strcpy (copystr, instr); ReplaceMacro (copystr, 256); /* PARSE STRING INTO COMMAND LINES */ lpnt = copystr; while (*(cpnt=strlin(&lpnt))) { /* Skip comments (preceded by * or #) */ if (IsComment (cpnt, "*#") ) continue; tailstr = cpnt; /* PARSE COMMAND */ cmdstr = strhed (&tailstr); /* Match Command */ if ( cmdstr[0] == '\'' ) fprintf (out, "%s\n", instr); else if (!strcmpi(cmdstr,"" )); else if (!strcmpi(cmdstr,"QUIT" )) *qflag = TRUE; else if (!strcmpi(cmdstr,"ALLOCATE" )) read_allocate (tailstr); else if (!strcmpi(cmdstr,"BOX" )) read_box (tailstr); else if (!strcmpi(cmdstr,"BSAVE" )) read_bsave (tailstr); else if (!strcmpi(cmdstr,"CALC" )) read_calc (tailstr); else if (!strcmpi(cmdstr,"CLAMP" )) read_clamp (tailstr); else if (!strcmpi(cmdstr,"COMPARE" )) read_compare (tailstr); else if (!strcmpi(cmdstr,"CONSTRAIN")) read_constrain(tailstr); else if (!strcmpi(cmdstr,"COR" )) read_cor (tailstr); else if (!strcmpi(cmdstr,"CMD" )) read_cmd (tailstr); else if (!strcmpi(cmdstr,"DAMP" )) read_damp (tailstr); else if (!strcmpi(cmdstr,"DEBUG" )) read_debug (tailstr); else if (!strcmpi(cmdstr,"DISP" )) read_disp (tailstr); else if (!strcmpi(cmdstr,"DTIME" )) read_dtime (tailstr); else if (!strcmpi(cmdstr,"DUP" )) read_dup (tailstr); else if (!strcmpi(cmdstr,"ECHO" )) read_echo (tailstr); else if (!strcmpi(cmdstr,"ERASE" )) read_erase (tailstr); else if (!strcmpi(cmdstr,"ESAVE" )) read_esave (tailstr); else if (!strcmpi(cmdstr,"EUNIT" )) read_eunit (tailstr); else if (!strcmpi(cmdstr,"EXTFORCE" )) read_extforce (tailstr); else if (!strcmpi(cmdstr,"EXTSPRING")) read_extspring(tailstr); else if (!strcmpi(cmdstr,"FIX" )) read_fix (tailstr); else if (!strcmpi(cmdstr,"FILL" )) read_fill (tailstr); else if (!strcmpi(cmdstr,"ITEMP" )) read_itemp (tailstr); else if (!strcmpi(cmdstr,"LABEL" )) read_label (tailstr); else if (!strcmpi(cmdstr,"MACRO" )) read_macro (tailstr); else if (!strcmpi(cmdstr,"MACROF" )) read_macrof (tailstr); else if (!strcmpi(cmdstr,"MASS" )) read_mass (tailstr); else if (!strcmpi(cmdstr,"MC" )) read_mc (tailstr); else if (!strcmpi(cmdstr,"MOVE" )) read_move (tailstr); else if (!strcmpi(cmdstr,"NRANGE" )) read_nrange (tailstr); else if (!strcmpi(cmdstr,"PARTICLE" )) read_particle (tailstr); else if (!strcmpi(cmdstr,"PLOT" )) read_plot (tailstr); else if (!strcmpi(cmdstr,"POSITION" )) read_particle (tailstr); else if (!strcmpi(cmdstr,"POSVEL" )) read_posvel (tailstr); else if (!strcmpi(cmdstr,"POTENTIAL")) read_potential(tailstr); else if (!strcmpi(cmdstr,"PRESSURE" )) read_pressure (tailstr); else if (!strcmpi(cmdstr,"PSTRAIN" )) read_pstrain (tailstr); else if (!strcmpi(cmdstr,"QUENCH" )) read_quench (tailstr); else if (!strcmpi(cmdstr,"RCV" )) read_rcv (tailstr); else if (!strcmpi(cmdstr,"READ" )) read_read (tailstr); else if (!strcmpi(cmdstr,"REFSTEP" )) read_refstep (tailstr); else if (!strcmpi(cmdstr,"REMOVE" )) read_remove (tailstr); else if (!strcmpi(cmdstr,"REPEAT" )) read_repeat (tailstr); else if (!strcmpi(cmdstr,"ROTATE" )) read_rotate (tailstr); else if (!strcmpi(cmdstr,"RUN" )) read_run (tailstr); else if (!strcmpi(cmdstr,"SCALE" )) read_scale (tailstr); else if (!strcmpi(cmdstr,"SCREW" )) read_screw (tailstr); else if (!strcmpi(cmdstr,"SEED" )) read_seed (tailstr); else if (!strcmpi(cmdstr,"SELECT" )) read_select (tailstr); else if (!strcmpi(cmdstr,"SET" )) read_set (tailstr); else if (!strcmpi(cmdstr,"SIZE" )) read_size (tailstr); else if (!strcmpi(cmdstr,"SSAVE" )) read_ssave (tailstr); else if (!strcmpi(cmdstr,"STATE" )) read_state (tailstr); else if (!strcmpi(cmdstr,"STEP" )) read_step (tailstr); else if (!strcmpi(cmdstr,"STRESS" )) read_stress (tailstr); else if (!strcmpi(cmdstr,"SURFACE" )) read_surface (tailstr); else if (!strcmpi(cmdstr,"TAG" )) read_tag (tailstr); else if (!strcmpi(cmdstr,"TYPE" )) read_type (tailstr); else if (!strcmpi(cmdstr,"TYPELIST" )) read_typelist (tailstr); else if (!strcmpi(cmdstr,"TYPENAME" )) read_typename (tailstr); else if (!strcmpi(cmdstr,"VELOCITY" )) read_velocity (tailstr); else if (!strcmpi(cmdstr,"VERBOSE" )) read_verbose (tailstr); /* Maintain compatability with old name for PRESSURE command */ else if (!strcmpi(cmdstr,"VOLUME" )) read_pressure (tailstr); else if (!strcmpi(cmdstr,"WAVE" )) read_wave (tailstr); else if (!strcmpi(cmdstr,"WRITE" )) read_write (tailstr); else { puts ("*** ERROR: PREVIOUS COMMAND NOT RECOGNIZED."); NumberOfCommandErrors_m++; } } }int GetNumberOfCommandErrors (void) { return NumberOfCommandErrors_m; }int GetNumberOfWarnings (void) { return NumberOfWarnings_m; }void IncrementNumberOfWarnings (void) { NumberOfWarnings_m++; }#ifdef USE_COMMAND_PARSER_FUNCTIONvoid x (char *format, ...){ va_list argptr; int qflag = 0; char *cp = (char *) CharBuffer_m; /* CONVERT ARGUMENTS TO STRING */ va_start (argptr, format); vsprintf (CharBuffer_m, format, argptr); va_end (argptr); /* CALL COMMAND PROCESSOR */ read_command (cp, &qflag);}#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -