Changeset 35 for trunk/src/kmk/cond.c
- Timestamp:
- Mar 18, 2003, 4:58:49 AM (22 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/kmk/cond.c
r25 r35 236 236 Buf_AddBytes(buf, strlen(cp2), (Byte *)cp2); 237 237 if (doFree) { 238 free(cp2);238 efree(cp2); 239 239 } 240 240 cp += len; … … 383 383 if (path != (char *)NULL) { 384 384 result = TRUE; 385 free(path);385 efree(path); 386 386 } else { 387 387 result = FALSE; … … 529 529 t = EndOfFile; 530 530 break; 531 532 #ifdef NMAKE 533 case '[': 534 //@todo execute this command!!! 535 t = False; 536 condExpr += strlen(condExpr); 537 break; 538 #endif 539 540 541 #ifdef NMAKE 542 case '"': 543 #endif 531 544 case '$': { 532 545 char *lhs; … … 535 548 int varSpecLen; 536 549 Boolean doFree; 550 #ifdef NMAKE 551 Boolean fQuoted = (*condExpr == '"'); 552 if (fQuoted) 553 condExpr++; 554 #endif 537 555 538 556 /* … … 542 560 t = Err; 543 561 lhs = Var_Parse(condExpr, VAR_CMD, doEval,&varSpecLen,&doFree); 562 #ifdef NMAKE 563 if (lhs == var_Error) 564 { 565 //@todo check if actually parsed correctly. 566 doFree = 0; 567 } 568 #else 544 569 if (lhs == var_Error) { 545 570 /* … … 549 574 return(Err); 550 575 } 576 #endif 551 577 condExpr += varSpecLen; 552 578 579 #ifdef NMAKE 580 if ( (fQuoted && *condExpr != '"') 581 || (!fQuoted && !isspace((unsigned char) *condExpr) && strchr("!=><", *condExpr) == NULL) 582 ) 583 #else 553 584 if (!isspace((unsigned char) *condExpr) && 554 strchr("!=><", *condExpr) == NULL) { 585 strchr("!=><", *condExpr) == NULL) 586 #endif 587 { 555 588 Buffer buf; 556 589 char *cp; … … 562 595 563 596 if (doFree) 564 free(lhs); 565 566 for (;*condExpr && !isspace((unsigned char) *condExpr); 567 condExpr++) 597 efree(lhs); 598 599 #ifdef NMAKE 600 for (;*condExpr && (fQuoted ? *condExpr != '"' : !isspace((unsigned char) *condExpr)); condExpr++) 601 #else 602 for (;*condExpr && !isspace((unsigned char) *condExpr); condExpr++) 603 #endif 568 604 Buf_AddByte(buf, (Byte)*condExpr); 569 605 … … 578 614 * Skip whitespace to get to the operator 579 615 */ 616 #ifdef NMAKE 617 if (fQuoted && *condExpr == '"') 618 condExpr++; 619 #endif 580 620 while (isspace((unsigned char) *condExpr)) 581 621 condExpr++; … … 653 693 Buf_AddBytes(buf, strlen(cp2), (Byte *)cp2); 654 694 if (freeIt) { 655 free(cp2);695 efree(cp2); 656 696 } 657 697 cp += len - 1; … … 682 722 t = strcmp(lhs, string) ? True : False; 683 723 } 684 free(string);724 efree(string); 685 725 if (rhs == condExpr) { 686 726 if (!qt && *cp == ')') … … 709 749 if (*CondCvtArg(string, &right) != '\0') { 710 750 if (freeIt) 711 free(string);751 efree(string); 712 752 goto do_string_compare; 713 753 } 714 754 if (freeIt) 715 free(string);755 efree(string); 716 756 if (rhs == condExpr) 717 757 condExpr += len; … … 771 811 error: 772 812 if (doFree) 773 free(lhs);813 efree(lhs); 774 814 break; 775 815 } … … 851 891 } 852 892 if (doFree) { 853 free(val);893 efree(val); 854 894 } 855 895 /* … … 898 938 (invert ? False : True) : 899 939 (invert ? True : False)); 900 free(arg);940 efree(arg); 901 941 break; 902 942 }
Note:
See TracChangeset
for help on using the changeset viewer.