/*$Id:$*/
/*23.12.2025	31.08.2012	Белых А.И.	iceb_system.c
Запуск программы, чтение и вывод на экран её вывод
*/
#include "iceb_libbuh.h"
#include "iceb_printw_from_thread.h"

int iceb_system(const char *komanda,class iceb_printw_from_thread_data *data)
{
//g_print("%s start-%s\n",__FUNCTION__,komanda);
char stroka[1024];
FILE *ff;

data->str=g_strdup_printf("%s-%s:%s\n",__FUNCTION__,gettext("Выполняем команду"),komanda);
iceb_printw_from_thread(data);

if((ff=popen(komanda,"r")) == NULL)
 {
  //sprintf(stroka,"%s-%s:%s\n",__FUNCTION__,gettext("Ошибка открытия канала"),komanda);
  //iceb_printw(stroka,buffer,view);
  data->str=g_strdup_printf("%s-%s:%s\n",__FUNCTION__,gettext("Ошибка открытия канала"),komanda);
  iceb_printw_from_thread(data);
  return(1);
 }

while(fgets(stroka,sizeof(stroka),ff) != NULL)
 {
//  iceb_printw(stroka,buffer,view);
  data->str=g_strdup_printf("%s",stroka);
  iceb_printw_from_thread(data);
 }

int voz=pclose(ff);

//if(WIFEXITED(voz) != TRUE)
if(voz != 0)
 {
  
//  printw("\n%s-%s:%s\n",__FUNCTION__,gettext("Ошибка при выполнении команды"),komanda);
//  OSTANOV();
 }  
//g_print("%s end\n",__FUNCTION__);
return(voz);

}

/*******************************************************************/
/*********************************************************************/


int iceb_system(const char *komanda,GtkTextBuffer *buffer,GtkWidget *view)
{
char stroka[1024];
FILE *ff;

if((ff=popen(komanda,"r")) == NULL)
 {
  sprintf(stroka,"%s-%s:%s\n",__FUNCTION__,gettext("Ошибка открытия канала"),komanda);
  iceb_printw(stroka,buffer,view);
  return(1);
 }

while(fgets(stroka,sizeof(stroka),ff) != NULL)
 {
  iceb_printw(stroka,buffer,view);
 }

int voz=pclose(ff);

//if(WIFEXITED(voz) != TRUE)
if(voz != 0)
 {
  
//  printw("\n%s-%s:%s\n",__FUNCTION__,gettext("Ошибка при выполнении команды"),komanda);
//  OSTANOV();
 }  
return(voz);

}
