Changeset 35 for trunk/src/kmk/cond.c


Ignore:
Timestamp:
Mar 18, 2003, 4:58:49 AM (22 years ago)
Author:
bird
Message:

emx is kind of working again...

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/kmk/cond.c

    r25 r35  
    236236            Buf_AddBytes(buf, strlen(cp2), (Byte *)cp2);
    237237            if (doFree) {
    238                 free(cp2);
     238                efree(cp2);
    239239            }
    240240            cp += len;
     
    383383    if (path != (char *)NULL) {
    384384        result = TRUE;
    385         free(path);
     385        efree(path);
    386386    } else {
    387387        result = FALSE;
     
    529529                t = EndOfFile;
    530530                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
    531544            case '$': {
    532545                char    *lhs;
     
    535548                int     varSpecLen;
    536549                Boolean doFree;
     550                #ifdef NMAKE
     551                Boolean fQuoted = (*condExpr == '"');
     552                if (fQuoted)
     553                    condExpr++;
     554                #endif
    537555
    538556                /*
     
    542560                t = Err;
    543561                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
    544569                if (lhs == var_Error) {
    545570                    /*
     
    549574                    return(Err);
    550575                }
     576                #endif
    551577                condExpr += varSpecLen;
    552578
     579                #ifdef NMAKE
     580                if (    (fQuoted && *condExpr != '"')
     581                    ||  (!fQuoted && !isspace((unsigned char) *condExpr) && strchr("!=><", *condExpr) == NULL)
     582                    )
     583                #else
    553584                if (!isspace((unsigned char) *condExpr) &&
    554                     strchr("!=><", *condExpr) == NULL) {
     585                    strchr("!=><", *condExpr) == NULL)
     586                #endif
     587                {
    555588                    Buffer buf;
    556589                    char *cp;
     
    562595
    563596                    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
    568604                        Buf_AddByte(buf, (Byte)*condExpr);
    569605
     
    578614                 * Skip whitespace to get to the operator
    579615                 */
     616                #ifdef NMAKE
     617                if (fQuoted && *condExpr == '"')
     618                    condExpr++;
     619                #endif
    580620                while (isspace((unsigned char) *condExpr))
    581621                    condExpr++;
     
    653693                                Buf_AddBytes(buf, strlen(cp2), (Byte *)cp2);
    654694                                if (freeIt) {
    655                                     free(cp2);
     695                                    efree(cp2);
    656696                                }
    657697                                cp += len - 1;
     
    682722                        t = strcmp(lhs, string) ? True : False;
    683723                    }
    684                     free(string);
     724                    efree(string);
    685725                    if (rhs == condExpr) {
    686726                        if (!qt && *cp == ')')
     
    709749                            if (*CondCvtArg(string, &right) != '\0') {
    710750                                if (freeIt)
    711                                     free(string);
     751                                    efree(string);
    712752                                goto do_string_compare;
    713753                            }
    714754                            if (freeIt)
    715                                 free(string);
     755                                efree(string);
    716756                            if (rhs == condExpr)
    717757                                condExpr += len;
     
    771811error:
    772812                if (doFree)
    773                     free(lhs);
     813                    efree(lhs);
    774814                break;
    775815            }
     
    851891                        }
    852892                        if (doFree) {
    853                             free(val);
     893                            efree(val);
    854894                        }
    855895                        /*
     
    898938                     (invert ? False : True) :
    899939                     (invert ? True : False));
    900                 free(arg);
     940                efree(arg);
    901941                break;
    902942            }
Note: See TracChangeset for help on using the changeset viewer.