home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 5 Edit / 05-Edit.zip / mmm_pkg.zip / mmm_nunx.cpp < prev    next >
C/C++ Source or Header  |  1996-12-05  |  2KB  |  78 lines

  1. #include "mmm_comm.h"
  2. #include <direct.h>
  3. #include <dos.h>
  4.  
  5. char RunDir[0x100];
  6. //&<<&char *MFileName(char *s){
  7. char *MFileName(char *s){
  8.   char *xx;
  9.   xx=getenv("MMM");
  10.   if(xx!=0){
  11.       strcpy(RunDir,xx);
  12.       if(RunDir[strlen(RunDir)-1]!='\\') strcat(RunDir,"\\");
  13.       }
  14.   char *x=new char[strlen(s)+strlen(RunDir)+1]; MemTest(x!=0);
  15.   strcpy(x,RunDir);
  16.   for(xx=x+strlen(x);*--xx!='\\' && *xx!='/' ;) ;
  17.   strcpy(xx+1,s);
  18.   return x;
  19. }
  20. //&>>&2 0 2 1
  21.  
  22. //&<<&File::File(char *name,int fx);
  23. File::File(char *name,int fx):flg(fx),Fold(0){
  24.   int i;
  25.   for(i=0;name[i];i++) if(name[i]=='/') name[i]='\\';
  26.   if(name[0] && name[1]==':'){
  27.     int x=(name[0]&0x1f);               // 1='A'
  28. //    unsigned int ndrv;
  29.     SaveSetDrive(x);
  30.     name+=2;
  31.   }
  32.   for(i=strlen(name);--i>=0;) if(name[i]=='\\'){ name[i]=0; break; }
  33.   if(i>=0){
  34.     SaveChDir(i==0 ? "\\" : name);
  35.   }
  36.   name+=i+1; if(*name==0) name="mmm.dir";
  37.   Realloc(strlen(name));
  38.   strcpy(buf,name);
  39.  
  40.   CurDev=SaveGetDrive();
  41.   CurDir=getcurdir();                   // current disk
  42.  
  43.   if(WildCard(buf)) MkWild();
  44.   else{
  45.     FILE *f=fopen(buf,"r");
  46.     if(f){
  47.       DrawLine(" Reading ...", cur->sy , 0x1f, mmm_screen.GetW() );
  48.       Editor.SetComment(buf);
  49.       templine=new char[INFTY+1]; MemTest(templine!=0);
  50.       FileLinesCounter=0;
  51.       Read(f,flg);
  52.  
  53. //&<<&      #ifdef _INCLUDE_SAFETY_MODULE_
  54. #ifdef _INCLUDE_SAFETY_MODULE_
  55.       {
  56.       int l;
  57.       Line *rpos;
  58.       rpos=pos;
  59.       while(rpos->next) rpos=rpos->next;
  60.       while( fgets(templine,INFTY,f) ){
  61.             l=strlen(templine);
  62.             while(l>0 && byte(templine[l-1])<' ') templine[--l]=0;
  63.             NewLine(templine)->LinkBefore(rpos);
  64.             }
  65.       }
  66. #endif
  67. //&>>&D 0 D 0
  68.  
  69.       delete templine;
  70.       fclose(f);
  71.     }
  72.   }
  73. }
  74. //&>>&18 0 F 39
  75.  
  76. //// mmm_nunx.err mmm_nunx.err mmm_nunx.err mmm_nunx.err mmm_nunx.err
  77. //&>>&7 0 7 21
  78.