亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? router.c

?? clips源代碼
?? C
?? 第 1 頁 / 共 2 頁
字號:
     }   if (RouterData(theEnv)->Abort) return;   genexit(theEnv,num);  }/********************************************//* AbortExit: Forces ExitRouter to terminate *//*   after calling all closing routers.     *//********************************************/globle void AbortExit(  void *theEnv)  {   RouterData(theEnv)->Abort = TRUE;  }#if (! ENVIRONMENT_API_ONLY) && ALLOW_ENVIRONMENT_GLOBALS/*********************************************************//* AddRouter: Adds an I/O router to the list of routers. *//*********************************************************/globle intBool AddRouter(  char *routerName,  int priority,  int (*queryFunction)(char *),  int (*printFunction)(char *,char *),  int (*getcFunction)(char *),  int (*ungetcFunction)(int,char *),  int (*exitFunction)(int))  {   struct router *newPtr, *lastPtr, *currentPtr;   void *theEnv;   char *nameCopy;         theEnv = GetCurrentEnvironment();   newPtr = get_struct(theEnv,router);   nameCopy = (char *) genalloc(theEnv,strlen(routerName) + 1);   genstrcpy(nameCopy,routerName);        newPtr->name = nameCopy;         newPtr->active = TRUE;   newPtr->environmentAware = FALSE;   newPtr->priority = priority;   newPtr->context = NULL;   newPtr->query = (int (*)(void *,char *)) queryFunction;   newPtr->printer = (int (*)(void *,char *,char *)) printFunction;   newPtr->exiter = (int (*)(void *,int)) exitFunction;   newPtr->charget = (int (*)(void *,char *)) getcFunction;   newPtr->charunget = (int (*)(void *,int,char *)) ungetcFunction;   newPtr->next = NULL;   if (RouterData(theEnv)->ListOfRouters == NULL)     {      RouterData(theEnv)->ListOfRouters = newPtr;      return(1);     }   lastPtr = NULL;   currentPtr = RouterData(theEnv)->ListOfRouters;   while ((currentPtr != NULL) ? (priority < currentPtr->priority) : FALSE)     {      lastPtr = currentPtr;      currentPtr = currentPtr->next;     }   if (lastPtr == NULL)     {      newPtr->next = RouterData(theEnv)->ListOfRouters;      RouterData(theEnv)->ListOfRouters = newPtr;     }   else     {      newPtr->next = currentPtr;      lastPtr->next = newPtr;     }   return(1);  }#endif/************************************************************//* EnvAddRouter: Adds an I/O router to the list of routers. *//************************************************************/globle intBool EnvAddRouter(  void *theEnv,  char *routerName,  int priority,  int (*queryFunction)(void *,char *),  int (*printFunction)(void *,char *,char *),  int (*getcFunction)(void *,char *),  int (*ungetcFunction)(void *,int,char *),  int (*exitFunction)(void *,int))  {   return EnvAddRouterWithContext(theEnv,routerName,priority,                                  queryFunction,printFunction,getcFunction,                                  ungetcFunction,exitFunction,NULL);  }/***********************************************************************//* EnvAddRouterWithContext: Adds an I/O router to the list of routers. *//***********************************************************************/globle intBool EnvAddRouterWithContext(  void *theEnv,  char *routerName,  int priority,  int (*queryFunction)(void *,char *),  int (*printFunction)(void *,char *,char *),  int (*getcFunction)(void *,char *),  int (*ungetcFunction)(void *,int,char *),  int (*exitFunction)(void *,int),  void *context)  {   struct router *newPtr, *lastPtr, *currentPtr;   char  *nameCopy;   newPtr = get_struct(theEnv,router);   nameCopy = (char *) genalloc(theEnv,strlen(routerName) + 1);   genstrcpy(nameCopy,routerName);        newPtr->name = nameCopy;   newPtr->active = TRUE;   newPtr->environmentAware = TRUE;   newPtr->context = context;   newPtr->priority = priority;   newPtr->query = queryFunction;   newPtr->printer = printFunction;   newPtr->exiter = exitFunction;   newPtr->charget = getcFunction;   newPtr->charunget = ungetcFunction;   newPtr->next = NULL;   if (RouterData(theEnv)->ListOfRouters == NULL)     {      RouterData(theEnv)->ListOfRouters = newPtr;      return(1);     }   lastPtr = NULL;   currentPtr = RouterData(theEnv)->ListOfRouters;   while ((currentPtr != NULL) ? (priority < currentPtr->priority) : FALSE)     {      lastPtr = currentPtr;      currentPtr = currentPtr->next;     }   if (lastPtr == NULL)     {      newPtr->next = RouterData(theEnv)->ListOfRouters;      RouterData(theEnv)->ListOfRouters = newPtr;     }   else     {      newPtr->next = currentPtr;      lastPtr->next = newPtr;     }   return(1);  }/*****************************************************************//* EnvDeleteRouter: Removes an I/O router from the list of routers. *//*****************************************************************/globle int EnvDeleteRouter(  void *theEnv,  char *routerName)  {   struct router *currentPtr, *lastPtr;   currentPtr = RouterData(theEnv)->ListOfRouters;   lastPtr = NULL;   while (currentPtr != NULL)     {      if (strcmp(currentPtr->name,routerName) == 0)        {         genfree(theEnv,currentPtr->name,strlen(currentPtr->name) + 1);         if (lastPtr == NULL)           {            RouterData(theEnv)->ListOfRouters = currentPtr->next;            rm(theEnv,currentPtr,(int) sizeof(struct router));            return(1);           }         lastPtr->next = currentPtr->next;         rm(theEnv,currentPtr,(int) sizeof(struct router));         return(1);        }      lastPtr = currentPtr;      currentPtr = currentPtr->next;     }   return(0);  }/*********************************************************************//* QueryRouters: Determines if any router recognizes a logical name. *//*********************************************************************/globle int QueryRouters(  void *theEnv,  char *logicalName)  {   struct router *currentPtr;   currentPtr = RouterData(theEnv)->ListOfRouters;   while (currentPtr != NULL)     {      if (QueryRouter(theEnv,logicalName,currentPtr) == TRUE) return(TRUE);      currentPtr = currentPtr->next;     }   return(FALSE);  }/************************************************//* QueryRouter: Determines if a specific router *//*    recognizes a logical name.                *//************************************************/static int QueryRouter(  void *theEnv,  char *logicalName,  struct router *currentPtr)  {   /*===================================================*/   /* If the router is inactive, then it can't respond. */   /*===================================================*/   if (currentPtr->active == FALSE)     { return(FALSE); }   /*=============================================================*/   /* If the router has no query function, then it can't respond. */   /*=============================================================*/   if (currentPtr->query == NULL) return(FALSE);   /*=========================================*/   /* Call the router's query function to see */   /* if it recognizes the logical name.      */   /*=========================================*/      SetEnvironmentRouterContext(theEnv,currentPtr->context);   if (currentPtr->environmentAware)     {       if ((*currentPtr->query)(theEnv,logicalName) == TRUE)        { return(TRUE); }     }   else                 {       if (((int (*)(char *)) (*currentPtr->query))(logicalName) == TRUE)        { return(TRUE); }     }   return(FALSE);  }/*******************************************************//* EnvDeactivateRouter: Deactivates a specific router. *//*******************************************************/globle int EnvDeactivateRouter(  void *theEnv,  char *routerName)  {   struct router *currentPtr;   currentPtr = RouterData(theEnv)->ListOfRouters;   while (currentPtr != NULL)     {      if (strcmp(currentPtr->name,routerName) == 0)        {         currentPtr->active = FALSE;         return(TRUE);        }      currentPtr = currentPtr->next;     }   return(FALSE);  }/***************************************************//* EnvActivateRouter: Activates a specific router. *//***************************************************/globle int EnvActivateRouter(  void *theEnv,  char *routerName)  {   struct router *currentPtr;   currentPtr = RouterData(theEnv)->ListOfRouters;   while (currentPtr != NULL)     {      if (strcmp(currentPtr->name,routerName) == 0)        {         currentPtr->active = TRUE;         return(TRUE);        }      currentPtr = currentPtr->next;     }   return(FALSE);  }/********************************************************//* SetFastLoad: Used to bypass router system for loads. *//********************************************************/globle void SetFastLoad(  void *theEnv,  FILE *filePtr)  {    RouterData(theEnv)->FastLoadFilePtr = filePtr;   }/********************************************************//* SetFastSave: Used to bypass router system for saves. *//********************************************************/globle void SetFastSave(  void *theEnv,  FILE *filePtr)  {    RouterData(theEnv)->FastSaveFilePtr = filePtr;   }/******************************************************//* GetFastLoad: Returns the "fast load" file pointer. *//******************************************************/globle FILE *GetFastLoad(  void *theEnv)  {   return(RouterData(theEnv)->FastLoadFilePtr);   }/******************************************************//* GetFastSave: Returns the "fast save" file pointer. *//******************************************************/globle FILE *GetFastSave(  void *theEnv)  {   return(RouterData(theEnv)->FastSaveFilePtr);   }/*****************************************************//* UnrecognizedRouterMessage: Standard error message *//*   for an unrecognized router name.                *//*****************************************************/globle void UnrecognizedRouterMessage(  void *theEnv,  char *logicalName)  {   PrintErrorID(theEnv,"ROUTER",1,FALSE);   EnvPrintRouter(theEnv,WERROR,"Logical name ");   EnvPrintRouter(theEnv,WERROR,logicalName);   EnvPrintRouter(theEnv,WERROR," was not recognized by any routers\n");  }/*****************************************//* PrintNRouter: Generic print function. *//*****************************************/globle int PrintNRouter(  void *theEnv,  char *logicalName,  char *str,  unsigned long length)  {   char *tempStr;   int rv;   tempStr = (char *) genalloc(theEnv,length+1);   genstrncpy(tempStr,str,length);   tempStr[length] = 0;   rv = EnvPrintRouter(theEnv,logicalName,tempStr);   genfree(theEnv,tempStr,length+1);   return(rv);  }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人av在线资源网| 一区二区三区在线视频观看58| 色久优优欧美色久优优| 日本大胆欧美人术艺术动态| 综合在线观看色| 久久精品一区四区| 91在线看国产| 99久久99久久免费精品蜜臀| 丰满岳乱妇一区二区三区| 开心九九激情九九欧美日韩精美视频电影 | 成人在线视频一区二区| 国产精品一二三在| 国产伦精品一区二区三区在线观看| 欧美a一区二区| 亚洲小少妇裸体bbw| 亚洲成人在线网站| 亚洲愉拍自拍另类高清精品| 国产精品第一页第二页第三页| 国产欧美日韩综合| xnxx国产精品| 国产情人综合久久777777| 精品国产乱码久久久久久牛牛 | 日本韩国欧美一区二区三区| 91亚洲永久精品| av亚洲精华国产精华精华 | 欧美日韩一区二区三区免费看 | 国产精品欧美经典| 国产日韩av一区| 国产欧美精品日韩区二区麻豆天美| 精品国产伦一区二区三区观看体验 | 一区视频在线播放| 中文字幕一区二区三区视频| 国产精品五月天| 国产精品久久久久桃色tv| 国产精品美女一区二区| 中文字幕一区二区三中文字幕| 成人欧美一区二区三区在线播放| 免费高清不卡av| 日韩高清中文字幕一区| 日本午夜精品视频在线观看| 久久狠狠亚洲综合| 日本成人在线一区| 国产不卡视频一区| av不卡在线观看| 一本大道久久a久久综合| 56国语精品自产拍在线观看| 久久久久国产一区二区三区四区| 亚洲人一二三区| 日本v片在线高清不卡在线观看| 国产精品影视网| 欧美影视一区二区三区| 日韩一级黄色片| 国产精品久久三区| 日韩国产在线一| 成人综合婷婷国产精品久久| 538prom精品视频线放| 久久九九影视网| 五月婷婷综合激情| 国产成人免费高清| 欧美日韩在线播放| 日本一区二区三区在线观看| 亚洲高清免费视频| 国产不卡视频一区| 欧美丰满美乳xxx高潮www| 日本一区二区成人| 免费xxxx性欧美18vr| 在线看不卡av| 国产亚洲精品中文字幕| 丝袜美腿一区二区三区| 成人a级免费电影| 精品国产一区二区三区四区四| 一区二区三区不卡视频在线观看| 国产精品亚洲人在线观看| 在线综合视频播放| 亚洲人成影院在线观看| 国产一区91精品张津瑜| 欧美精品一卡两卡| 亚洲男人电影天堂| 成人黄色小视频| 久久一日本道色综合| 免费精品99久久国产综合精品| 欧美亚日韩国产aⅴ精品中极品| 国产精品丝袜久久久久久app| 精品亚洲成a人在线观看| 91精品国产高清一区二区三区| 亚洲综合自拍偷拍| 94色蜜桃网一区二区三区| 久久久久久久久岛国免费| 久久精品999| 欧美xingq一区二区| 日韩一区欧美二区| 欧美日韩一二三| 一区二区三区视频在线看| 91亚洲精品一区二区乱码| 国产亚洲精品福利| 激情五月播播久久久精品| 日韩欧美成人激情| 日本亚洲电影天堂| 欧美日本免费一区二区三区| 亚洲色图欧洲色图婷婷| 成人午夜私人影院| 久久久久高清精品| 国产乱人伦偷精品视频不卡| 精品国产伦一区二区三区观看方式 | 欧美韩国日本一区| 国产精品一区免费在线观看| 久久久久国产精品人| 国产在线精品一区二区不卡了| 欧美va亚洲va香蕉在线| 麻豆精品在线视频| 精品捆绑美女sm三区| 久久精品国产一区二区三| 精品欧美一区二区三区精品久久| 美国一区二区三区在线播放| 日韩视频不卡中文| 久99久精品视频免费观看| 欧美白人最猛性xxxxx69交| 国产毛片精品国产一区二区三区| 久久综合av免费| 成人午夜视频网站| 亚洲情趣在线观看| 欧美日韩国产精品成人| 青青草国产精品97视觉盛宴| 日韩久久免费av| 国产精品一区二区果冻传媒| 国产日韩欧美精品综合| 成人精品视频一区二区三区 | 国产精品欧美久久久久一区二区| www.亚洲在线| 一区二区在线观看免费 | 亚洲人快播电影网| 欧美日韩高清不卡| 精品一区二区久久久| 国产精品美女视频| 欧美在线不卡一区| 久久99精品一区二区三区| 国产精品萝li| 欧美高清视频在线高清观看mv色露露十八 | 中文字幕av不卡| 亚洲精品在线网站| 欧美一级高清大全免费观看| 777久久久精品| 欧美大胆人体bbbb| 三级久久三级久久| 欧美性受xxxx黑人xyx| 免费国产亚洲视频| 国产精品久久久久永久免费观看 | 亚洲国产视频直播| 精品精品欲导航| 成人不卡免费av| 午夜婷婷国产麻豆精品| 欧美肥大bbwbbw高潮| 日韩福利电影在线| 精品国产91亚洲一区二区三区婷婷| 丰满岳乱妇一区二区三区| 亚洲18色成人| 精品不卡在线视频| 91福利视频久久久久| 另类小说综合欧美亚洲| 亚洲色图一区二区三区| 日韩精品一区二区三区视频播放| 精品一区免费av| 欧美另类久久久品| 国产高清精品在线| 亚洲免费伊人电影| 久久综合资源网| 97精品久久久午夜一区二区三区| 蜜臀va亚洲va欧美va天堂| 国产精品国产三级国产专播品爱网| 欧美高清视频在线高清观看mv色露露十八 | 日产欧产美韩系列久久99| 亚洲天堂成人在线观看| 日韩你懂的在线播放| 欧美在线视频日韩| 成人精品视频.| 强制捆绑调教一区二区| 亚洲一区二区在线免费观看视频| 久久久亚洲午夜电影| 欧美一区二区三区四区五区| 在线视频你懂得一区二区三区| 成人av网站免费观看| 久久国产免费看| 日本在线不卡视频一二三区| 国产精品国产精品国产专区不蜜 | 欧美一区在线视频| 91福利视频久久久久| av中文字幕不卡| 国产伦精品一区二区三区免费迷 | 91麻豆国产香蕉久久精品| 韩国av一区二区三区四区| 亚洲夂夂婷婷色拍ww47| 国产精品欧美久久久久一区二区| 欧美精品一区二区三区高清aⅴ| 宅男在线国产精品| 欧美日韩一区小说| 欧美色图第一页| 在线观看三级视频欧美| 91视频观看视频| av电影天堂一区二区在线| 午夜欧美视频在线观看|