Changeset 531 for trunk/src/gmake/kbuild.c
- Timestamp:
- Sep 18, 2006, 1:49:49 AM (19 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/src/gmake/kbuild.c
r530 r531 51 51 kbuild_get_variable(const char *pszName) 52 52 { 53 #ifndef NDEBUG 54 unsigned i; 55 #endif 53 56 struct variable *pVar = lookup_variable(pszName, strlen(pszName)); 54 57 if (!pVar) … … 56 59 if (pVar->recursive) 57 60 fatal(NILF, _("variable `%s' is defined as `recursive' instead of `simple'!"), pszName); 58 pVar->value_length = strlen(pVar->value); 61 #ifndef NDEBUG 62 i = strlen(pVar->value); 63 if (i != pVar->value_length) 64 { 65 printf("%d != %d %s\n", pVar->value_length, i, pVar->name); 66 __asm int 3; 67 } 68 #endif 59 69 return pVar; 60 70 } … … 70 80 kbuild_get_recursive_variable(const char *pszName) 71 81 { 82 #ifndef NDEBUG 83 unsigned i; 84 #endif 72 85 struct variable *pVar = lookup_variable(pszName, strlen(pszName)); 73 86 if (!pVar) 74 87 fatal(NILF, _("variable `%s' isn't defined!"), pszName); 75 pVar->value_length = strlen(pVar->value); 88 #ifndef NDEBUG 89 i = strlen(pVar->value); 90 if (i != pVar->value_length) 91 { 92 printf("%d != %d %s\n", pVar->value_length, i, pVar->name); 93 __asm int 3; 94 } 95 #endif 76 96 return pVar; 77 97 } … … 90 110 struct variable *pVar = lookup_variable(pszName, strlen(pszName)); 91 111 if (pVar) 92 pVar->value_length = strlen(pVar->value); 112 { 113 #ifndef NDEBUG 114 unsigned i = strlen(pVar->value); 115 if (i != pVar->value_length) 116 { 117 printf("%d != %d %s\n", pVar->value_length, i, pVar->name); 118 __asm int 3; 119 } 120 #endif 121 } 93 122 return pVar; 94 123 } … … 230 259 *pszEnd = '\0'; 231 260 if (!strchr(pszEnd, '$')) 232 pVar = define_variable(pszVarName, strlen(pszVarName), psz, o_file, 0 /* !recursive */); 261 pVar = define_variable_vl(pszVarName, strlen(pszVarName), psz, pszEnd - psz, 262 1 /* duplicate */, o_file, 0 /* !recursive */); 233 263 else 234 264 { … … 244 274 { 245 275 *pszExpEnd = '\0'; 246 pVar = define_variable(pszVarName, strlen(pszVarName), pszExp, o_file, 0 /* !recursive */); 276 pVar = define_variable_vl(pszVarName, strlen(pszVarName), pszExp, 277 pszExpEnd - pszExp, 1 /* duplicate */, 278 o_file, 0 /* !recursive */); 247 279 } 248 280 else … … 362 394 + pszSrcEnd - pszSrc 363 395 + 1; 364 psz = pszResult = alloca(cch);396 psz = pszResult = xmalloc(cch); 365 397 366 398 memcpy(psz, pPathTarget->value, pPathTarget->value_length); psz += pPathTarget->value_length; … … 374 406 * Define the variable in the current set and return it. 375 407 */ 376 return define_variable(pszVarName, strlen(pszVarName), pszResult, o_file, 0 /* !recursive */); 408 return define_variable_vl(pszVarName, strlen(pszVarName), pszResult, cch - 1, 409 0 /* use pszResult */, o_file, 0 /* !recursive */); 377 410 } 378 411 … … 440 473 *pszEnd = '\0'; 441 474 if (!strchr(pszEnd, '$')) 442 pVar = define_variable(pszVarName, strlen(pszVarName), psz, o_file, 0 /* !recursive */); 475 pVar = define_variable_vl(pszVarName, strlen(pszVarName), psz, pszEnd - psz, 476 1 /* duplicate */, o_file, 0 /* !recursive */); 443 477 else 444 478 { … … 454 488 { 455 489 *pszExpEnd = '\0'; 456 pVar = define_variable(pszVarName, strlen(pszVarName), pszExp, o_file, 0 /* !recursive */); 490 pVar = define_variable_vl(pszVarName, strlen(pszVarName), pszExp, 491 pszExpEnd - pszExp, 1 /* duplicate */, 492 o_file, 0 /* !recursive */); 457 493 } 458 494 else … … 954 990 free(paVars[iVar].pszExp); 955 991 } 956 psz[-(cchTotal != 0)] = '\0'; 957 958 pVar = define_variable(pszVarName, strlen(pszVarName), pszResult, o_file, 0 /* !recursive */); 959 free(pszResult); 992 if (psz != pszResult) 993 psz--; 994 *psz = '\0'; 995 cchTotal = psz - pszResult; 996 997 pVar = define_variable_vl(pszVarName, strlen(pszVarName), pszResult, cchTotal, 998 0 /* take pszResult */ , o_file, 0 /* !recursive */); 960 999 return pVar; 961 1000 } … … 1021 1060 memcpy(psz, pObjSuff->value, pObjSuff->value_length); psz += pObjSuff->value_length; 1022 1061 memcpy(psz, pDepSuff->value, pDepSuff->value_length + 1); 1023 *ppDep = define_variable ("dep", 3, pszResult, o_file, 0 /* !recursive */);1062 *ppDep = define_variable_vl("dep", 3, pszResult, cch - 1, 1 /*dup*/, o_file, 0 /* !recursive */); 1024 1063 1025 1064 /* … … 1027 1066 */ 1028 1067 *psz = '\0'; 1029 pObj = define_variable(pszVarName, strlen(pszVarName), pszResult, o_file, 0 /* !recursive */); 1068 pObj = define_variable_vl(pszVarName, strlen(pszVarName), pszResult, psz - pszResult, 1069 1/* dup */, o_file, 0 /* !recursive */); 1030 1070 1031 1071 /* … … 1077 1117 1078 1118 /* set global variable */ 1079 define_variable_ global(pszName, cch, pszResult, o_file, 0 /* !recursive */, NILF);1119 define_variable_vl_global(pszName, cch, pszResult, psz - pszResult, 1/*dup*/, o_file, 0 /* !recursive */, NILF); 1080 1120 1081 1121 /* … … 1092 1132 *psz = '\0'; 1093 1133 } 1094 *ppDirDep = define_variable ("dirdep", 6, pszResult, o_file, 0 /* !recursive */);1134 *ppDirDep = define_variable_vl("dirdep", 6, pszResult, psz - pszResult, 1/*dup*/, o_file, 0 /* !recursive */); 1095 1135 1096 1136 return pObj;
Note:
See TracChangeset
for help on using the changeset viewer.