- Timestamp:
- Mar 16, 2011, 2:07:03 AM (14 years ago)
- Location:
- trunk/libc/src/kNIX
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/libc/src/kNIX/b_initterm.c
r3642 r3696 74 74 */ 75 75 76 77 if (!rc)78 rc = __libc_back_fsInit();79 76 if (!rc) 80 77 { 81 78 /* 82 * Init file handles. 79 * Setup environment (org_environ and _STD(environ)) before 80 * fsInit and other uses them. 83 81 */ 84 rc = __libc_ fhInit();82 rc = __libc_back_envInit(); 85 83 if (!rc) 86 84 { 87 /* 88 * Init signals85 /* 86 * Initialize the file system bits. 89 87 */ 90 rc = __libc_back_ signalInit();88 rc = __libc_back_fsInit(); 91 89 if (!rc) 92 90 { 93 91 /* 94 * Setup environment (org_environ and _STD(environ))92 * Init file handles. 95 93 */ 96 rc = __libc_ back_envInit();94 rc = __libc_fhInit(); 97 95 if (!rc) 98 96 { 99 /* more? */ 100 LIBCLOG_RETURN_INT(0); 97 /* 98 * Init signals 99 */ 100 rc = __libc_back_signalInit(); 101 if (!rc) 102 { 103 /* more? */ 104 LIBCLOG_RETURN_INT(0); 105 //__libc_back_signalTerm(); 106 } 107 108 //__libc_fhTerm(); 101 109 } 102 //__libc_back_signalTerm(); 110 111 //__libc_back_fsTerm(); 103 112 } 104 113 105 //__libc_ fhTerm();114 //__libc_back_envTerm(); 106 115 } 107 108 //__libc_back_fsTerm();109 116 } 110 117 __libc_back_termOS(hmod, pvOS, fFlags); -
trunk/libc/src/kNIX/os2/fs-os2.c
r3687 r3696 194 194 static _fmutex g_mtxFSInfoVolumes = _FMUTEX_INITIALIZER_EX(_FMC_MUST_COMPLETE, "mtxFSInfoVolumes"); 195 195 196 /** Array of Unix EA settings overrides for all possible OS/2 volumes. 197 * Tristate: -1 force off, 0 default, 1 force on. 198 */ 199 static char g_achUnixEAsOverrides['Z' - 'A' + 1]; 200 196 201 197 202 /******************************************************************************* … … 211 216 { 212 217 LIBCLOG_ENTER("\n"); 218 /** @todo getenv doesn't work at this point. :( */ 213 219 214 220 /* … … 298 304 else 299 305 { 300 LIBC_ASSERTM_FAILED("DosQueryModuleName(exe) failed: hmte=%lx rc=% d\n", pPib->pib_hmte,rc);306 LIBC_ASSERTM_FAILED("DosQueryModuleName(exe) failed: hmte=%lx rc=%i\n", pPib->pib_hmte, (int)rc); 301 307 gaMiscRewriteRules[0].cchTo = 1; 302 308 gaMiscRewriteRules[0].pszTo = "/"; … … 380 386 } 381 387 DosFreeModule(hmod); 388 389 /* 390 * Look for the UNIX EAs control environment variable. 391 * The value form: !a, c, !d-e 392 */ 393 const char *pszUnixEAs = getenv("LIBC_UNIX_EAS"); 394 if (pszUnixEAs) 395 { 396 while (*pszUnixEAs) 397 { 398 char chDrv; 399 while ((chDrv = *pszUnixEAs) == ',' || chDrv == ';' || chDrv == ' ' || chDrv == '\t') 400 pszUnixEAs++; 401 if (!chDrv) 402 break; 403 404 /* check for the operator. */ 405 int fOverride = 1; 406 if (chDrv == '!') 407 { 408 fOverride = -1; 409 chDrv = *++pszUnixEAs; 410 } 411 412 /* check for the first drive letter, upper case it. */ 413 if (chDrv >= 'a' && chDrv <= 'z') 414 chDrv -= 'a' - 'A'; 415 if (chDrv < 'A' || chDrv > 'Z') 416 LIBCLOG_ERROR_RETURN_MSG(-1, "Bad LIBC_UNIX_EAS value; ch=%c\n", chDrv); 417 pszUnixEAs++; 418 if (*pszUnixEAs == ':') 419 pszUnixEAs++; 420 421 /* check if it is a range spec. */ 422 char chDrv2; 423 while ((chDrv2 = *pszUnixEAs) == ' ' || chDrv2 == '\t') 424 pszUnixEAs++; 425 if (chDrv2 == '-') 426 { 427 pszUnixEAs++; 428 while ((chDrv2 = *pszUnixEAs) == ' ' || chDrv2 == '\t') 429 pszUnixEAs++; 430 431 if (chDrv >= 'a' && chDrv <= 'z') 432 chDrv -= 'a' - 'A'; 433 if (chDrv < 'A' || chDrv > 'Z') 434 LIBCLOG_ERROR_RETURN_MSG(-1, "Bad LIBC_UNIX_EAS value; ch=%c\n", chDrv2); 435 pszUnixEAs++; 436 if (*pszUnixEAs == ':') 437 pszUnixEAs++; 438 } 439 else 440 chDrv2 = chDrv; 441 442 /* Be nice and swap the values if they are not in ascending order. */ 443 if (chDrv2 < chDrv) 444 { 445 char chDrvTmp = chDrv2; 446 chDrv2 = chDrv; 447 chDrv = chDrvTmp; 448 } 449 450 /* apply them. */ 451 do 452 g_achUnixEAsOverrides[chDrv - 'A'] = fOverride; 453 while (chDrv++ < chDrv2); 454 } 455 } 456 382 457 LIBCLOG_RETURN_INT(0); 383 458 } … … 525 600 /*else if (!strcmp(pFsInfo->szName, "FAT32")) 526 601 { } */ 602 603 /* check the Unix EAs overrides. */ 604 if (g_achUnixEAsOverrides[minor(Dev) - 'A'] != 0) 605 pFsInfo->fUnixEAs = g_achUnixEAsOverrides[minor(Dev) - 'A'] > 0; 527 606 528 607 LIBCLOG_MSG2("fsInfoObjUpdate: dev:%#x mp:%s fsd:%s fZeroNewBytes=%d fUnixEAs=%d\n",
Note:
See TracChangeset
for help on using the changeset viewer.