1/* 2 * Author: William Chia-Wei Cheng (bill.cheng@acm.org) 3 * 4 * Copyright (C) 2001-2009, William Chia-Wei Cheng. 5 * 6 * This file may be distributed under the terms of the Q Public License 7 * as defined by Trolltech AS of Norway and appearing in the file 8 * LICENSE.QPL included in the packaging of this file. 9 * 10 * THIS FILE IS PROVIDED AS IS WITH NO WARRANTY OF ANY KIND, INCLUDING 11 * THE WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR 12 * PURPOSE. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, 13 * INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING 14 * FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, 15 * NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION 16 * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 17 * 18 * @(#)$Header: /mm2/home/cvs/bc-src/tgif/exec.e,v 1.8 2011/05/16 16:21:57 william Exp $ 19 */ 20 21#ifndef _EXEC_E_ 22#define _EXEC_E_ 23 24#include "list.e" 25 26extern int execAnimating; 27extern int execAnimateRedraw; 28extern int execCurDepth; 29extern int replaceAttrFirstValueRedraw; 30extern int execNavigateBack; 31extern int userAbortExec; 32 33extern struct AttrRec * warpToAttr; 34 35extern char * cmdToExecAfterHyperJump; 36 37extern struct StrRec * topTmpStr; 38extern struct StrRec * botTmpStr; 39 40typedef struct tagReplAttrValueCallbackInfo { 41 struct ObjRec *obj_ptr; /* a top level object */ 42 struct AttrRec *attr_ptr; 43 char *new_attr_value; 44 void *pv_userdata; 45} ReplAttrValueCallbackInfo; 46 47typedef int (ReplAttrValueCallback)ARGS_DECL((ReplAttrValueCallbackInfo*)); 48 49#ifdef _INCLUDE_FROM_EXEC_C_ 50#undef extern 51#define extern 52#endif /*_INCLUDE_FROM_EXEC_C_*/ 53 54extern void CleanTmpStr ARGS_DECL((void)); 55extern int PrependToTmpStr ARGS_DECL((char*)); 56extern int AppendToTmpStr ARGS_DECL((char*)); 57extern int ExecuteCmdGetResult ARGS_DECL((char*, CVList*, int max_lines)); 58extern struct ObjRec * FindObjWithName ARGS_DECL((struct ObjRec *BotObj, 59 struct ObjRec *ObjPtr, 60 char *ObjName, 61 int InsideRootObj, 62 int InsideThisObj, 63 struct ObjRec **OwnerObj, 64 struct ObjRec **TopOwner)); 65 66extern int PipeReachedEOF ARGS_DECL((FILE*)); 67extern int WaitForEvent ARGS_DECL((FILE*, int fp_is_pipe, 68 int fp_is_named_pipe, int *pn_quit, 69 int what_to_do_with_x_events, 70 AbortCallbackFunc*, void*)); 71extern int DoLaunch ARGS_DECL((struct AttrRec *, struct ObjRec *)); 72extern void SetReplaceAttrValueCallback ARGS_DECL((ReplAttrValueCallback*, 73 void *pv_userdata)); 74extern int ReplaceAttrFirstValue ARGS_DECL((struct ObjRec *, 75 struct AttrRec *, char *)); 76extern int ReplaceAttrAllValues ARGS_DECL((struct ObjRec *, 77 struct AttrRec *, 78 struct StrRec **ppTopStr, 79 struct StrRec **ppBotStr)); 80extern void JustReadFileIntoAttr ARGS_DECL((FILE*, struct AttrRec *attr_ptr, 81 struct ObjRec *attr_owner_obj)); 82extern int DoExec ARGS_DECL((struct AttrRec *, struct ObjRec *)); 83extern void ResetExec ARGS_DECL((int nStart)); 84extern void ExecCmdsFromFile ARGS_DECL((char*)); 85extern void ExecCmdsFromTmp ARGS_DECL((char *tmp_fname)); 86extern void StartExecCmdsFromFile ARGS_DECL((void)); 87extern int BeginExecCommandsFromBuffer ARGS_DECL((void)); 88extern int ExecACommandFromBuffer ARGS_DECL((char *buf, int *pn_quit)); 89extern void EndExecCommandsFromBuffer ARGS_DECL((void)); 90extern void CleanUpExec ARGS_DECL((void)); 91extern void InitExec ARGS_DECL((void)); 92 93#ifdef _INCLUDE_FROM_EXEC_C_ 94#undef extern 95#ifndef _NO_RECURSIVE_EXTERN 96#define extern extern 97#endif /* ~_NO_RECURSIVE_EXTERN */ 98#endif /*_INCLUDE_FROM_EXEC_C_*/ 99 100#endif /*_EXEC_E_*/ 101