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

📄 substitute.c

📁 Linux下的MUD客户端程序
💻 C
字号:
/* Autoconf patching by David Hedbor, neotron@lysator.liu.se *//*********************************************************************//* file: substitute.c - functions related to the substitute command  *//*                             TINTIN III                            *//*          (T)he K(I)cki(N) (T)ickin D(I)kumud Clie(N)t             *//*                     coded by peter unold 1992                     *//*********************************************************************/#ifdef HAVE_STRING_H#include <string.h>#else#ifdef HAVE_STRINGS_H#include <strings.h>#endif#endif#include "tintin.h"extern char *get_arg_in_braces();extern struct listnode *search_node_with_wild();extern struct listnode *searchnode_list();extern struct listnode *common_subs;extern char vars[10][BUFFER_SIZE]; /* the %0, %1, %2,....%9 variables */extern int subnum;extern int mesvar[7];/***************************//* the #substitute command *//***************************/void parse_sub(arg, ses)     char *arg;     struct session *ses;{  char left[BUFFER_SIZE], right[BUFFER_SIZE], result[BUFFER_SIZE];  struct listnode *mysubs, *ln;  mysubs=(ses) ? ses->subs : common_subs;  arg=get_arg_in_braces(arg, left,0);  arg=get_arg_in_braces(arg, right,1);  if(!*left) {    tintin_puts2("#THESE SUBSTITUTES HAVE BEEN DEFINED:", ses);    show_list(mysubs);    prompt(ses);  }  else if(*left && !*right) {    if ((ln=search_node_with_wild(mysubs,left))!=NULL) {      while((mysubs=search_node_with_wild(mysubs, left))!=NULL) {        shownode_list(mysubs);      }      prompt(ses);    }    else      if (mesvar[2])        tintin_puts2("#THAT SUBSTITUTE IS NOT DEFINED.", ses);  }  else {    if((ln=searchnode_list(mysubs, left))!=NULL)      deletenode_list(mysubs, ln);    insertnode_list(mysubs, left, right, "0", ALPHA);    subnum++;    if (strcmp(right,".")!=0)      sprintf(result, "#Ok. {%s} now replaces {%s}.",right,left);    else      sprintf(result, "#Ok. {%s} is now gagged.", left);    if (mesvar[2])      tintin_puts2(result, ses);  }}/*****************************//* the #unsubstitute command *//*****************************/void unsubstitute_command(arg, ses)     char *arg;     struct session *ses;{  char left[BUFFER_SIZE] ,result[BUFFER_SIZE];  struct listnode *mysubs, *ln, *temp;  int flag;  flag=FALSE;  mysubs=(ses) ? ses->subs : common_subs;  temp=mysubs;  arg=get_arg_in_braces(arg,left,1);  while ((ln=search_node_with_wild(temp, left))!=NULL) {    if (mesvar[2]) {      if (*(ln->right)=='.' && !*(ln->right+1))        sprintf(result, "#Ok. {%s} is no longer gagged.", ln->left);      else        sprintf(result, "#Ok. {%s} is no longer substituted.", ln->left);      tintin_puts2(result, ses);    }    deletenode_list(mysubs, ln);    flag=TRUE;    temp=ln;  }  if (!flag && mesvar[2])    tintin_puts2("#THAT SUBSTITUTE IS NOT DEFINED.", ses);}void do_one_sub(line, ses)     char *line;     struct session *ses;{  struct listnode *ln;  ln=ses->subs;  while((ln=ln->next))       if(check_one_action(line,ln->left, ses))      prepare_actionalias(ln->right, line, ses);}

⌨️ 快捷键说明

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