Changeset 3739 for trunk/tools
- Timestamp:
- Jun 21, 2000, 8:42:17 PM (25 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/tools/DailyBuild/odin32env.cmd
r3667 r3739 1 /* $Id: odin32env.cmd,v 1. 7 2000-06-07 22:15:28bird Exp $1 /* $Id: odin32env.cmd,v 1.8 2000-06-21 18:42:17 bird Exp $ 2 2 * 3 3 * Sets the build environment. … … 19 19 call EnvVar_Set 0, 'HOME', 'd:\knut\home' 20 20 call EnvVar_Set 0, 'USER', 'bird' 21 21 22 22 23 /* … … 88 89 call EnvVar_AddFront fRM, 'INFOPATH', sEMXForw'/info' 89 90 call EnvVar_Set fRM, 'EMXBOOK', 'emxdev.inf+emxlib.inf+emxgnu.inf+emxbsd.inf' 90 call EnvVar_AddFront fRM, 'HELPNDX', 'emxbook.ndx', '+' 91 call EnvVar_AddFront fRM, 'HELPNDX', 'emxbook.ndx', '+', 1 91 92 call EnvVar_Set fRM, 'EMXOPT', '-c -n -h1024' 92 93 if EnvVar_Get('TERM') = '' then do … … 210 211 call EnvVar_Set fRM, 'sombase', sTkMain'\SOM' 211 212 call EnvVar_Set fRM, 'somruntime', sTkMain'\SOM\COMMON' 213 call EnvVar_AddEnd fRM, 'helpndx', 'EPMKWHLP.NDX+', '+', 1 212 214 213 215 call EnvVar_Set fRM, 'cpref', 'CP1.INF+CP2.INF+CP3.INF' … … 269 271 call EnvVar_AddEnd fRM, 'lib', sTkMain'\SPEECH\LIB;' 270 272 call EnvVar_AddFront fRM, 'lib', sTkMain'\lib;' 271 call EnvVar_Add Front fRM, 'helpndx', 'EPMKWHLP.NDX+', '+'273 call EnvVar_AddEnd fRM, 'helpndx', 'EPMKWHLP.NDX', '+', 1 272 274 call EnvVar_AddFront fRM, 'ipfc', sTkMain'\ipfc;' 273 275 call EnvVar_Set fRM, 'LANG', 'en_us' … … 337 339 338 340 /* FIXME THESE USES '+' AS SEPERATOR NOT ';'!!! */ 339 call EnvVar_AddFront fRM, 'helpndx', ' EPMKWHLP.NDX+CPP.NDX+CPPBRS.NDX', '+'341 call EnvVar_AddFront fRM, 'helpndx', 'CPP.NDX+CPPBRS.NDX', '+',1 340 342 call EnvVar_AddFront fRM, 'ipf_keys', 'SHOWNAV' 341 343 return 0; … … 398 400 */ 399 401 EnvVar_addFront: procedure 400 parse arg fRM, sEnvVar, sToAdd, sSeparator 401 402 /* sets default separatorif not specified. */402 parse arg fRM, sEnvVar, sToAdd, sSeparator, fNoEnd 403 404 /* Sets default separator and fNoEnd if not specified. */ 403 405 if (sSeparator = '') then sSeparator = ';'; 404 405 /* checks that sToAdd ends with an ';'. Adds one if not. */ 406 if (fNoEnd = '') then fNoEnd = 0; 407 408 /* Add evt. missing separator at end. */ 406 409 if (substr(sToAdd, length(sToAdd), 1) <> sSeparator) then 407 410 sToAdd = sToAdd || sSeparator; 408 411 409 /* check and evt. remove ';'at start of sToAdd */410 if (substr(sToAdd, 1, 1) = ';') then412 /* Check and evt. remove separator at start of sToAdd */ 413 if (substr(sToAdd, 1, 1) = cSeparator) then 411 414 sToAdd = substr(sToAdd, 2); 412 415 413 /* loop thru sToAdd */416 /* Loop thru sToAdd */ 414 417 rc = 0; 415 418 i = length(sToAdd); 416 419 do while i > 1 & rc = 0 417 420 j = lastpos(sSeparator, sToAdd, i-1); 418 rc = EnvVar_AddFront2(fRM, sEnvVar, substr(sToAdd, j+1, i - j), sSeparator);421 rc = _EnvVar_AddFront2(fRM, sEnvVar, substr(sToAdd, j+1, i - j), sSeparator, fNoEnd); 419 422 i = j; 420 423 end … … 428 431 * is at the end and don't end with a ';'. 429 432 */ 430 EnvVar_AddFront2: procedure 431 parse arg fRM, sEnvVar, sToAdd, sSeparator 432 433 /* sets default separator if not specified. */ 434 if (sSeparator = '') then sSeparator = ';'; 435 436 /* checks that sToAdd ends with a separator. Adds one if not. */ 433 _EnvVar_AddFront2: procedure 434 parse arg fRM, sEnvVar, sToAdd, sSeparator, fNoEnd 435 436 /* Add evt. missing separator at end. */ 437 437 if (substr(sToAdd, length(sToAdd), 1) <> sSeparator) then 438 438 sToAdd = sToAdd || sSeparator; 439 439 440 /* check and evt. remove the separator at start of sToAdd */440 /* Check and evt. remove the separator at start of sToAdd */ 441 441 if (substr(sToAdd, 1, 1) = sSeparator) then 442 442 sToAdd = substr(sToAdd, 2); 443 443 444 /* Get original variable value */ 445 sOrgEnvVar = EnvVar_Get(sEnvVar); 446 447 /* Remove previously sToAdd if exists. (Changing sOrgEnvVar). */ 448 i = pos(translate(sToAdd), translate(sOrgEnvVar)); 449 if (i > 0) then 450 sOrgEnvVar = substr(sOrgEnvVar, 1, i-1) || substr(sOrgEnvVar, i + length(sToAdd)); 451 452 /* set environment */ 444 /* Get original variable without sToAdd. */ 445 sOrgEnvVar = _EnvVar_RemoveFrom(EnvVar_Get(sEnvVar),, 446 sToAdd, sSeparator, fNoEnd); 447 448 /* If only removing - nothing more to do */ 453 449 if (fRM) then 454 450 return EnvVar_Set(0, sEnvVar, sOrgEnvVar); 455 return EnvVar_Set(0, sEnvVar, sToAdd||sOrgEnvVar); 451 452 /* Create new value */ 453 sNewValue = sToAdd || sOrgEnvVar; 454 455 /* Remove or add separator if necessary */ 456 if (fNoEnd & substr(sNewValue, length(sNewValue), 1) = sSeparator) then 457 sNewValue = substr(sNewValue, 1, length(sNewValue) - 1); 458 if (\fNoEnd & substr(sNewValue, length(sNewValue), 1) <> sSeparator) then 459 sNewValue = sNewValue || sSeparator; 460 461 /* Set environment */ 462 return EnvVar_Set(0, sEnvVar, sNewValue); 456 463 457 464 … … 464 471 */ 465 472 EnvVar_addEnd: procedure 466 parse arg fRM, sEnvVar, sToAdd, sSeparator 467 468 /* sets default separatorif not specified. */473 parse arg fRM, sEnvVar, sToAdd, sSeparator, fNoEnd 474 475 /* Sets default separator and fNoEnd if not specified. */ 469 476 if (sSeparator = '') then sSeparator = ';'; 470 471 /* checks that sToAdd ends with a separator. Adds one if not. */ 477 if (fNoEnd = '') then fNoEnd = 0; 478 479 /* Add evt. missing separator at end. */ 472 480 if (substr(sToAdd, length(sToAdd), 1) <> sSeparator) then 473 481 sToAdd = sToAdd || sSeparator; 474 482 475 /* check and evt. remove ';'at start of sToAdd */483 /* Check and evt. remove separator at start of sToAdd */ 476 484 if (substr(sToAdd, 1, 1) = sSeparator) then 477 485 sToAdd = substr(sToAdd, 2); 478 486 479 /* loop thru sToAdd */487 /* Loop thru sToAdd */ 480 488 rc = 0; 481 489 i = length(sToAdd); 482 490 do while i > 1 & rc = 0 483 491 j = lastpos(sSeparator, sToAdd, i-1); 484 rc = EnvVar_AddEnd2(fRM, sEnvVar, substr(sToAdd, j+1, i - j), sSeparator);492 rc = _EnvVar_AddEnd2(fRM, sEnvVar, substr(sToAdd, j+1, i - j), sSeparator, fNoEnd); 485 493 i = j; 486 494 end … … 494 502 * is at the end and don't end with a ';'. 495 503 */ 496 EnvVar_AddEnd2: procedure 497 parse arg fRM, sEnvVar, sToAdd, sSeparator 498 499 /* sets default separator if not specified. */ 500 if (sSeparator = '') then sSeparator = ';'; 501 502 /* checks that sToAdd ends with a separator. Adds one if not. */ 503 if (substr(sToAdd, length(sToAdd), 1) <> sSeparator) then 504 sToAdd = sToAdd || sSeparator; 505 506 /* check and evt. remove separator at start of sToAdd */ 504 _EnvVar_AddEnd2: procedure 505 parse arg fRM, sEnvVar, sToAdd, sSeparator, fNoEnd 506 507 /* Check and evt. remove separator at start of sToAdd */ 507 508 if (substr(sToAdd, 1, 1) = sSeparator) then 508 509 sToAdd = substr(sToAdd, 2); 509 510 510 /* Get original variable value */ 511 sOrgEnvVar = EnvVar_Get(sEnvVar); 512 513 /* Remove previously sToAdd if exists. (Changing sOrgEnvVar). */ 514 i = pos(translate(sToAdd), translate(sOrgEnvVar)); 515 if (i > 0) then 516 sOrgEnvVar = substr(sOrgEnvVar, 1, i-1) || substr(sOrgEnvVar, i + length(sToAdd)); 517 518 /* checks that sOrgEnvVar ends with a separator. Adds one if not. */ 519 if (substr(sOrgEnvVar, length(sOrgEnvVar), 1) <> sSeparator) then 520 sOrgEnvVar = sOrgEnvVar || sSeparator; 521 522 /* set environment */ 523 if fRM then return EnvVar_Set(0, sEnvVar, sOrgEnvVar); 511 /* Get original variable without sToAdd. */ 512 sOrgEnvVar = _EnvVar_RemoveFrom(EnvVar_Get(sEnvVar),, 513 sToAdd, sSeparator, fNoEnd); 514 515 /* If we're only to remove the sToAdd value, we're finised now. */ 516 if (fRM) then 517 reutrn EnvVar_Set(0, sEnvVar, sOrgEnvVar); 518 519 /* fNoEnd: remove separator at end (if any) and remove previously sToAdd. */ 520 if (fNoEnd & substr(sToAdd, length(sToAdd), 1) = sSeparator) then 521 sToAdd = substr(sToAdd, 1, length(sToAdd) - 1); 522 523 /* Add separator to sOrgEnvVar if fNoEnd and sOrgEnvVar is not empty */ 524 if (fNoEnd & length(sOrgEnvVar) > 0) then 525 return EnvVar_Set(0, sEnvVar, sOrgEnvVar||sSeparator||sToAdd); 524 526 return EnvVar_Set(0, sEnvVar, sOrgEnvVar||sToAdd); 527 528 529 /* 530 * Removes a value for a separated enviroment string. 531 */ 532 _EnvVar_RemoveFrom: procedure 533 parse arg sOrgValue, sValue, sSeparator, fNoEnd 534 535 /* test for empty org value */ 536 if (sOrgValue = '') then 537 return ''; 538 539 /* remove any separators in front or end of sValue. */ 540 if (substr(sValue, 1, 1) = sSeparator) then 541 sValue = substr(sValue, 2); 542 if (substr(sValue, length(sValue), 1) = sSeparator) then 543 sValue = substr(sValue, 1, length(sValue) - 1); 544 545 /* look for sValue */ 546 i = pos(translate(sValue), translate(sOrgValue)); 547 do while (i > 0) 548 cch = length(sValue); 549 fEnd = length(sOrgValue) <= cch + i; 550 551 /* check if ok */ 552 if (i <= 1) then fOkFront = 1; 553 else fOkFront = (substr(sOrgValue, i - 1, 1) = sSeparator); 554 if (fOkFront & (fEnd | substr(sOrgValue, i + cch, 1) = sSeparator)) then 555 do 556 /* addjust length / index to remove separators */ 557 if (i > 1) then 558 do 559 cch = cch + 1; 560 i = i - 1; 561 end 562 if (\fEnd & i = 1) then 563 cch = cch + 1; 564 565 /* create new sOrgValue */ 566 if (i > 1) then 567 sOrgValue = substr(sOrgValue, 1, i - 1) || substr(sOrgValue, i + cch); 568 else if (cch < length(sOrgValue)) then 569 sOrgValue = substr(sOrgValue, i + cch); 570 else 571 sOrgValue = ''; 572 end 573 else 574 i = i + 1; 575 576 /* more occurences? */ 577 j = i; 578 i = pos(translate(sValue), translate(sOrgValue), i); 579 end 580 581 /* remove any start separator */ 582 do while (length(sOrgValue) > 0) 583 if (substr(sOrgValue, 1, 1) <> sSeparator) then 584 leave 585 sOrgValue = substr(sOrgValue, 2); 586 end 587 588 /* Remove all separators at end */ 589 do while (length(sOrgValue) > 1) 590 if (substr(sOrgValue, length(sOrgValue), 1) <> sSeparator) then 591 leave; 592 sOrgValue = substr(sOrgValue, 1, length(sOrgValue) - 1); 593 end 594 595 /* Just in case fix for value with only separator. (paranoia) */ 596 if (length(sOrgValue) = 1 & sOrgValue = sSeparator) then 597 sOrgValue = ''; 598 599 /* Add end separator */ 600 if (length(sOrgValue) > 0 & \fNoEnd) then 601 sOrgValue = sOrgValue || sSeparator; 602 603 return sOrgValue; 525 604 526 605 … … 555 634 556 635 636
Note:
See TracChangeset
for help on using the changeset viewer.