Changeset 690 for trunk/dll/init.c


Ignore:
Timestamp:
Jun 15, 2007, 6:02:06 PM (18 years ago)
Author:
Steven Levine
Message:

Commit more OpenWatcom compatibility updates

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/dll/init.c

    r689 r690  
    2323  30 Mar 07 GKY Defined golbals for removing GetPString for window class names
    2424  21 Apr 07 GKY Find FM2Utils by path or utils directory eleminate fAddUtils global
     25  15 Jun 07 SHL Make OpenWatcom compatible
    2526
    2627***********************************************************************/
     
    5051#include "version.h"
    5152
     53#ifdef __WATCOMC__
     54#pragma alloc_text(INIT,LibMain,InitFM3DLL,DeInitFM3DLL)
     55#else // __IBMC__
    5256#pragma alloc_text(INIT,_DLL_InitTerm,InitFM3DLL,DeInitFM3DLL)
     57#endif
     58
    5359#pragma alloc_text(INIT1,StartFM3,FindSwapperDat)
    5460
     
    160166}
    161167
    162 unsigned long _System _DLL_InitTerm(unsigned long hModule,
    163                                     unsigned long ulFlag)
     168#ifdef __WATCOMC__
     169
     170unsigned APIENTRY LibMain(unsigned hModule,
     171                          unsigned ulFlag)
    164172{
    165173  CHAR *env;
     
    170178  switch (ulFlag) {
    171179  case 0:
    172     if (_CRT_init() == -1)
    173       return 0UL;
     180    // 14 Jun 07 SHL Already done for us
     181    // if (_CRT_init() == -1)
     182    //   return 0UL;
    174183    FM3DllHandle = hModule;
    175184    strcpy(stringfile, "FM3RES.STR");
     
    265274      PrfCloseProfile(fmprof);
    266275    DosError(FERR_ENABLEHARDERR);
     276    // 14 Jun 07 SHL Already done for us
     277    // _CRT_term();
     278    break;
     279  default:
     280    return 0UL;
     281  }
     282  return 1UL;
     283}
     284
     285#else // __IBMC__
     286
     287unsigned long _System _DLL_InitTerm(unsigned long hModule,
     288                                    unsigned long ulFlag)
     289{
     290  CHAR *env;
     291  CHAR stringfile[CCHMAXPATH];
     292  FILESTATUS3 fsa;
     293  APIRET rc;
     294
     295  switch (ulFlag) {
     296  case 0:
     297    if (_CRT_init() == -1)
     298      return 0UL;
     299    FM3DllHandle = hModule;
     300    strcpy(stringfile, "FM3RES.STR");
     301    env = getenv("FM3INI");
     302    if (env) {
     303      DosError(FERR_DISABLEHARDERR);
     304      rc = DosQueryPathInfo(env, FIL_STANDARD, &fsa, (ULONG) sizeof(fsa));
     305      if (!rc) {
     306        if (fsa.attrFile & FILE_DIRECTORY) {
     307          strcpy(stringfile, env);
     308          if (stringfile[strlen(stringfile) - 1] != '\\')
     309            strcat(stringfile, "\\");
     310          strcat(stringfile, "FM3RES.STR");
     311          DosError(FERR_DISABLEHARDERR);
     312          if (DosQueryPathInfo(stringfile, FIL_STANDARD, &fsa, sizeof(fsa)))
     313            strcpy(stringfile, "FM3RES.STR");
     314        }
     315      }
     316    }
     317    LoadStrings(stringfile);
     318
     319    DosError(FERR_DISABLEHARDERR);
     320    /* strings here to prevent multiple occurences in DLL */
     321    FM2Str = "FM/2";
     322    FM3Str = "FM/3";
     323    NullStr = "";
     324    Default = "DEFAULT";
     325    Settings = "SETTINGS";
     326    WPProgram = "WPProgram";
     327    FM3Folder = "<FM3_Folder>";
     328    FM3Tools = "<FM3_Tools>";
     329    DRM_OS2FILE = "DRM_OS2FILE";
     330    DRM_FM2ARCMEMBER = "DRM_FM2ARCMEMBER";
     331    DRF_FM2ARCHIVE = "DRF_FM2ARCHIVE";
     332    DRMDRFLIST = "<DRM_OS2FILE,DRF_UNKNOWN>,"
     333      "<DRM_DISCARD,DRF_UNKNOWN>," "<DRM_PRINT,DRF_UNKNOWN>";
     334    DRMDRFOS2FILE = "<DRM_OS2FILE,DRF_UNKNOWN>";
     335    DRMDRFFM2ARC = "<DRM_FM2ARCMEMBER,DRF_FM2ARCHIVE>";
     336    DRM_FM2INIRECORD = "DRM_FM2INIRECORD";
     337    DRF_FM2INI = "DRF_FM2INI";
     338    SUBJECT = ".SUBJECT";
     339    LONGNAME = ".LONGNAME";
     340    HPFS = "HPFS";
     341    JFS = "JFS";
     342    CDFS = "CDFS";
     343    ISOFS = "ISOFS";
     344    FAT32 = "FAT32";
     345    HPFS386 = "HPFS386";
     346    CBSIFS = "CBSIFS";
     347    NDFS32 = "NDFS32";
     348    RAMFS = "RAMFS";
     349    NTFS = "NTFS";
     350    WC_OBJECTWINDOW    =  "WC_OBJECTWINDOW";
     351    WC_BUBBLE          =  "WC_BUBBLE";
     352    WC_TOOLBUTTONS     =  "WC_TOOLBUTTONS";
     353    WC_DRIVEBUTTONS    =  "WC_DRIVEBUTTONS";
     354    WC_DIRCONTAINER    =  "WC_DIRCONTAINER";
     355    WC_DIRSTATUS       =  "WC_DIRSTATUS";
     356    WC_TREECONTAINER   =  "WC_TREECONTAINER";
     357    WC_TREEOPENBUTTON  =  "WC_TREEOPENBUTTON";
     358    WC_TREESTATUS      =  "WC_TREESTATUS";
     359    WC_MAINWND         =  "WC_MAINWND";
     360    WC_MAINWND2        =  "WC_MAINWND2";
     361    WC_AUTOVIEW        =  "WC_AUTOVIEW";
     362    WC_LED             =  "WC_LED";
     363    WC_COLLECTOR       =  "WC_COLLECTOR";
     364    WC_COLSTATUS       =  "WC_COLSTATUS";
     365    WC_STATUS          =  "WC_STATUS";
     366    WC_TOOLBACK        =  "WC_TOOLBACK";
     367    WC_DRIVEBACK       =  "WC_DRIVEBACK";
     368    WC_ARCCONTAINER    =  "WC_ARCCONTAINER";
     369    WC_ARCSTATUS       =  "WC_ARCSTATUS";
     370    WC_MLEEDITOR       =  "WC_MLEEDITOR";
     371    WC_INIEDITOR       =  "WC_INIEDITOR";
     372    WC_SEEALL          =  "WC_SEEALL";
     373    WC_NEWVIEW         =  "WC_NEWVIEW";
     374    WC_SEESTATUS       =  "WC_SEESTATUS";
     375    WC_VIEWSTATUS      =  "WC_VIEWSTATUS";
     376    WC_ERRORWND        =  "WC_ERRORWND";
     377    WC_MINITIME        =  "WC_MINITIME";
     378    WC_DATABAR         =  "WC_DATABAR";
     379
     380    /* end of strings */
     381    memset(&RGBBLACK, 0, sizeof(RGB2));
     382    RGBGREY.bRed = RGBGREY.bGreen = RGBGREY.bBlue = (BYTE)204;
     383    RGBGREY.fcOptions = 0;
     384    FM3UL = *(ULONG *) FM3Str;
     385    DEBUG_STRING = "Debug -- please report to author";
     386    break;
     387  case 1:
     388    StopPrinting = 1;
     389    if (fmprof)
     390      PrfCloseProfile(fmprof);
     391    DosError(FERR_ENABLEHARDERR);
    267392    _CRT_term();
    268393    break;
     
    272397  return 1UL;
    273398}
     399
     400#endif // __IBMC__
    274401
    275402VOID APIENTRY DeInitFM3DLL(ULONG why)
Note: See TracChangeset for help on using the changeset viewer.