home *** CD-ROM | disk | FTP | other *** search
/ ftp.rarlab.com / 2014.05.ftp.rarlab.com.tar / ftp.rarlab.com / rar / sunrar.zip / others.c < prev    next >
Text File  |  1998-07-01  |  1KB  |  84 lines

  1. void FreeMemory(void)
  2. {
  3.   free(UnpMemory);
  4.   free(TempMemory);
  5.   free(CommMemory);
  6.   free(ArgBuf);
  7.   free(ExclPtr);
  8.   free(ArcNamePtr);
  9.   UnpMemory=NULL;
  10.   TempMemory=NULL;
  11.   CommMemory=NULL;
  12.   ArgBuf=ExclPtr=ArcNamePtr=NULL;
  13. }
  14.  
  15.  
  16. void ExecuteCommand(void)
  17. {
  18.   if (MainCommand[1] && strchr("PXET",toupper(*MainCommand))!=NULL)
  19.   {
  20.     OutHelp();
  21.     ErrExit(EEMPTY,USER_ERROR);
  22.   }
  23.   switch(MainCommand[0])
  24.   {
  25.     case 'P':
  26.     case 'X':
  27.     case 'E':
  28.     case 'T':
  29.       ExtrFile();
  30.       break;
  31.     case 'V':
  32.     case 'L':
  33.       ListArchive();
  34.       break;
  35.     default:
  36.       OutHelp();
  37.       ErrExit(EEMPTY,USER_ERROR);
  38.   }
  39.   mprintf("\n");
  40.   NextArgName(ARG_REMOVE);
  41.   free(ArcNamePtr);
  42.   ArcNamePtr=NULL;
  43. }
  44.  
  45.  
  46. void ShutDown(int Mode)
  47. {
  48.   memset(Password,0,sizeof(Password));
  49.   if (Mode & SD_FILES)
  50.   {
  51.     if (ArcPtr!=NULL)
  52.       fclose(ArcPtr);
  53.     if (TmpArcPtr!=NULL)
  54.       fclose(TmpArcPtr);
  55.     if (FilePtr!=NULL)
  56.       fclose(FilePtr);
  57.     NextArgName(ARG_REMOVE);
  58.     if (*CurExtrFile!=0 && (MainCommand[0]=='X' || MainCommand[0]=='E'))
  59.       remove(CurExtrFile);
  60.   }
  61.   if (Mode & SD_MEMORY)
  62.     FreeMemory();
  63. }
  64.  
  65.  
  66. void mprintf(char *fmt,...)
  67. {
  68.   va_list argptr;
  69.   va_start(argptr,fmt);
  70.   switch(Opt.MsgStream)
  71.   {
  72.     case MSG_STDOUT:
  73.       vfprintf(stdout,fmt,argptr);
  74.       break;
  75.     case MSG_STDERR:
  76.       vfprintf(stderr,fmt,argptr);
  77.       break;
  78.     case MSG_NULL:
  79.       break;
  80.   }
  81.   va_end(argptr);
  82. }
  83.  
  84.