Changeset 1082


Ignore:
Timestamp:
Jul 20, 2008, 12:37:36 AM (17 years ago)
Author:
Gregg Young
Message:

Changes so FM2 will use TMP/TEMP directory for all temp files; Replaced save_dir2 with global variable so BldFullPathName could easily replace code that performed the same function; Added #ifdef FORTIFY to free_ function that are only used when fortified.

Location:
trunk
Files:
22 edited

Legend:

Unmodified
Added
Removed
  • trunk/av2.c

    r907 r1082  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2007 Steven H. Levine
     9  Copyright (c) 2007, 2008 Steven H. Levine
    1010
    1111  23 Sep 07 SHL Sync with standards
  • trunk/databar.c

    r907 r1082  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2005 Steven H. Levine
     9  Copyright (c) 2005, 2008 Steven H. Levine
    1010
    1111  Oct 15 21:42:56 2002 967 ______ databar.c
  • trunk/dll/arccnrs.c

    r1078 r1082  
    5555  14 Jul 08 JBS Ticket 126: Add support for WPS open default & open settings in arccnrs
    5656  16 Jul 08 GKY Fix trap on viewing multiple files from an archive (misplaced free)
    57   16 JUL 08 GKY Use TMP directory for temp files if present.
     57  16 Jul 08 GKY Use TMP directory for temp files if present. Use MakeTempName
    5858
    5959***********************************************************************/
     
    424424  HFILE newstdout;
    425425  CHAR s[CCHMAXPATH * 2], lonename[CCHMAXPATH + 2],
    426        *nsize, *osize, *fdate, *fname, *p, *pp, arctemp[CCHMAXPATH];
     426       *nsize, *osize, *fdate, *fname, *p, *pp, *arctemp;
    427427  BOOL gotstart;
    428428  BOOL gotend;
     
    442442  if (!info)
    443443    info = find_type(arcname, NULL);
    444   for (x = 0; x < 99; x++) {
     444  arctemp = xmallocz(CCHMAXPATH, pszSrcFile, __LINE__);
     445  MakeTempName(arctemp, ArcTempRoot, 2);
     446  /*for (x = 0; x < 99; x++) {
    445447    sprintf(arctemp, "%s.%03x", ArcTempRoot, (clock() & 4095L));
    446448    if (IsFile(arctemp) == 1)
     
    448450    else
    449451      break;
    450   }
     452  } */
     453
     454  //printf("%s\r", arctemp); fflush(stdout);
    451455
    452456ReTry:
     
    508512    else {
    509513      fp = xfopen(arctemp, "w", pszSrcFile, __LINE__);
    510       if (!fp)
    511         return 0;
     514      if (!fp) {
     515        xfree(arctemp, pszSrcFile, __LINE__);
     516        return 0;
     517      }
    512518      else {
    513519        newstdout = -1;
     
    516522        if (rc) {
    517523          Dos_Error(MB_CANCEL, rc, hwndCnr, pszSrcFile, __LINE__,
    518                     "DosDupHandle");
     524                    "DosDupHandle");
     525          xfree(arctemp, pszSrcFile, __LINE__);
    519526          return 0;
    520527        }
     
    526533            Dos_Error(MB_CANCEL, rc, hwndCnr, pszSrcFile, __LINE__,
    527534                      "DosDupHandle");
    528             return 0;
     535            xfree(arctemp, pszSrcFile, __LINE__);
     536            return 0;
    529537          }
    530538          else {
     
    786794    DosError(FERR_DISABLEHARDERR);
    787795    DosForceDelete(arctemp);
     796    xfree(arctemp, pszSrcFile, __LINE__);
    788797  }
    789798
     
    14841493        free(s);
    14851494        if (IsFile(filename) == 1) {
    1486 #if 0 // 06 Oct 07 SHL fixme to be gone - set to 0 for ticket #58 testing
     1495#if 1 // 06 Oct 07 SHL fixme to be gone - set to 0 for ticket #58 testing
    14871496          if (fViewChild && fArcStuffVisible)
    14881497            DosSleep(100);  // Allow unzip session to finish closing 14 Mar 07 SHL
     
    17691778                if (p) {
    17701779                  BldFullPathName(p, li->targetpath, temp);
    1771                   /*strcpy(p, li->targetpath);
    1772                   if (p[strlen(p) - 1] != '\\')
    1773                     strcat(p, "\\");
    1774                   strcat(p, temp);*/
    17751780                  li->list[x] = p;
    17761781                  free(temp);
     
    35353540        dcd->id = id;
    35363541        dcd->type = ARC_FRAME;
    3537         if (!pTmpDir) {
    3538           save_dir2(dcd->workdir);
    3539           if (dcd->workdir[strlen(dcd->workdir) - 1] != '\\')
     3542        if (!pTmpDir)
     3543          save_dir2(dcd->workdir);
     3544        MakeTempName(dcd->workdir, ArcTempRoot, 2);
     3545          /*if (dcd->workdir[strlen(dcd->workdir) - 1] != '\\')
    35403546            strcat(dcd->workdir, "\\");
    35413547          sprintf(dcd->workdir + strlen(dcd->workdir), "%s.%03x",
    35423548                  ArcTempRoot, (clock() & 4095));
    3543         }
    35443549        else
    35453550          sprintf(dcd->workdir, "%s.%03x",
    3546                   ArcTempRoot, (clock() & 4095));
     3551                  ArcTempRoot, (clock() & 4095));*/
    35473552        strcpy(dcd->arcname, fullname);
    35483553        if (*extractpath) {
  • trunk/dll/assoc.c

    r1039 r1082  
    1818  29 Feb 08 GKY Changes to enable user settable command line length
    1919  29 Feb 08 GKY Use xfree where appropriate
     20  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    2021
    2122**************************************************************************************/
     
    142143    free_associations();
    143144  assloaded = TRUE;
    144   save_dir2(mask);
     145  BldFullPathName(mask, pFM2SaveDirectory, "ASSOC.DAT");
     146  /*save_dir2(mask);
    145147  if (mask[strlen(mask) - 1] != '\\')
    146148    strcat(mask, "\\");
    147   strcat(mask, "ASSOC.DAT");
     149  strcat(mask, "ASSOC.DAT");*/
    148150  fp = _fsopen(mask, "r", SH_DENYWR);
    149151  pszCmdLine = xmallocz(MaxComLineStrg, pszSrcFile, __LINE__);
     
    267269  }
    268270#endif
    269   save_dir2(s);
     271  /*save_dir2(s);
    270272  if (s[strlen(s) - 1] != '\\')
    271273    strcat(s, "\\");
    272   strcat(s, "ASSOC.DAT");
     274    strcat(s, "ASSOC.DAT");*/
     275  BldFullPathName(s, pFM2SaveDirectory, "ASSOC.DAT");
    273276  fp = xfopen(s, "w", pszSrcFile, __LINE__);
    274277  if (fp) {
  • trunk/dll/avl.c

    r1039 r1082  
    3131  25 Aug 07 SHL load_archivers: add missing close on error path
    3232  29 Feb 08 GKY Use xfree where appropriate
    33   22 Jun 08 GKY Added free_archivers fot fortify checking
     33  22 Jun 08 GKY Added free_archivers for fortify checking
     34  19 Jul 08 GKY ifdef Fortify free_archivers
    3435
    3536***********************************************************************/
     
    218219}
    219220
     221# ifdef FORTIFY
     222
    220223VOID free_archivers(VOID)
    221224{
     
    247250
    248251//=== free_arc_type() free allocated ARC_TYPE ===
     252
     253# endif
    249254
    250255VOID free_arc_type(ARC_TYPE * pat)
  • trunk/dll/cmdline.c

    r1039 r1082  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2004, 2007 Steven H.Levine
     9  Copyright (c) 2004, 2008 Steven H.Levine
    1010
    1111  01 Aug 04 SHL Rework lstrip/rstrip usage
     
    1818  29 Feb 08 GKY Use xfree where appropriate
    1919  20 Apr 08 GKY New variable names; Save and Load command lines of user set length
     20  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    2021
    2122***********************************************************************/
     
    7475    else
    7576      MiniLoaded = TRUE;
    76     save_dir2(pszCmdLine);
     77    BldFullPathName(pszCmdLine, pFM2SaveDirectory, (DoItYourself) ? "CMDLINES.DAT" : "CMDMINI.DAT");
     78    /*save_dir2(pszCmdLine);
    7779    if (pszCmdLine[strlen(pszCmdLine) - 1] != '\\')
    7880      strcat(pszCmdLine, "\\");
    79     strcat(pszCmdLine, (DoItYourself) ? "CMDLINES.DAT" : "CMDMINI.DAT");
     81    strcat(pszCmdLine, (DoItYourself) ? "CMDLINES.DAT" : "CMDMINI.DAT");*/
    8082    fp = _fsopen(pszCmdLine, "r", SH_DENYWR);
    8183    if (fp) {
     
    130132  if (!pszCmdLine)
    131133    return;
    132   save_dir2(pszCmdLine);
     134  BldFullPathName(pszCmdLine, pFM2SaveDirectory, (DoItYourself) ? "CMDLINES.DAT" : "CMDMINI.DAT");
     135  /*save_dir2(pszCmdLine);
    133136  if (pszCmdLine[strlen(pszCmdLine) - 1] != '\\')
    134137    strcat(pszCmdLine, "\\");
    135   strcat(pszCmdLine, (DoItYourself) ? "CMDLINES.DAT" : "CMDMINI.DAT");
     138  strcat(pszCmdLine, (DoItYourself) ? "CMDLINES.DAT" : "CMDMINI.DAT");*/
    136139  if (CmdLineHead) {
    137140    fp = xfopen(pszCmdLine, "w", pszSrcFile, __LINE__);
  • trunk/dll/command.c

    r1078 r1082  
    2525  29 Feb 08 GKY Use xfree where appropriate
    2626  18 Jul 08 SHL Add Fortify support
     27  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    2728
    2829***********************************************************************/
     
    331332  pszCmdLine = xmallocz(MaxComLineStrg, pszSrcFile, __LINE__);
    332333  if (pszCmdLine) {
    333     save_dir2(pszCmdLine);
     334    BldFullPathName(pszCmdLine, pFM2SaveDirectory, "COMMANDS.DAT");
     335    /*save_dir2(pszCmdLine);
    334336    if (pszCmdLine[strlen(pszCmdLine) - 1] != '\\')
    335337      strcat(pszCmdLine, "\\");
    336     strcat(pszCmdLine, "COMMANDS.DAT");
     338    strcat(pszCmdLine, "COMMANDS.DAT");*/
    337339    fp = _fsopen(pszCmdLine, "r", SH_DENYWR);
    338340    if (fp) {
     
    399401    return;
    400402  info = cmdhead;
    401   save_dir2(s);
     403  BldFullPathName(s, pFM2SaveDirectory, "COMMANDS.DAT");
     404  /*save_dir2(s);
    402405  if (s[strlen(s) - 1] != '\\')
    403406    strcat(s, "\\");
    404   strcat(s, "COMMANDS.DAT");
     407  strcat(s, "COMMANDS.DAT");*/
    405408  fp = xfopen(s, "w", pszSrcFile, __LINE__);
    406409  if (fp) {
  • trunk/dll/copyf.c

    r1039 r1082  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2001, 2006 Steven H.Levine
     9  Copyright (c) 2001, 2008 Steven H.Levine
    1010
    1111  14 Sep 02 SHL Drop obsolete debug code
     
    1919  01 Sep 07 GKY Use xDosSetPathInfo to fix case where FS3 buffer crosses 64k boundry
    2020  29 Feb 08 GKY Use xfree where appropriate
     21  19 Jul 08 GKY Modify MakeTempName for use making temp directory names
    2122
    2223***********************************************************************/
     
    4950#endif
    5051
    51 char *MakeTempName(char *buffer)
     52char *MakeTempName(char *buffer, char *temproot, INT type)
    5253{
    5354  FILESTATUS3 fs3;
     
    5556  char *p, *o;
    5657
     58  if (strlen(buffer) > 3 && buffer[strlen(buffer) - 1] != '\\')
     59    strcat(buffer, "\\");
    5760  p = o = buffer + strlen(buffer);
    58   sprintf(p, "%08lx.%03lx", clock(), mypid);
     61  switch (type) {
     62  case 0:
     63    sprintf(p, "%08lx.%03lx", rand() & 4095L, mypid);
     64    break;
     65  case 1:
     66    sprintf(p, "%s%04lx.%03lx", "$FM2", rand() & 4095L, mypid);
     67    break;
     68  case 2:
     69    sprintf(p, "%s.%03x", temproot, (rand() & 4095));
     70    break;
     71  default:
     72    break;
     73  }
    5974  p = buffer + (strlen(buffer) - 1);
    6075  for (;;) {
     
    510525          *p = 0;
    511526        strcat(dir, "\\");
    512         MakeTempName(dir);
     527        MakeTempName(dir, NULL, 0);
    513528        if (DosMove(fullnewname, dir))
    514529          *dir = 0;
     
    894909#pragma alloc_text(LONGNAMES,TruncName,GetLongName,WriteLongName)
    895910#pragma alloc_text(LONGNAMES,ZapLongName,AdjustWildcardName)
    896 #pragma alloc_text(COPYF,default_disk,docopyf)
     911#pragma alloc_text(COPYF,default_disk,docopyf,MakeTempName)
    897912#pragma alloc_text(UNLINKF,unlinkf,unlink_allf,make_deleteable,wipeallf)
  • trunk/dll/dircnrs.c

    r1079 r1082  
    7070#include "command.h"                    // RunCommand
    7171#include "fm3dll.h"
    72 #include "avl.h"                        // free_archivers
     72//#include "avl.h"                      // free_archivers
    7373#ifdef FORTIFY
    7474#include "misc.h"                       // GetTidForThread
  • trunk/dll/dirsize.c

    r1067 r1082  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2001, 2007 Steven H. Levine
     9  Copyright (c) 2001, 2008 Steven H. Levine
    1010
    1111  16 Oct 02 SHL Handle large partitions
     
    3434  29 Feb 08 GKY Add presparams & update appearence of "Sizes" dialog
    3535  07 Jul 08 GKY Fixed trap in PMCTLS (strlen) inadequate memory allocation
    36   07 Jul o8 GKY Fixed trap by no longer allocating pci->pszLongName as flag but pointing isroot
     36  07 Jul 08 GKY Fixed trap by no longer allocating pci->pszLongName as flag but pointing isroot
    3737                version to NullStr and all others to NULL.
     38  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory; use pTmpDir for temp files
    3839
    3940***********************************************************************/
     
    927928        FILE *fp;
    928929
    929         save_dir2(szFileName);
     930        if (pTmpDir)
     931          strcpy(szFileName, pTmpDir);
     932        else
     933          strcpy(szFileName, pFM2SaveDirectory);
     934        //save_dir2(szFileName);
    930935        sprintf(&szFileName[strlen(szFileName)], "\\%csizes.Rpt",
    931936                (pState) ? toupper(*pState->szDirName) : '+');
  • trunk/dll/filter.c

    r1039 r1082  
    1515  20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
    1616  29 Feb 08 GKY Use xfree where appropriate
     17  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    1718
    1819***********************************************************************/
     
    3031#include "errutil.h"                    // Dos_Error...
    3132#include "strutil.h"                    // GetPString
     33#include "pathutil.h"                   // BldFullPathName
    3234#include "fm3dll.h"
    3335#include "fortify.h"
     
    133135
    134136  loadedmasks = TRUE;
    135   save_dir2(s);
     137  BldFullPathName(s, pFM2SaveDirectory, "FILTER.DAT");
     138  /*save_dir2(s);
    136139  if (s[strlen(s) - 1] != '\\')
    137140    strcat(s, "\\");
    138   strcat(s, "FILTERS.DAT");
     141  strcat(s, "FILTERS.DAT");*/
    139142  fp = _fsopen(s, "r", SH_DENYWR);
    140143  if (fp) {
     
    175178    return;
    176179  if (maskhead) {
    177     save_dir2(s);
     180    BldFullPathName(s, pFM2SaveDirectory, "FILTER.DAT");
     181    /*save_dir2(s);
    178182    if (s[strlen(s) - 1] != '\\')
    179183      strcat(s, "\\");
    180     strcat(s, "FILTERS.DAT");
     184    strcat(s, "FILTERS.DAT");*/
    181185    fp = xfopen(s, "w", pszSrcFile, __LINE__);
    182186    if (fp) {
  • trunk/dll/fm3dll.h

    r1076 r1082  
    8484                DIRCNRDATA struct) into a new struct: DETAILS_SETTINGS.
    8585  16 JUL 08 GKY Use TMP directory for temp files
     86  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use MakeTempName; Remove LISTTEMPROOT
    8687
    8788***********************************************************************/
     
    229230#define ALLATTRS                (FILE_NORMAL | FILE_DIRECTORY | FILE_ARCHIVED |\
    230231                                 FILE_HIDDEN | FILE_READONLY | FILE_SYSTEM)
    231 #define LISTTEMPROOT            "$FM2LI$T."
     232//#define LISTTEMPROOT            "$FM2LI$T"
    232233
    233234#include "fm3dll2.h"
     
    630631CHAR default_disk(VOID);
    631632APIRET docopyf(INT type, CHAR * oldname, CHAR * newname, ...);
     633char *MakeTempName(char *buffer, char *temproot, int type);
    632634
    633635#define COPY 0
     
    11111113             hwndLED, hwndLEDHdr, hwndAutoMLE, hwndCmdlist;
    11121114DATADEF HBITMAP hbmLEDon, hbmLEDoff;
    1113 DATADEF CHAR ArcTempRoot[CCHMAXPATH], ThousandsSeparator[2], *pTmpDir;
     1115DATADEF CHAR ArcTempRoot[CCHMAXPATH], ThousandsSeparator[2], *pTmpDir, *pFM2SaveDirectory;
    11141116DATADEF HPOINTER hptrArrow, hptrBusy, hptrLast, hptrDir, hptrFile, hptrRemote,
    11151117  hptrFloppy, hptrDrive, hptrRemovable, hptrCDROM,hptrVirtual,hptrRamdisk,
  • trunk/dll/grep2.c

    r1063 r1082  
    2020  06 Aug 07 GKY Reduce DosSleep times (ticket 148)
    2121  20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
     22  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    2223
    2324  fixme for more excess locals to be gone
     
    4243#include "errutil.h"                    // Dos_Error...
    4344#include "strutil.h"                    // GetPString
     45#include "pathutil.h"                   // BldFullPathName
    4446#include "fm3dll.h"
    4547#include "fortify.h"
     
    268270    WinEnableWindow(WinWindowFromID(hwnd, GREP_NOSIZEDUPES), FALSE);
    269271
    270     save_dir2(s);
     272    BldFullPathName(s, pFM2SaveDirectory, "GREPMASK.DAT");
     273    /*save_dir2(s);
    271274    if (s[strlen(s) - 1] != '\\')
    272275      strcat(s, "\\");
    273     strcat(s, "GREPMASK.DAT");
     276    strcat(s, "GREPMASK.DAT");*/
    274277    fp = _fsopen(s, "r", SH_DENYWR);
    275278    if (fp) {
     
    947950                                            LM_QUERYITEMCOUNT,
    948951                                            MPVOID, MPVOID);
    949         if (sSelect > 0) {
    950           save_dir2(s);
     952        if (sSelect > 0) {
     953          BldFullPathName(s, pFM2SaveDirectory, "GREPMASK.DAT");
     954          /*save_dir2(s);
    951955          if (s[strlen(s) - 1] != '\\')
    952956            strcat(s, "\\");
    953           strcat(s, "GREPMASK.DAT");
     957          strcat(s, "GREPMASK.DAT");*/
    954958          fp = xfopen(s, "w", pszSrcFile, __LINE__);
    955959          if (fp) {
  • trunk/dll/inis.c

    r1063 r1082  
    2626  09 Jan 08 SHL Use CloseProfile to avoid spurious system INI closes
    2727  29 Feb 08 GKY Use xfree where appropriate
     28  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory or pTmpDir and use BldFullPathName
    2829
    2930***********************************************************************/
     
    4647#include "errutil.h"                    // Dos_Error...
    4748#include "strutil.h"                    // GetPString
     49#include "pathutil.h"                   // BldFullPathName
    4850#include "fm3dll.h"
    4951#include "fortify.h"
     
    11341136        /* make copies of new inis */
    11351137        *tempuserini = 0;
    1136         *tempsysini = 0;
    1137         save_dir2(tempuserini);
     1138        *tempsysini = 0;
     1139        BldFullPathName(tempuserini, pTmpDir ? pTmpDir : pFM2SaveDirectory, "TEMPUSER.INI");
     1140        /*save_dir2(tempuserini);
    11381141        if (tempuserini[strlen(tempuserini) - 1] != '\\')
    11391142          strcat(tempuserini, "\\");
    1140         strcat(tempuserini, "TEMPUSER.INI");
     1143        strcat(tempuserini, "TEMPUSER.INI");*/
    11411144        rc = DosCopy(userini, tempuserini, DCPY_EXISTING);
    11421145        if (rc) {
     
    11481151                    GetPString(IDS_COMPCOPYFAILEDTEXT), userini, tempuserini);
    11491152          break;
    1150         }
    1151         save_dir2(tempsysini);
     1153        }
     1154        BldFullPathName(tempsysini, pTmpDir ? pTmpDir : pFM2SaveDirectory, "TEMPSYS.INI");
     1155        /*save_dir2(tempsysini);
    11521156        if (tempsysini[strlen(tempsysini) - 1] != '\\')
    11531157          strcat(tempsysini, "\\");
    1154         strcat(tempsysini, "TEMPSYS.INI");
     1158        strcat(tempsysini, "TEMPSYS.INI");*/
    11551159        rc = DosCopy(sysini, tempsysini, DCPY_EXISTING);
    11561160        if (rc) {
  • trunk/dll/init.c

    r1077 r1082  
    5151  16 JUL 08 GKY Use TMP directory for temp files
    5252  17 Jul 08 SHL Reduce code bulk in fUseTmp setup
     53  19 Jul 08 GKY Use pFM2SaveDirectory, MakeTempName and move temp files to TMP subdirectory if (TMP).
    5354
    5455***********************************************************************/
     
    514515    }
    515516  }
    516 
    517   save_dir(s);
     517  if (pTmpDir)
     518    strcpy(s, pTmpDir);
     519  else
     520    save_dir2(s);
    518521  if (s[strlen(s) - 1] != '\\')
    519522    strcat(s, "\\");
    520523  enddir = &s[strlen(s)];
    521   strcat(s, LISTTEMPROOT);
     524  strcat(s, "$FM2LI$T");
    522525  strcat(s, "???");
    523526  search_handle = HDIR_CREATE;
     
    541544  BldFullPathName(szTempFile, pTmpDir, "$FM2PLAY.$$$");
    542545  DosForceDelete(szTempFile);
     546  if (pTmpDir) {
     547    wipeallf("%s\\*", pTmpDir);
     548    DosDeleteDir(pTmpDir);
     549  }
    543550  EndNote();
    544551  if (FM3ModHandle)
     
    650657  }
    651658
    652   /* set up default root names for temp archive goodies */
     659  // set up default root names for temp file storage and archive goodies
    653660  env = getenv("TMP");
    654661  if (env == NULL)
     
    659666    if (!rc) {
    660667      if (fs3.attrFile & FILE_DIRECTORY) {
    661         // 17 Jul 08 SHL fixme to check writable someday
    662         pTmpDir = xstrdup(env, pszSrcFile, __LINE__);
     668        CHAR szTempName[CCHMAXPATH];
     669        APIRET ret = 0;
     670        // 17 Jul 08 SHL fixme to check writable someday
     671        strcpy(szTempName, env);
     672        //if (szTempName[strlen(szTempName) - 1] != '\\')
     673        //  strcat(szTempName, "\\");
     674        MakeTempName(szTempName, NULL, 1);
     675        ret = DosCreateDir(szTempName, 0);
     676        if (!ret) {
     677          pTmpDir = xstrdup(szTempName, pszSrcFile, __LINE__);
     678        }
    663679      }
    664680    }
     
    666682  BldFullPathName(ArcTempRoot, pTmpDir, fAmAV2 ? "$AV$ARC$" : "$FM$ARC$");
    667683
    668   /* initialize random number generator */
     684  //Save the FM2 save directory name. This is the location of the ini, dat files etc.
     685  {
     686    CHAR temp[CCHMAXPATH];
     687    save_dir2(temp);
     688    pFM2SaveDirectory = xstrdup(temp, pszSrcFile, __LINE__);
     689  }
     690
     691  // initialize random number generator
    669692  srand(time(NULL) + clock());
    670693
  • trunk/dll/loadbmp.c

    r1009 r1082  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2006, 2007 Steven H. Levine
     9  Copyright (c) 2006, 2008 Steven H. Levine
    1010
    1111  22 Jul 06 SHL Check more run time errors
     
    1515  16 Jan 07 SHL Beautify with indent -i2
    1616  18 Apr 08 SHL LoadBitmapFromFile ensure pf initialized if no hPS
     17  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory
     18
    1719***********************************************************************/
    1820
     
    3638  char s[CCHMAXPATH];
    3739
    38   save_dir2(s);
     40  //save_dir2(s);
     41  strcpy(s, pFM2SaveDirectory);
    3942  sprintf(s + strlen(s), "\\%u.BMP", id);
    4043  return LoadBitmapFromFile(s);
  • trunk/dll/remap.c

    r1039 r1082  
    55
    66  Copyright (c) 1993, 1998 M. Kimes
    7   Copyright (c) 2004, 2006 Steven H.Levine
     7  Copyright (c) 2004, 2008 Steven H.Levine
    88
    99  01 Aug 04 SHL Rework lstrip/rstrip usage
     
    1414  20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
    1515  29 Feb 08 GKY Use xfree where appropriate
     16  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    1617
    1718***********************************************************************/
     
    3031#include "errutil.h"                    // Dos_Error...
    3132#include "strutil.h"                    // GetPString
     33#include "pathutil.h"                   // BldFullPathName
    3234#include "fm3dll.h"
    3335#include "fortify.h"
     
    7173
    7274  loadedres = TRUE;
    73   save_dir2(s);
     75  BldFullPathName(s, pFM2SaveDirectory, "RESOURCE.DAT");
     76  /*save_dir2(s);
    7477  if (s[strlen(s) - 1] != '\\')
    7578    strcat(s, "\\");
    76   strcat(s, "RESOURCE.DAT");
     79  strcat(s, "RESOURCE.DAT");*/
    7780  fp = _fsopen(s, "r", SH_DENYWR);
    7881  if (fp) {
     
    112115  if (!loadedres)
    113116    return;
    114   save_dir2(s);
     117  BldFullPathName(s, pFM2SaveDirectory, "RESOURCE.DAT");
     118  /*save_dir2(s);
    115119  if (s[strlen(s) - 1] != '\\')
    116120    strcat(s, "\\");
    117   strcat(s, "RESOURCE.DAT");
     121  strcat(s, "RESOURCE.DAT");*/
    118122  if (reshead) {
    119123    fp = xfopen(s, "w", pszSrcFile, __LINE__);
  • trunk/dll/saveclip.c

    r1047 r1082  
    2222  30 Dec 07 GKY Use CommaFmtULL
    2323  16 Feb 08 GKY Changed _fsopen flag so a new list file can be created
     24  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    2425
    2526***********************************************************************/
     
    3738#include "errutil.h"                    // Dos_Error...
    3839#include "strutil.h"                    // GetPString
     40#include "pathutil.h"                   // BldFullPathName
    3941#include "fm3dll.h"
    4042#include "fortify.h"
     
    237239        CHAR s[CCHMAXPATH + 14];
    238240
    239         save_dir2(s);
     241        BldFullPathName(s, pFM2SaveDirectory, "PATTERNS.DAT");
     242        /*save_dir2(s);
    240243        if (s[strlen(s) - 1] != '\\')
    241244          strcat(s, "\\");
    242         strcat(s, "PATTERNS.DAT");
     245        strcat(s, "PATTERNS.DAT");*/
    243246        fp = _fsopen(s, "r", SH_DENYWR);
    244247        if (fp) {
     
    267270                                       LM_QUERYITEMCOUNT, MPVOID, MPVOID);
    268271      if (sMax > 0) {
    269         save_dir2(szBuffer);
     272        BldFullPathName(szBuffer, pFM2SaveDirectory, "PATTERNS.DAT");
     273        /*save_dir2(szBuffer);
    270274        if (szBuffer[strlen(szBuffer) - 1] != '\\')
    271275          strcat(szBuffer, "\\");
    272         strcat(szBuffer, "PATTERNS.DAT");
     276        strcat(szBuffer, "PATTERNS.DAT");*/
    273277        fp = xfopen(szBuffer, "w", pszSrcFile, __LINE__);
    274278        if (fp) {
     
    287291      }
    288292      else if (!sMax) {
    289         save_dir2(szBuffer);
     293        BldFullPathName(szBuffer, pFM2SaveDirectory, "PATTERNS.DAT");
     294        /*save_dir2(szBuffer);
    290295        if (szBuffer[strlen(szBuffer) - 1] != '\\')
    291296          strcat(szBuffer, "\\");
    292         strcat(szBuffer, "PATTERNS.DAT");
     297        strcat(szBuffer, "PATTERNS.DAT");*/
    293298        unlinkf("%s", szBuffer);
    294299      }
     
    598603        CHAR s[CCHMAXPATH + 14];
    599604
    600         save_dir2(s);
     605        BldFullPathName(s, pFM2SaveDirectory, "PATTERNS.DAT");
     606        /*save_dir2(s);
    601607        if (s[strlen(s) - 1] != '\\')
    602608          strcat(s, "\\");
    603         strcat(s, "PATTERNS.DAT");
     609        strcat(s, "PATTERNS.DAT");*/
    604610        fp = _fsopen(s, "r", SH_DENYWR);
    605611        if (fp) {
     
    629635                                       LM_QUERYITEMCOUNT, MPVOID, MPVOID);
    630636      if (sMax > 0) {
    631         save_dir2(szBuffer);
     637        BldFullPathName(szBuffer, pFM2SaveDirectory, "PATTERNS.DAT");
     638        /*save_dir2(szBuffer);
    632639        if (szBuffer[strlen(szBuffer) - 1] != '\\')
    633640          strcat(szBuffer, "\\");
    634         strcat(szBuffer, "PATTERNS.DAT");
     641        strcat(szBuffer, "PATTERNS.DAT");*/
    635642        fp = xfopen(szBuffer, "w", pszSrcFile, __LINE__);
    636643        if (fp) {
     
    649656      }
    650657      else if (!sMax) {
    651         save_dir2(szBuffer);
     658        BldFullPathName(szBuffer, pFM2SaveDirectory, "PATTERNS.DAT");
     659        /*save_dir2(szBuffer);
    652660        if (szBuffer[strlen(szBuffer) - 1] != '\\')
    653661          strcat(szBuffer, "\\");
    654         strcat(szBuffer, "PATTERNS.DAT");
     662        strcat(szBuffer, "PATTERNS.DAT");*/
    655663        unlinkf("%s", szBuffer);
    656664      }
  • trunk/dll/systemf.c

    r1047 r1082  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2003, 2006 Steven H.Levine
     9  Copyright (c) 2003, 2008 Steven H.Levine
    1010
    1111  21 Nov 03 SHL Comments
     
    2323  29 Feb 08 GKY Refactor global command line variables to notebook.h
    2424  26 May 08 SHL Use uiLineNumber correctly
     25  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory or pTmpDir and use MakeTempName
    2526
    2627***********************************************************************/
     
    181182            FILE *fp;
    182183
    183             save_dir2(listfile);
    184             if (listfile[strlen(listfile) - 1] != '\\')
    185               strcat(listfile, "\\");
    186             sprintf(&listfile[strlen(listfile)], "%s%03x",
    187                     LISTTEMPROOT, (clock() & 4095));
    188             fp = xfopen(listfile, "w",pszSrcFile,__LINE__);
    189             if (fp) {
    190               for (x = 0; list[x]; x++)
    191               {
    192                 fputs(list[x], fp);
    193                 if (list[x + 1])
    194                   fputc('\n', fp);
    195               }
    196               fclose(fp);
    197             }
    198           }
    199           strcpy(pp, listfile);
    200           pp += strlen(listfile);
     184
     185            strcpy(listfile, pTmpDir ? pTmpDir : pFM2SaveDirectory);
     186            MakeTempName(listfile, "$FM2LI$T", 2);
     187            /*if (listfile[strlen(listfile) - 1] != '\\')
     188              strcat(listfile, "\\");
     189            sprintf(&listfile[strlen(listfile)], "%s.%03x",
     190                    LISTTEMPROOT, (clock() & 4095));*/
     191            fp = xfopen(listfile, "w",pszSrcFile,__LINE__);
     192            if (fp) {
     193              for (x = 0; list[x]; x++)
     194              {
     195                fputs(list[x], fp);
     196                if (list[x + 1])
     197                  fputc('\n', fp);
     198              }
     199              fclose(fp);
     200            }
     201          }
     202          strcpy(pp, listfile);
     203          pp += strlen(listfile);
    201204        }
    202205        p += 2;
  • trunk/dll/tools.c

    r1079 r1082  
    1818  20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
    1919  29 Feb 08 GKY Use xfree where appropriate
     20  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    2021
    2122***********************************************************************/
     
    3435#include "errutil.h"                    // Dos_Error...
    3536#include "strutil.h"                    // GetPString
     37#include "pathutil.h"                   // BldFullPathName
    3638#include "fortify.h"
    3739#include "fm3dll.h"
     
    6062    return;
    6163  }
    62   save_dir2(s);
     64  BldFullPathName(s, pFM2SaveDirectory, "QUICKTLS.DAT");
     65  /*save_dir2(s);
    6366  if (s[strlen(s) - 1] != '\\')
    6467    strcat(s, "\\");
    65   strcat(s, "QUICKTLS.DAT");
     68  strcat(s, "QUICKTLS.DAT");*/
    6669  fp = _fsopen(s, "r", SH_DENYWR);
    6770  if (fp) {
     
    9396  if (!quicktool[0])
    9497    return;
    95   save_dir2(s);
     98  BldFullPathName(s, pFM2SaveDirectory, "QUICKTLS.DAT");
     99  /*save_dir2(s);
    96100  if (s[strlen(s) - 1] != '\\')
    97101    strcat(s, "\\");
    98   strcat(s, "QUICKTLS.DAT");
     102  strcat(s, "QUICKTLS.DAT");*/
    99103  fp = xfopen(s, "w", pszSrcFile, __LINE__);
    100104  if (fp) {
  • trunk/dll/viewinf.c

    r1063 r1082  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2004, 2006 Steven H.Levine
     9  Copyright (c) 2004, 2008 Steven H.Levine
    1010
    1111  01 Aug 04 SHL Rework lstrip/rstrip usage
     
    1414  03 Nov 06 SHL Count thread usage
    1515  20 Aug 07 GKY Move #pragma alloc_text to end for OpenWatcom compat
     16  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    1617
    1718***********************************************************************/
     
    3233#include "errutil.h"                    // Dos_Error...
    3334#include "strutil.h"                    // GetPString
     35#include "pathutil.h"                   // BldFullPathName
    3436#include "fm3dll.h"
    3537#include "fortify.h"
     
    540542              ViewHelp(p);
    541543            break;
    542           }
    543           save_dir2(filename);
     544          }
     545          BldFullPathName(filename, pFM2SaveDirectory, "FM2VINF.CMD");
     546          /*save_dir2(filename);
    544547          if (filename[strlen(filename) - 1] != '\\')
    545548            strcat(filename, "\\");
    546           strcat(filename, "FM2VINF.CMD");
     549          strcat(filename, "FM2VINF.CMD");*/
    547550          fp = xfopen(filename, "w", pszSrcFile, __LINE__);
    548551          if (fp) {
  • trunk/dll/walkem.c

    r1078 r1082  
    77
    88  Copyright (c) 1993-98 M. Kimes
    9   Copyright (c) 2005, 2007 Steven H. Levine
     9  Copyright (c) 2005, 2008 Steven H. Levine
    1010
    1111  01 Aug 04 SHL Rework lstrip/rstrip usage
     
    3232  22 Jun 08 GKY Add free_?dir for fortify testing
    3333  18 Jul 08 SHL More Fortify support
     34  19 Jul 08 GKY Replace save_dir2(dir) with pFM2SaveDirectory and use BldFullPathName
    3435
    3536***********************************************************************/
     
    5152#include "strutil.h"                    // GetPString
    5253#include "notebook.h"                   // targetdirectory
     54#include "pathutil.h"                   // BldFullPathName
    5355#include "fm3dll.h"
    5456#include "fortify.h"
     
    354356  loadedudirs = TRUE;
    355357  fUdirsChanged = FALSE;
    356   save_dir2(s);
     358  BldFullPathName(s, pFM2SaveDirectory, "USERDIRS.DAT");
     359  /*save_dir2(s);
    357360  if (s[strlen(s) - 1] != '\\')
    358361    strcat(s, "\\");
    359   strcat(s, "USERDIRS.DAT");
     362  strcat(s, "USERDIRS.DAT");*/
    360363  fp = _fsopen(s, "r", SH_DENYWR);
    361364  if (fp) {
     
    403406    fUdirsChanged = FALSE;
    404407    if (udirhead) {
    405       save_dir2(s);
     408      BldFullPathName(s, pFM2SaveDirectory, "USERDIRS.DAT");
     409      /*save_dir2(s);
    406410      if (s[strlen(s) - 1] != '\\')
    407411        strcat(s, "\\");
    408       strcat(s, "USERDIRS.DAT");
     412      strcat(s, "USERDIRS.DAT");*/
    409413      fp = xfopen(s, "w", pszSrcFile, __LINE__);
    410414      if (fp) {
     
    583587}
    584588
     589# ifdef FORTIFY
     590
    585591VOID free_ldir(VOID)
    586592{
     
    596602  ldirhead = NULL;
    597603}
     604
     605# endif
    598606
    599607VOID free_udirs(VOID)
Note: See TracChangeset for help on using the changeset viewer.