From ae4e87df37ed8904de92c7cf2f3a11128cda2a21 Mon Sep 17 00:00:00 2001 From: Paul Buetow Date: Sat, 6 Apr 2013 13:14:41 +0200 Subject: tagging ychat-0.7.4.1 --- src/mods/commands/yc_exec.cpp | 108 ++++++++++++++++-------------------------- 1 file changed, 42 insertions(+), 66 deletions(-) mode change 100644 => 100755 src/mods/commands/yc_exec.cpp (limited to 'src/mods/commands/yc_exec.cpp') diff --git a/src/mods/commands/yc_exec.cpp b/src/mods/commands/yc_exec.cpp old mode 100644 new mode 100755 index 7751566..f912c20 --- a/src/mods/commands/yc_exec.cpp +++ b/src/mods/commands/yc_exec.cpp @@ -1,27 +1,3 @@ -/*:* - *: File: ./src/mods/commands/yc_exec.cpp - *: - *: yChat; Homepage: www.yChat.org; Version 0.8.3-CURRENT - *: - *: Copyright (C) 2003 Paul C. Buetow, Volker Richter - *: Copyright (C) 2004 Paul C. Buetow - *: Copyright (C) 2005 EXA Digital Solutions GbR - *: - *: This program is free software; you can redistribute it and/or - *: modify it under the terms of the GNU General Public License - *: as published by the Free Software Foundation; either version 2 - *: of the License, or (at your option) any later version. - *: - *: This program is distributed in the hope that it will be useful, - *: but WITHOUT ANY WARRANTY; without even the implied warranty of - *: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - *: GNU General Public License for more details. - *: - *: You should have received a copy of the GNU General Public License - *: along with this program; if not, write to the Free Software - *: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. - *:*/ - #include "../../incl.h" #include "../../chat/room.h" #include "../../chat/user.h" @@ -33,58 +9,58 @@ using namespace std; -extern "C" -{ - int extern_function(void *v_arg) - { - container *c=(container *)v_arg; +extern "C" { + int extern_function(void *v_arg) + { + container *c=(container *)v_arg; + + user* p_user = (user*) c->elem[1]; // the corresponding user + timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR; + conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF; + vector *params = (vector*) c->elem[2]; // param array - user* p_user = (user*) c->elem[1]; // the corresponding user - timr* p_timr = (timr*) ((dynamic_wrap*)c->elem[3])->TIMR; - conf* p_conf = (conf*) ((dynamic_wrap*)c->elem[3])->CONF; - vector *params = (vector*) c->elem[2]; // param array + string s_command; + string s_msg = p_timr->get_time(); + string s_output; - string s_command; - string s_msg = p_timr->get_time(); - string s_output; + vector::iterator iter; + for ( iter = params->begin(); iter != params->end(); iter++ ) + s_command.append( " " + *iter ); - vector::iterator iter; - for ( iter = params->begin(); iter != params->end(); iter++ ) - s_command.append( " " + *iter ); + s_command.append(" 2>error.log"); - s_command.append(" 2>error.log"); + s_msg.append( " " + s_command + "
\n" ); - s_msg.append( " " + s_command + "
\n" ); + p_user->msg_post( &s_msg ); - p_user->msg_post( &s_msg ); + FILE *file; + char buffer[READBUF]; - FILE *file; - char buffer[READBUF]; + if( (file=popen(s_command.c_str(), "r")) == NULL ) + { + s_output = "get_elem("chat.html.errorcolor") + + p_conf->get_elem("chat.msgs.err.execcommand") + + "
\n"; + p_user->msg_post( &s_output ); + } - if( (file=popen(s_command.c_str(), "r")) == NULL ) - { - s_output = "get_elem("chat.html.errorcolor") - + p_conf->get_elem("chat.msgs.err.execcommand") - + "
\n"; - p_user->msg_post( &s_output ); - } - else - { - s_output.append("
\n"); - while(true) - { - if(fgets(buffer, READBUF, file) == NULL) - break; + else + { + s_output.append("
\n"); + while(true) + { + if(fgets(buffer, READBUF, file) == NULL) + break; - s_output.append( string(buffer) + "
\n" ); - } + s_output.append( string(buffer) + "
\n" ); + } - p_user->msg_post( &s_output ); - pclose(file); - } + p_user->msg_post( &s_output ); + pclose(file); + } - return 0; - } + return 0; + } } -- cgit v1.2.3