VirtualBox

Changeset 1527 in kBuild


Ignore:
Timestamp:
Apr 13, 2008 2:20:41 AM (17 years ago)
Author:
bird
Message:

Intercept BEGINLIBPATH, ENDLIBPATH and LIBPATHSTRICT on OS/2. Print revision number in the version info.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/kmkbuiltin/redirect.c

    r1308 r1527  
    11/* $Id$ */
    22/** @file
    3  *
    4  * kmk_redirect - Do simple program <-> file redirection.
    5  *
    6  * Copyright (c) 2007 knut st. osmundsen <[email protected]>
    7  *
     3 * kmk_redirect - Do simple program <-> file redirection (++).
     4 */
     5
     6/*
     7 * Copyright (c) 2007-2008 knut st. osmundsen <[email protected]>
    88 *
    99 * This file is part of kBuild.
     
    4242#endif
    4343
     44#ifdef __OS2__
     45# define INCL_BASE
     46# include <os2.h>
     47# ifndef LIBPATHSTRICT
     48#  define LIBPATHSTRICT 3
     49# endif
     50#endif
    4451
    4552
     
    125132            if (*psz == 'V')
    126133            {
    127                 printf("kmk_redirect - kBuild version %d.%d.%d\n"
    128                        "Copyright (C) 2007 Knut St. Osmundsen\n",
    129                        KBUILD_VERSION_MAJOR, KBUILD_VERSION_MINOR, KBUILD_VERSION_PATCH);
     134                printf("kmk_redirect - kBuild version %d.%d.%d (r%u)\n"
     135                       "Copyright (C) 2007-2008 Knut St. Osmundsen\n",
     136                       KBUILD_VERSION_MAJOR, KBUILD_VERSION_MINOR, KBUILD_VERSION_PATCH,
     137                       KBUILD_SVN_REV);
    130138                return 0;
    131139            }
     
    148156                    psz = argv[++i];
    149157                }
     158#ifdef __OS2__
     159                if (    !strncmp(psz, "BEGINLIBPATH=",  sizeof("BEGINLIBPATH=") - 1)
     160                    ||  !strncmp(psz, "ENDLIBPATH=",    sizeof("ENDLIBPATH=") - 1)
     161                    ||  !strncmp(psz, "LIBPATHSTRICT=", sizeof("LIBPATHSTRICT=") - 1))
     162                {
     163                    ULONG ulVar = *psz == 'B' ? BEGINLIBPATH
     164                                : *psz == 'E' ? ENDLIBPATH
     165                                :               LIBPATHSTRICT;
     166                    const char *pszVal = strchr(psz, '=') + 1;
     167                    APIRET rc = DosSetExtLIBPATH(pszVal, ulVar);
     168                    if (rc)
     169                    {
     170                        fprintf(pStdErr, "%s: error: DosSetExtLibPath(\"%s\", %.*s (%ul)): %ul\n",
     171                                argv[0], pszVal, pszVal - psz - 1, psz, ulVar, rc);
     172                        return 1;
     173                    }
     174                }
     175                else
     176#endif /* __OS2__ */
    150177                if (putenv(psz))
    151178                {
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette