struct listnode *copy_list(struct listnode *sourcelist, int mode) { struct listnode *resultlist; resultlist=init_list(); while((sourcelist=sourcelist->next)) insertnode_list(resultlist, sourcelist->left, sourcelist->right, sourcelist->pr, mode); return(resultlist); }
LPSTR DLLEXPORT SetSubst(char* text, char* pattern) { struct listnode *ln; if ( !pattern || !*pattern) return NULL; if((ln=searchnode_list(common_subs, pattern))!=NULL) { deletenode_list(common_subs, ln); subnum--; } if( text ) { insertnode_list(common_subs, pattern, text, "0", ALPHA); subnum++; ln = searchnode_list(common_subs, pattern); return ln->left; } return NULL; }
void parse_sub(char *arg) { char left[BUFFER_SIZE], right[BUFFER_SIZE], result[BUFFER_SIZE]; struct listnode *mysubs, *ln; mysubs=common_subs; arg=get_arg_in_braces(arg, left,STOP_SPACES); arg=get_arg_in_braces(arg, right,WITH_SPACES); if(!*left) { tintin_puts2(rs::rs(1166)); show_list(mysubs); } 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); } } else if (mesvar[MSG_SUB]) tintin_puts2(rs::rs(1167)); } else { if((ln=searchnode_list(mysubs, left))!=NULL) { deletenode_list(mysubs, ln); subnum--; } insertnode_list(mysubs, left, right, "0", ALPHA); subnum++; if (strcmp(right,".")!=0) sprintf(result, rs::rs(1168),right,left); else sprintf(result, rs::rs(1169), left); if (mesvar[MSG_SUB]) tintin_puts2(result); } }
void antisubstitute_command(const char *arg, struct session *ses) { char left[BUFFER_SIZE]; struct listnode *myantisubs, *ln; myantisubs = ses->antisubs; arg = get_arg_in_braces(arg, left, 1); if (!*left) { tintin_puts("#THESE ANTISUBSTITUTES HAS BEEN DEFINED:", ses); show_list(myantisubs); } else { if ((ln = searchnode_list(myantisubs, left)) != NULL) deletenode_list(myantisubs, ln); insertnode_list(myantisubs, left, left, 0, ALPHA); antisubnum++; if (ses->mesvar[MSG_SUBSTITUTE]) tintin_printf(ses, "Ok. Any line with {%s} will not be subbed.", left); } }