Ignore:
Timestamp:
Oct 13, 2001, 7:57:58 PM (24 years ago)
Author:
umoeller
Message:

Lots of updates from the last week for conditional compiles and other stuff.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/helpers/apps.c

    r105 r108  
    476476/* ******************************************************************
    477477 *
    478  *   Application start
     478 *   Application information
    479479 *
    480480 ********************************************************************/
    481 
    482 /*
    483  *@@ CallBatchCorrectly:
    484  *      fixes the specified PROGDETAILS for
    485  *      command files in the executable part
    486  *      by inserting /C XXX into the parameters
    487  *      and setting the executable according
    488  *      to an environment variable.
    489  *
    490  *@@added V0.9.6 (2000-10-16) [umoeller]
    491  *@@changed V0.9.7 (2001-01-15) [umoeller]: now using XSTRING
    492  *@@changed V0.9.12 (2001-05-27) [umoeller]: moved from winh.c to apps.c
    493  */
    494 
    495 VOID CallBatchCorrectly(PPROGDETAILS pProgDetails,
    496                         PXSTRING pstrParams,        // in/out: modified parameters (reallocated)
    497                         const char *pcszEnvVar,     // in: env var spec'g command proc
    498                                                     // (e.g. "OS2_SHELL"); can be NULL
    499                         const char *pcszDefProc)    // in: def't command proc (e.g. "CMD.EXE")
    500 {
    501     // XXX.CMD file as executable:
    502     // fix args to /C XXX.CMD
    503 
    504     PSZ     pszOldParams = NULL;
    505     ULONG   ulOldParamsLength = pstrParams->ulLength;
    506     if (ulOldParamsLength)
    507         // we have parameters already:
    508         // make a backup... we'll append that later
    509         pszOldParams = strdup(pstrParams->psz);
    510 
    511     // set new params to "/C filename.cmd"
    512     xstrcpy(pstrParams, "/C ", 0);
    513     xstrcat(pstrParams,
    514             pProgDetails->pszExecutable,
    515             0);
    516 
    517     if (pszOldParams)
    518     {
    519         // .cmd had params:
    520         // append space and old params
    521         xstrcatc(pstrParams, ' ');
    522         xstrcat(pstrParams,
    523                 pszOldParams,
    524                 ulOldParamsLength);
    525         free(pszOldParams);
    526     }
    527 
    528     // set executable to $(OS2_SHELL)
    529     pProgDetails->pszExecutable = NULL;
    530     if (pcszEnvVar)
    531         pProgDetails->pszExecutable = getenv(pcszEnvVar);
    532     if (!pProgDetails->pszExecutable)
    533         pProgDetails->pszExecutable = (PSZ)pcszDefProc;
    534                 // should be on PATH
    535 }
    536481
    537482/*
     
    557502 *      --  PROG_VDD
    558503 *
    559  *      --  PROG_XWP_DLL: new apptype defined in winh.h for
    560  *          dynamic link libraries.
     504 *      --  PROG_DLL
    561505 *
    562506 *      --  PROG_WINDOWEDVDM
     
    590534        else if ((_ulDosAppType & 0xF0) == FAPPTYP_DLL) // 0x10)
    591535            // DLL bit set
    592             *pulWinAppType = PROG_XWP_DLL;
     536            *pulWinAppType = PROG_DLL;
    593537        else if (_ulDosAppType & FAPPTYP_DOS)           // 0x20)
    594538            // DOS bit set?
     
    611555
    612556/*
     557 *@@ appDescribeAppType:
     558 *      returns a "PROG_*" string for the given
     559 *      program type. Useful for WPProgram setup
     560 *      strings and such.
     561 *
     562 *@@added V0.9.16 (2001-10-06)
     563 */
     564
     565PCSZ appDescribeAppType(PROGCATEGORY progc)        // in: from PROGDETAILS.progc
     566{
     567    switch (progc)
     568    {
     569        case PROG_DEFAULT: return "PROG_DEFAULT";
     570        case PROG_FULLSCREEN: return "PROG_FULLSCREEN";
     571        case PROG_WINDOWABLEVIO: return "PROG_WINDOWABLEVIO";
     572        case PROG_PM: return "PROG_PM";
     573        case PROG_GROUP: return "PROG_GROUP";
     574        case PROG_VDM: return "PROG_VDM";
     575            // same as case PROG_REAL: return "PROG_REAL";
     576        case PROG_WINDOWEDVDM: return "PROG_WINDOWEDVDM";
     577        case PROG_DLL: return "PROG_DLL";
     578        case PROG_PDD: return "PROG_PDD";
     579        case PROG_VDD: return "PROG_VDD";
     580        case PROG_WINDOW_REAL: return "PROG_WINDOW_REAL";
     581        case PROG_30_STD: return "PROG_30_STD";
     582            // same as case PROG_WINDOW_PROT: return "PROG_WINDOW_PROT";
     583        case PROG_WINDOW_AUTO: return "PROG_WINDOW_AUTO";
     584        case PROG_30_STDSEAMLESSVDM: return "PROG_30_STDSEAMLESSVDM";
     585            // same as case PROG_SEAMLESSVDM: return "PROG_SEAMLESSVDM";
     586        case PROG_30_STDSEAMLESSCOMMON: return "PROG_30_STDSEAMLESSCOMMON";
     587            // same as case PROG_SEAMLESSCOMMON: return "PROG_SEAMLESSCOMMON";
     588        case PROG_31_STDSEAMLESSVDM: return "PROG_31_STDSEAMLESSVDM";
     589        case PROG_31_STDSEAMLESSCOMMON: return "PROG_31_STDSEAMLESSCOMMON";
     590        case PROG_31_ENHSEAMLESSVDM: return "PROG_31_ENHSEAMLESSVDM";
     591        case PROG_31_ENHSEAMLESSCOMMON: return "PROG_31_ENHSEAMLESSCOMMON";
     592        case PROG_31_ENH: return "PROG_31_ENH";
     593        case PROG_31_STD: return "PROG_31_STD";
     594
     595// Warp 4 toolkit defines, whatever these were designed for...
     596#ifndef PROG_DOS_GAME
     597    #define PROG_DOS_GAME            (PROGCATEGORY)21
     598#endif
     599#ifndef PROG_WIN_GAME
     600    #define PROG_WIN_GAME            (PROGCATEGORY)22
     601#endif
     602#ifndef PROG_DOS_MODE
     603    #define PROG_DOS_MODE            (PROGCATEGORY)23
     604#endif
     605
     606        case PROG_DOS_GAME: return "PROG_DOS_GAME";
     607        case PROG_WIN_GAME: return "PROG_WIN_GAME";
     608        case PROG_DOS_MODE: return "PROG_DOS_MODE";
     609    }
     610
     611    return NULL;
     612}
     613
     614/*
    613615 *@@ appIsWindowsApp:
    614616 *      checks the specified program category
     
    657659
    658660    return (0);
     661}
     662
     663/* ******************************************************************
     664 *
     665 *   Application start
     666 *
     667 ********************************************************************/
     668
     669/*
     670 *@@ CallBatchCorrectly:
     671 *      fixes the specified PROGDETAILS for
     672 *      command files in the executable part
     673 *      by inserting /C XXX into the parameters
     674 *      and setting the executable according
     675 *      to an environment variable.
     676 *
     677 *@@added V0.9.6 (2000-10-16) [umoeller]
     678 *@@changed V0.9.7 (2001-01-15) [umoeller]: now using XSTRING
     679 *@@changed V0.9.12 (2001-05-27) [umoeller]: moved from winh.c to apps.c
     680 */
     681
     682VOID CallBatchCorrectly(PPROGDETAILS pProgDetails,
     683                        PXSTRING pstrParams,        // in/out: modified parameters (reallocated)
     684                        const char *pcszEnvVar,     // in: env var spec'g command proc
     685                                                    // (e.g. "OS2_SHELL"); can be NULL
     686                        const char *pcszDefProc)    // in: def't command proc (e.g. "CMD.EXE")
     687{
     688    // XXX.CMD file as executable:
     689    // fix args to /C XXX.CMD
     690
     691    PSZ     pszOldParams = NULL;
     692    ULONG   ulOldParamsLength = pstrParams->ulLength;
     693    if (ulOldParamsLength)
     694        // we have parameters already:
     695        // make a backup... we'll append that later
     696        pszOldParams = strdup(pstrParams->psz);
     697
     698    // set new params to "/C filename.cmd"
     699    xstrcpy(pstrParams, "/C ", 0);
     700    xstrcat(pstrParams,
     701            pProgDetails->pszExecutable,
     702            0);
     703
     704    if (pszOldParams)
     705    {
     706        // .cmd had params:
     707        // append space and old params
     708        xstrcatc(pstrParams, ' ');
     709        xstrcat(pstrParams,
     710                pszOldParams,
     711                ulOldParamsLength);
     712        free(pszOldParams);
     713    }
     714
     715    // set executable to $(OS2_SHELL)
     716    pProgDetails->pszExecutable = NULL;
     717    if (pcszEnvVar)
     718        pProgDetails->pszExecutable = getenv(pcszEnvVar);
     719    if (!pProgDetails->pszExecutable)
     720        pProgDetails->pszExecutable = (PSZ)pcszDefProc;
     721                // should be on PATH
    659722}
    660723
Note: See TracChangeset for help on using the changeset viewer.