Ignore:
Timestamp:
Mar 2, 2001, 1:48:41 PM (25 years ago)
Author:
bird
Message:

Fixed CL compiler bugs.
And new toolkit boog.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/win32k/clfix.c

    r4580 r5283  
    1 /* $Id: clfix.c,v 1.2 2000-11-09 20:42:43 bird Exp $
     1/* $Id: clfix.c,v 1.3 2001-03-02 12:48:41 bird Exp $
    22 *
    33 * A wrapper program for cl.exe fix will try fix some of the problems
     
    2828{
    2929    static char     szArgBuffer[32768];
     30        static char             szzEnv[4096];
     31        char *                  pszEnv = &szzEnv[0];
    3032    RESULTCODES     resc;
    3133    int             argi;
     
    3436    APIRET          rc;
    3537
    36 
     38       
    3739    /*
    3840     * Check that we have cl.exe at least passed in.
     
    5052    }
    5153
     54        /*
     55         * Blow away extra libpaths.
     56         */
     57        DosSetExtLIBPATH("", BEGIN_LIBPATH);
     58        DosSetExtLIBPATH("", END_LIBPATH);
     59
    5260
    5361    /*
     
    5967
    6068
    61     /* The other arguments. */
     69    /*
     70     * The other arguments.
     71         *              The -I arguments are put into the environment variable INCLUDE.
     72     */
     73        strcpy(pszEnv, "INCLUDE=");
     74    pszEnv += strlen(pszEnv);
    6275    if (argc > 2)
    6376    {
     
    6578        while (argi < argc)
    6679        {
    67             strcpy(psz, argv[argi]);
    68             psz += strlen(psz);
    69             *psz++ = ' ';
    70             argi++;
     80            if (   (argv[argi][0] == '-' || argv[argi][0] == '/')
     81                && (argv[argi][1] == 'I' || argv[argi][1] == 'i'))
     82            {
     83                strcpy(pszEnv, &argv[argi][2]);
     84                pszEnv += strlen(pszEnv);
     85                *pszEnv++ = ';';
     86                argi++;
     87            }
     88                        else
     89            {
     90                strcpy(psz, argv[argi]);
     91                psz += strlen(psz);
     92                *psz++ = ' ';
     93                argi++;
     94            }
    7195        }
    7296        psz[-1] = '\0';
     
    7498    *psz = '\0';
    7599
     100        printf("exe: %s\n", szArgBuffer);
     101        printf("arg: %s\n", szArgBuffer + strlen(szArgBuffer)+1);
     102        printf("env: %s\n", szzEnv);
    76103
    77104    /*
     
    91118    if (rc)
    92119        printf("clfix: DosDupHandle failed with rc=%d\n\n", rc);
    93 
     120                                                         
    94121
    95122    /*
     
    99126     *  this will solve the problems.
    100127     */
    101     if (DosExecPgm(NULL, 0, EXEC_SYNC, szArgBuffer, "\0\0", &resc, szArgBuffer) != NO_ERROR)
     128    if (DosExecPgm(NULL, 0, EXEC_SYNC, szArgBuffer, &szzEnv[0], &resc, szArgBuffer) != NO_ERROR)
    102129    {
    103130        /*complain*/
Note: See TracChangeset for help on using the changeset viewer.