⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 watch.c

📁 clips源代码
💻 C
📖 第 1 页 / 共 2 页
字号:
/*************************************************************/globle char *GetNthWatchName(  void *theEnv,  int whichItem)  {   int i;   struct watchItem *wPtr;   for (wPtr = WatchData(theEnv)->ListOfWatchItems, i = 1;        wPtr != NULL;        wPtr = wPtr->next, i++)     { if (i == whichItem) return(wPtr->name); }   return(NULL);  }/***************************************************************//* GetNthWatchValue: Returns the current state associated with *//*   the nth item in the list of watchable items. If the nth   *//*   item does not exist, then -1 is returned.                 *//***************************************************************/globle int GetNthWatchValue(  void *theEnv,  int whichItem)  {   int i;   struct watchItem *wPtr;   for (wPtr = WatchData(theEnv)->ListOfWatchItems, i = 1;        wPtr != NULL;        wPtr = wPtr->next, i++)     { if (i == whichItem) return((int) *(wPtr->flag)); }   return(-1);  }/**************************************//* WatchCommand: H/L access routine   *//*   for the watch command.           *//**************************************/globle void WatchCommand(  void *theEnv)  {   DATA_OBJECT theValue;   char *argument;   int recognized;   struct watchItem *wPtr;   /*========================================*/   /* Determine which item is to be watched. */   /*========================================*/   if (EnvArgTypeCheck(theEnv,"watch",1,SYMBOL,&theValue) == FALSE) return;   argument = DOToString(theValue);   wPtr = ValidWatchItem(theEnv,argument,&recognized);   if (recognized == FALSE)     {      SetEvaluationError(theEnv,TRUE);      ExpectedTypeError1(theEnv,"watch",1,"watchable symbol");      return;     }   /*=================================================*/   /* Check to make sure extra arguments are allowed. */   /*=================================================*/   if (GetNextArgument(GetFirstArgument()) != NULL)     {      if ((wPtr == NULL) ? TRUE : (wPtr->accessFunc == NULL))        {         SetEvaluationError(theEnv,TRUE);         ExpectedCountError(theEnv,"watch",EXACTLY,1);         return;        }     }   /*=====================*/   /* Set the watch item. */   /*=====================*/   EnvSetWatchItem(theEnv,argument,ON,GetNextArgument(GetFirstArgument()));  }/****************************************//* UnwatchCommand: H/L access routine   *//*   for the unwatch command.           *//****************************************/globle void UnwatchCommand(  void *theEnv)  {   DATA_OBJECT theValue;   char *argument;   int recognized;   struct watchItem *wPtr;   /*==========================================*/   /* Determine which item is to be unwatched. */   /*==========================================*/   if (EnvArgTypeCheck(theEnv,"unwatch",1,SYMBOL,&theValue) == FALSE) return;   argument = DOToString(theValue);   wPtr = ValidWatchItem(theEnv,argument,&recognized);   if (recognized == FALSE)     {      SetEvaluationError(theEnv,TRUE);      ExpectedTypeError1(theEnv,"unwatch",1,"watchable symbol");      return;     }   /*=================================================*/   /* Check to make sure extra arguments are allowed. */   /*=================================================*/   if (GetNextArgument(GetFirstArgument()) != NULL)     {      if ((wPtr == NULL) ? TRUE : (wPtr->accessFunc == NULL))        {         SetEvaluationError(theEnv,TRUE);         ExpectedCountError(theEnv,"unwatch",EXACTLY,1);         return;        }     }   /*=====================*/   /* Set the watch item. */   /*=====================*/   EnvSetWatchItem(theEnv,argument,OFF,GetNextArgument(GetFirstArgument()));  }/************************************************//* ListWatchItemsCommand: H/L access routines   *//*   for the list-watch-items command.          *//************************************************/globle void ListWatchItemsCommand(  void *theEnv)  {   struct watchItem *wPtr;   DATA_OBJECT theValue;   int recognized;   /*=======================*/   /* List the watch items. */   /*=======================*/   if (GetFirstArgument() == NULL)     {      for (wPtr = WatchData(theEnv)->ListOfWatchItems; wPtr != NULL; wPtr = wPtr->next)        {         EnvPrintRouter(theEnv,WDISPLAY,wPtr->name);         if (*(wPtr->flag)) EnvPrintRouter(theEnv,WDISPLAY," = on\n");         else EnvPrintRouter(theEnv,WDISPLAY," = off\n");        }      return;     }   /*=======================================*/   /* Determine which item is to be listed. */   /*=======================================*/   if (EnvArgTypeCheck(theEnv,"list-watch-items",1,SYMBOL,&theValue) == FALSE) return;   wPtr = ValidWatchItem(theEnv,DOToString(theValue),&recognized);   if ((recognized == FALSE) || (wPtr == NULL))     {      SetEvaluationError(theEnv,TRUE);      ExpectedTypeError1(theEnv,"list-watch-items",1,"watchable symbol");      return;     }   /*=================================================*/   /* Check to make sure extra arguments are allowed. */   /*=================================================*/   if ((wPtr->printFunc == NULL) &&       (GetNextArgument(GetFirstArgument()) != NULL))     {      SetEvaluationError(theEnv,TRUE);      ExpectedCountError(theEnv,"list-watch-items",EXACTLY,1);      return;     }   /*====================================*/   /* List the status of the watch item. */   /*====================================*/   EnvPrintRouter(theEnv,WDISPLAY,wPtr->name);   if (*(wPtr->flag)) EnvPrintRouter(theEnv,WDISPLAY," = on\n");   else EnvPrintRouter(theEnv,WDISPLAY," = off\n");   /*============================================*/   /* List the status of individual watch items. */   /*============================================*/   if (wPtr->printFunc != NULL)     {      if ((*wPtr->printFunc)(theEnv,WDISPLAY,wPtr->code,                             GetNextArgument(GetFirstArgument())) == FALSE)        { SetEvaluationError(theEnv,TRUE); }     }  }/*******************************************//* GetWatchItemCommand: H/L access routine *//*   for the get-watch-item command.       *//*******************************************/globle int GetWatchItemCommand(  void *theEnv)  {   DATA_OBJECT theValue;   char *argument;   int recognized;   /*============================================*/   /* Check for the correct number of arguments. */   /*============================================*/   if (EnvArgCountCheck(theEnv,"get-watch-item",EXACTLY,1) == -1)     { return(FALSE); }   /*========================================*/   /* Determine which item is to be watched. */   /*========================================*/   if (EnvArgTypeCheck(theEnv,"get-watch-item",1,SYMBOL,&theValue) == FALSE)     { return(FALSE); }   argument = DOToString(theValue);   ValidWatchItem(theEnv,argument,&recognized);   if (recognized == FALSE)     {      SetEvaluationError(theEnv,TRUE);      ExpectedTypeError1(theEnv,"get-watch-item",1,"watchable symbol");      return(FALSE);     }   /*===========================*/   /* Get the watch item value. */   /*===========================*/   if (EnvGetWatchItem(theEnv,argument) == 1)     { return(TRUE); }   return(FALSE);  }/*************************************************************//* WatchFunctionDefinitions: Initializes the watch commands. *//*************************************************************/globle void WatchFunctionDefinitions(  void *theEnv)  {#if ! RUN_TIME   EnvDefineFunction2(theEnv,"watch",   'v', PTIEF WatchCommand,   "WatchCommand", "1**w");   EnvDefineFunction2(theEnv,"unwatch", 'v', PTIEF UnwatchCommand, "UnwatchCommand", "1**w");   EnvDefineFunction2(theEnv,"get-watch-item", 'b', PTIEF GetWatchItemCommand,   "GetWatchItemCommand", "11w");   EnvDefineFunction2(theEnv,"list-watch-items", 'v', PTIEF ListWatchItemsCommand,                   "ListWatchItemsCommand", "0**w");#endif   EnvAddRouter(theEnv,WTRACE,1000,RecognizeWatchRouters,CaptureWatchPrints,NULL,NULL,NULL);   EnvDeactivateRouter(theEnv,WTRACE);  }/**************************************************//* RecognizeWatchRouters: Looks for WTRACE prints *//**************************************************/#if IBM_TBC#pragma argsused#endifstatic intBool RecognizeWatchRouters(  void *theEnv,  char *logName)  {#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(theEnv)#endif   if (strcmp(logName,WTRACE) == 0) return(TRUE);   return(FALSE);  }/**************************************************//* CaptureWatchPrints: Suppresses WTRACE messages *//**************************************************/#if IBM_TBC#pragma argsused#endifstatic int CaptureWatchPrints(  void *theEnv,  char *logName,  char *str)  {#if MAC_MCW || IBM_MCW || MAC_XCD#pragma unused(logName)#pragma unused(str)#pragma unused(theEnv)#endif   return(1);  }#endif /* DEBUGGING_FUNCTIONS */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -