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

  1. #include "mmm_comm.h"
  2. #include <unistd.h>
  3.  
  4. char RunDir[0x180];
  5. //&<<&char *MFileName(char *s){
  6. char *MFileName(char *s){
  7.   char *xx;
  8.   xx=getenv("HOME");
  9.   if(xx!=0){
  10.     strcpy(RunDir,xx);
  11.     if(RunDir[strlen(RunDir)-1]!='/') strcat(RunDir,"/");
  12.   } else {
  13.     strcpy(RunDir,"./");
  14.     }
  15.   char *x=new char[strlen(s)+strlen(RunDir)+1]; MemTest(x!=0);
  16.   strcpy(x,RunDir);
  17.   strcat(x,s);
  18.   return x;
  19. }
  20. //&>>&5 0 5 16
  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 A 39
  75.  
  76. extern void _dos_getdrive( unsigned *__drive ){return;};
  77. extern void _dos_setdrive( unsigned __drivenum, unsigned *__drives ){return;};
  78. //&>>&6 0 6 18
  79.