Ignore:
Timestamp:
May 10, 2017, 12:55:51 PM (8 years ago)
Author:
bird
Message:

kmk_redirect,kmk_kSubmit: Added --append <var=value> and --prepend <var=value> options for modifying the environment (e.g. PATH).

File:
1 edited

Legend:

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

    r2959 r3039  
    11691169    fprintf(pOut,
    11701170            "usage: %s [-Z|--zap-env] [-E|--set <var=val>] [-U|--unset <var=val>]\n"
     1171            "           [-A|--append <var=val>] [-D|--prepend <var=val>]\n"
    11711172            "           [-C|--chdir <dir>] [--wcc-brain-damage] [--no-pch-caching]\n"
    11721173            "           [-3|--32-bit] [-6|--64-bit] [-v]\n"
     
    11821183            "  -U, --unset <var>\n"
    11831184            "    Removes an environment variable. Position dependent.\n"
     1185            "  -A, --append <var>=<value>\n"
     1186            "    Appends the given value to the environment variable.\n"
     1187            "  -D,--prepend <var>=<value>\n"
     1188            "    Prepends the given value to the environment variable.\n"
    11841189            "  -C, --chdir <dir>\n"
    11851190            "    Specifies the current directory for the program.  Relative paths\n"
     
    12961301                else if (strcmp(pszArg, "set") == 0)
    12971302                    chOpt = 'E';
     1303                else if (strcmp(pszArg, "append") == 0)
     1304                    chOpt = 'A';
     1305                else if (strcmp(pszArg, "prepend") == 0)
     1306                    chOpt = 'D';
    12981307                else if (strcmp(pszArg, "unset") == 0)
    12991308                    chOpt = 'U';
     
    13271336                switch (chOpt)
    13281337                {
     1338                    case 'A':
     1339                    case 'C':
    13291340                    case 'E':
    13301341                    case 'U':
    1331                     case 'C':
     1342                    case 'D':
    13321343                    case 'e':
    13331344                        if (*pszArg != '\0')
     
    13551366                    case 'E':
    13561367                        rcExit = kBuiltinOptEnvSet(&papszEnv, &cEnvVars, &cAllocatedEnvVars, cVerbosity, pszValue);
     1368                        pChild->environment = papszEnv;
     1369                        if (rcExit == 0)
     1370                            break;
     1371                        return rcExit;
     1372
     1373                    case 'A':
     1374                        rcExit = kBuiltinOptEnvAppend(&papszEnv, &cEnvVars, &cAllocatedEnvVars, cVerbosity, pszValue);
     1375                        pChild->environment = papszEnv;
     1376                        if (rcExit == 0)
     1377                            break;
     1378                        return rcExit;
     1379
     1380                    case 'D':
     1381                        rcExit = kBuiltinOptEnvPrepend(&papszEnv, &cEnvVars, &cAllocatedEnvVars, cVerbosity, pszValue);
    13571382                        pChild->environment = papszEnv;
    13581383                        if (rcExit == 0)
Note: See TracChangeset for help on using the changeset viewer.