Fossil SCM
Add the fossil_strdup() utility function and use it instead of strdup().
Commit
42f6e8bed71cf395ab4de471688c5eb6e351f68d
Parent
62d114ee12c7f40…
2 files changed
+3
-3
+13
-13
+3
-3
| --- src/cgi.c | ||
| +++ src/cgi.c | ||
| @@ -221,11 +221,11 @@ | ||
| 221 | 221 | MD5Final(digest,&ctx); |
| 222 | 222 | for(j=i=0; i<16; i++,j+=2){ |
| 223 | 223 | bprintf(&zETag[j],sizeof(zETag)-j,"%02x",(int)digest[i]); |
| 224 | 224 | } |
| 225 | 225 | blob_appendf(&extraHeader, "ETag: %s\r\n", zETag); |
| 226 | - return strdup(zETag); | |
| 226 | + return fossil_strdup(zETag); | |
| 227 | 227 | } |
| 228 | 228 | |
| 229 | 229 | /* |
| 230 | 230 | ** Do some cache control stuff. First, we generate an ETag and include it in |
| 231 | 231 | ** the response headers. Second, we do whatever is necessary to determine if |
| @@ -241,18 +241,18 @@ | ||
| 241 | 241 | /* FIXME: there's some gotchas wth cookies and some headers. */ |
| 242 | 242 | char *zETag = cgi_add_etag(blob_buffer(&cgiContent),blob_size(&cgiContent)); |
| 243 | 243 | char *zMatch = P("HTTP_IF_NONE_MATCH"); |
| 244 | 244 | |
| 245 | 245 | if( zETag!=0 && zMatch!=0 ) { |
| 246 | - char *zBuf = strdup(zMatch); | |
| 246 | + char *zBuf = fossil_strdup(zMatch); | |
| 247 | 247 | if( zBuf!=0 ){ |
| 248 | 248 | char *zTok = 0; |
| 249 | 249 | char *zPos; |
| 250 | 250 | for( zTok = strtok_r(zBuf, ",\"",&zPos); |
| 251 | 251 | zTok && fossil_stricmp(zTok,zETag); |
| 252 | 252 | zTok = strtok_r(0, ",\"",&zPos)){} |
| 253 | - free(zBuf); | |
| 253 | + fossil_free(zBuf); | |
| 254 | 254 | if(zTok) return 1; |
| 255 | 255 | } |
| 256 | 256 | } |
| 257 | 257 | |
| 258 | 258 | return 0; |
| 259 | 259 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -221,11 +221,11 @@ | |
| 221 | MD5Final(digest,&ctx); |
| 222 | for(j=i=0; i<16; i++,j+=2){ |
| 223 | bprintf(&zETag[j],sizeof(zETag)-j,"%02x",(int)digest[i]); |
| 224 | } |
| 225 | blob_appendf(&extraHeader, "ETag: %s\r\n", zETag); |
| 226 | return strdup(zETag); |
| 227 | } |
| 228 | |
| 229 | /* |
| 230 | ** Do some cache control stuff. First, we generate an ETag and include it in |
| 231 | ** the response headers. Second, we do whatever is necessary to determine if |
| @@ -241,18 +241,18 @@ | |
| 241 | /* FIXME: there's some gotchas wth cookies and some headers. */ |
| 242 | char *zETag = cgi_add_etag(blob_buffer(&cgiContent),blob_size(&cgiContent)); |
| 243 | char *zMatch = P("HTTP_IF_NONE_MATCH"); |
| 244 | |
| 245 | if( zETag!=0 && zMatch!=0 ) { |
| 246 | char *zBuf = strdup(zMatch); |
| 247 | if( zBuf!=0 ){ |
| 248 | char *zTok = 0; |
| 249 | char *zPos; |
| 250 | for( zTok = strtok_r(zBuf, ",\"",&zPos); |
| 251 | zTok && fossil_stricmp(zTok,zETag); |
| 252 | zTok = strtok_r(0, ",\"",&zPos)){} |
| 253 | free(zBuf); |
| 254 | if(zTok) return 1; |
| 255 | } |
| 256 | } |
| 257 | |
| 258 | return 0; |
| 259 |
| --- src/cgi.c | |
| +++ src/cgi.c | |
| @@ -221,11 +221,11 @@ | |
| 221 | MD5Final(digest,&ctx); |
| 222 | for(j=i=0; i<16; i++,j+=2){ |
| 223 | bprintf(&zETag[j],sizeof(zETag)-j,"%02x",(int)digest[i]); |
| 224 | } |
| 225 | blob_appendf(&extraHeader, "ETag: %s\r\n", zETag); |
| 226 | return fossil_strdup(zETag); |
| 227 | } |
| 228 | |
| 229 | /* |
| 230 | ** Do some cache control stuff. First, we generate an ETag and include it in |
| 231 | ** the response headers. Second, we do whatever is necessary to determine if |
| @@ -241,18 +241,18 @@ | |
| 241 | /* FIXME: there's some gotchas wth cookies and some headers. */ |
| 242 | char *zETag = cgi_add_etag(blob_buffer(&cgiContent),blob_size(&cgiContent)); |
| 243 | char *zMatch = P("HTTP_IF_NONE_MATCH"); |
| 244 | |
| 245 | if( zETag!=0 && zMatch!=0 ) { |
| 246 | char *zBuf = fossil_strdup(zMatch); |
| 247 | if( zBuf!=0 ){ |
| 248 | char *zTok = 0; |
| 249 | char *zPos; |
| 250 | for( zTok = strtok_r(zBuf, ",\"",&zPos); |
| 251 | zTok && fossil_stricmp(zTok,zETag); |
| 252 | zTok = strtok_r(0, ",\"",&zPos)){} |
| 253 | fossil_free(zBuf); |
| 254 | if(zTok) return 1; |
| 255 | } |
| 256 | } |
| 257 | |
| 258 | return 0; |
| 259 |
+13
-13
| --- src/import.c | ||
| +++ src/import.c | ||
| @@ -63,11 +63,11 @@ | ||
| 63 | 63 | } gg; |
| 64 | 64 | |
| 65 | 65 | /* |
| 66 | 66 | ** Duplicate a string. |
| 67 | 67 | */ |
| 68 | -static char *import_strdup(const char *zOrig){ | |
| 68 | +char *fossil_strdup(const char *zOrig){ | |
| 69 | 69 | char *z = 0; |
| 70 | 70 | if( zOrig ){ |
| 71 | 71 | int n = strlen(zOrig); |
| 72 | 72 | z = fossil_malloc( n+1 ); |
| 73 | 73 | memcpy(z, zOrig, n+1); |
| @@ -160,11 +160,11 @@ | ||
| 160 | 160 | &hash, rid, &hash |
| 161 | 161 | ); |
| 162 | 162 | } |
| 163 | 163 | if( saveUuid ){ |
| 164 | 164 | fossil_free(gg.zPrevCheckin); |
| 165 | - gg.zPrevCheckin = import_strdup(blob_str(&hash)); | |
| 165 | + gg.zPrevCheckin = fossil_strdup(blob_str(&hash)); | |
| 166 | 166 | } |
| 167 | 167 | blob_reset(&hash); |
| 168 | 168 | return rid; |
| 169 | 169 | } |
| 170 | 170 | |
| @@ -369,13 +369,13 @@ | ||
| 369 | 369 | p = manifest_get(rid, CFTYPE_MANIFEST); |
| 370 | 370 | if( p==0 ) return; |
| 371 | 371 | manifest_file_rewind(p); |
| 372 | 372 | while( (pOld = manifest_file_next(p, 0))!=0 ){ |
| 373 | 373 | pNew = import_add_file(); |
| 374 | - pNew->zName = import_strdup(pOld->zName); | |
| 374 | + pNew->zName = fossil_strdup(pOld->zName); | |
| 375 | 375 | pNew->isExe = pOld->zPerm && strstr(pOld->zPerm, "x")!=0; |
| 376 | - pNew->zUuid = import_strdup(pOld->zUuid); | |
| 376 | + pNew->zUuid = fossil_strdup(pOld->zUuid); | |
| 377 | 377 | pNew->isFrom = 1; |
| 378 | 378 | } |
| 379 | 379 | manifest_destroy(p); |
| 380 | 380 | } |
| 381 | 381 | |
| @@ -426,18 +426,18 @@ | ||
| 426 | 426 | gg.xFinish = finish_commit; |
| 427 | 427 | trim_newline(&zLine[7]); |
| 428 | 428 | z = &zLine[7]; |
| 429 | 429 | for(i=strlen(z)-1; i>=0 && z[i]!='/'; i--){} |
| 430 | 430 | if( z[i+1]!=0 ) z += i+1; |
| 431 | - gg.zBranch = import_strdup(z); | |
| 431 | + gg.zBranch = fossil_strdup(z); | |
| 432 | 432 | gg.fromLoaded = 0; |
| 433 | 433 | }else |
| 434 | 434 | if( memcmp(zLine, "tag ", 4)==0 ){ |
| 435 | 435 | gg.xFinish(); |
| 436 | 436 | gg.xFinish = finish_tag; |
| 437 | 437 | trim_newline(&zLine[4]); |
| 438 | - gg.zTag = import_strdup(&zLine[4]); | |
| 438 | + gg.zTag = fossil_strdup(&zLine[4]); | |
| 439 | 439 | }else |
| 440 | 440 | if( memcmp(zLine, "reset ", 4)==0 ){ |
| 441 | 441 | gg.xFinish(); |
| 442 | 442 | }else |
| 443 | 443 | if( memcmp(zLine, "checkpoint", 10)==0 ){ |
| @@ -477,11 +477,11 @@ | ||
| 477 | 477 | /* No-op */ |
| 478 | 478 | }else |
| 479 | 479 | if( memcmp(zLine, "mark ", 5)==0 ){ |
| 480 | 480 | trim_newline(&zLine[5]); |
| 481 | 481 | fossil_free(gg.zMark); |
| 482 | - gg.zMark = import_strdup(&zLine[5]); | |
| 482 | + gg.zMark = fossil_strdup(&zLine[5]); | |
| 483 | 483 | }else |
| 484 | 484 | if( memcmp(zLine, "tagger ", 7)==0 || memcmp(zLine, "committer ",10)==0 ){ |
| 485 | 485 | sqlite3_int64 secSince1970; |
| 486 | 486 | for(i=0; zLine[i] && zLine[i]!='<'; i++){} |
| 487 | 487 | if( zLine[i]==0 ) goto malformed_line; |
| @@ -488,11 +488,11 @@ | ||
| 488 | 488 | z = &zLine[i+1]; |
| 489 | 489 | for(i=i+1; zLine[i] && zLine[i]!='>'; i++){} |
| 490 | 490 | if( zLine[i]==0 ) goto malformed_line; |
| 491 | 491 | zLine[i] = 0; |
| 492 | 492 | fossil_free(gg.zUser); |
| 493 | - gg.zUser = import_strdup(z); | |
| 493 | + gg.zUser = fossil_strdup(z); | |
| 494 | 494 | secSince1970 = 0; |
| 495 | 495 | for(i=i+2; fossil_isdigit(zLine[i]); i++){ |
| 496 | 496 | secSince1970 = secSince1970*10 + zLine[i] - '0'; |
| 497 | 497 | } |
| 498 | 498 | fossil_free(gg.zDate); |
| @@ -500,11 +500,11 @@ | ||
| 500 | 500 | gg.zDate[10] = 'T'; |
| 501 | 501 | }else |
| 502 | 502 | if( memcmp(zLine, "from ", 5)==0 ){ |
| 503 | 503 | trim_newline(&zLine[5]); |
| 504 | 504 | fossil_free(gg.zFromMark); |
| 505 | - gg.zFromMark = import_strdup(&zLine[5]); | |
| 505 | + gg.zFromMark = fossil_strdup(&zLine[5]); | |
| 506 | 506 | fossil_free(gg.zFrom); |
| 507 | 507 | gg.zFrom = resolve_committish(&zLine[5]); |
| 508 | 508 | }else |
| 509 | 509 | if( memcmp(zLine, "merge ", 6)==0 ){ |
| 510 | 510 | trim_newline(&zLine[6]); |
| @@ -523,11 +523,11 @@ | ||
| 523 | 523 | zName = rest_of_line(&z); |
| 524 | 524 | i = 0; |
| 525 | 525 | pFile = import_find_file(zName, &i, gg.nFile); |
| 526 | 526 | if( pFile==0 ){ |
| 527 | 527 | pFile = import_add_file(); |
| 528 | - pFile->zName = import_strdup(zName); | |
| 528 | + pFile->zName = fossil_strdup(zName); | |
| 529 | 529 | } |
| 530 | 530 | pFile->isExe = (fossil_strcmp(zPerm, "100755")==0); |
| 531 | 531 | fossil_free(pFile->zUuid); |
| 532 | 532 | pFile->zUuid = resolve_committish(zUuid); |
| 533 | 533 | pFile->isFrom = 0; |
| @@ -560,14 +560,14 @@ | ||
| 560 | 560 | pNew = import_add_file(); |
| 561 | 561 | pFile = &gg.aFile[i-1]; |
| 562 | 562 | if( strlen(pFile->zName)>nFrom ){ |
| 563 | 563 | pNew->zName = mprintf("%s%s", zTo, pFile->zName[nFrom]); |
| 564 | 564 | }else{ |
| 565 | - pNew->zName = import_strdup(pFile->zName); | |
| 565 | + pNew->zName = fossil_strdup(pFile->zName); | |
| 566 | 566 | } |
| 567 | 567 | pNew->isExe = pFile->isExe; |
| 568 | - pNew->zUuid = import_strdup(pFile->zUuid); | |
| 568 | + pNew->zUuid = fossil_strdup(pFile->zUuid); | |
| 569 | 569 | pNew->isFrom = 0; |
| 570 | 570 | } |
| 571 | 571 | }else |
| 572 | 572 | if( memcmp(zLine, "R ", 2)==0 ){ |
| 573 | 573 | int nFrom; |
| @@ -582,11 +582,11 @@ | ||
| 582 | 582 | pNew = import_add_file(); |
| 583 | 583 | pFile = &gg.aFile[i-1]; |
| 584 | 584 | if( strlen(pFile->zName)>nFrom ){ |
| 585 | 585 | pNew->zName = mprintf("%s%s", zTo, pFile->zName[nFrom]); |
| 586 | 586 | }else{ |
| 587 | - pNew->zName = import_strdup(pFile->zName); | |
| 587 | + pNew->zName = fossil_strdup(pFile->zName); | |
| 588 | 588 | } |
| 589 | 589 | pNew->zPrior = pFile->zName; |
| 590 | 590 | pNew->isExe = pFile->isExe; |
| 591 | 591 | pNew->zUuid = pFile->zUuid; |
| 592 | 592 | pNew->isFrom = 0; |
| 593 | 593 |
| --- src/import.c | |
| +++ src/import.c | |
| @@ -63,11 +63,11 @@ | |
| 63 | } gg; |
| 64 | |
| 65 | /* |
| 66 | ** Duplicate a string. |
| 67 | */ |
| 68 | static char *import_strdup(const char *zOrig){ |
| 69 | char *z = 0; |
| 70 | if( zOrig ){ |
| 71 | int n = strlen(zOrig); |
| 72 | z = fossil_malloc( n+1 ); |
| 73 | memcpy(z, zOrig, n+1); |
| @@ -160,11 +160,11 @@ | |
| 160 | &hash, rid, &hash |
| 161 | ); |
| 162 | } |
| 163 | if( saveUuid ){ |
| 164 | fossil_free(gg.zPrevCheckin); |
| 165 | gg.zPrevCheckin = import_strdup(blob_str(&hash)); |
| 166 | } |
| 167 | blob_reset(&hash); |
| 168 | return rid; |
| 169 | } |
| 170 | |
| @@ -369,13 +369,13 @@ | |
| 369 | p = manifest_get(rid, CFTYPE_MANIFEST); |
| 370 | if( p==0 ) return; |
| 371 | manifest_file_rewind(p); |
| 372 | while( (pOld = manifest_file_next(p, 0))!=0 ){ |
| 373 | pNew = import_add_file(); |
| 374 | pNew->zName = import_strdup(pOld->zName); |
| 375 | pNew->isExe = pOld->zPerm && strstr(pOld->zPerm, "x")!=0; |
| 376 | pNew->zUuid = import_strdup(pOld->zUuid); |
| 377 | pNew->isFrom = 1; |
| 378 | } |
| 379 | manifest_destroy(p); |
| 380 | } |
| 381 | |
| @@ -426,18 +426,18 @@ | |
| 426 | gg.xFinish = finish_commit; |
| 427 | trim_newline(&zLine[7]); |
| 428 | z = &zLine[7]; |
| 429 | for(i=strlen(z)-1; i>=0 && z[i]!='/'; i--){} |
| 430 | if( z[i+1]!=0 ) z += i+1; |
| 431 | gg.zBranch = import_strdup(z); |
| 432 | gg.fromLoaded = 0; |
| 433 | }else |
| 434 | if( memcmp(zLine, "tag ", 4)==0 ){ |
| 435 | gg.xFinish(); |
| 436 | gg.xFinish = finish_tag; |
| 437 | trim_newline(&zLine[4]); |
| 438 | gg.zTag = import_strdup(&zLine[4]); |
| 439 | }else |
| 440 | if( memcmp(zLine, "reset ", 4)==0 ){ |
| 441 | gg.xFinish(); |
| 442 | }else |
| 443 | if( memcmp(zLine, "checkpoint", 10)==0 ){ |
| @@ -477,11 +477,11 @@ | |
| 477 | /* No-op */ |
| 478 | }else |
| 479 | if( memcmp(zLine, "mark ", 5)==0 ){ |
| 480 | trim_newline(&zLine[5]); |
| 481 | fossil_free(gg.zMark); |
| 482 | gg.zMark = import_strdup(&zLine[5]); |
| 483 | }else |
| 484 | if( memcmp(zLine, "tagger ", 7)==0 || memcmp(zLine, "committer ",10)==0 ){ |
| 485 | sqlite3_int64 secSince1970; |
| 486 | for(i=0; zLine[i] && zLine[i]!='<'; i++){} |
| 487 | if( zLine[i]==0 ) goto malformed_line; |
| @@ -488,11 +488,11 @@ | |
| 488 | z = &zLine[i+1]; |
| 489 | for(i=i+1; zLine[i] && zLine[i]!='>'; i++){} |
| 490 | if( zLine[i]==0 ) goto malformed_line; |
| 491 | zLine[i] = 0; |
| 492 | fossil_free(gg.zUser); |
| 493 | gg.zUser = import_strdup(z); |
| 494 | secSince1970 = 0; |
| 495 | for(i=i+2; fossil_isdigit(zLine[i]); i++){ |
| 496 | secSince1970 = secSince1970*10 + zLine[i] - '0'; |
| 497 | } |
| 498 | fossil_free(gg.zDate); |
| @@ -500,11 +500,11 @@ | |
| 500 | gg.zDate[10] = 'T'; |
| 501 | }else |
| 502 | if( memcmp(zLine, "from ", 5)==0 ){ |
| 503 | trim_newline(&zLine[5]); |
| 504 | fossil_free(gg.zFromMark); |
| 505 | gg.zFromMark = import_strdup(&zLine[5]); |
| 506 | fossil_free(gg.zFrom); |
| 507 | gg.zFrom = resolve_committish(&zLine[5]); |
| 508 | }else |
| 509 | if( memcmp(zLine, "merge ", 6)==0 ){ |
| 510 | trim_newline(&zLine[6]); |
| @@ -523,11 +523,11 @@ | |
| 523 | zName = rest_of_line(&z); |
| 524 | i = 0; |
| 525 | pFile = import_find_file(zName, &i, gg.nFile); |
| 526 | if( pFile==0 ){ |
| 527 | pFile = import_add_file(); |
| 528 | pFile->zName = import_strdup(zName); |
| 529 | } |
| 530 | pFile->isExe = (fossil_strcmp(zPerm, "100755")==0); |
| 531 | fossil_free(pFile->zUuid); |
| 532 | pFile->zUuid = resolve_committish(zUuid); |
| 533 | pFile->isFrom = 0; |
| @@ -560,14 +560,14 @@ | |
| 560 | pNew = import_add_file(); |
| 561 | pFile = &gg.aFile[i-1]; |
| 562 | if( strlen(pFile->zName)>nFrom ){ |
| 563 | pNew->zName = mprintf("%s%s", zTo, pFile->zName[nFrom]); |
| 564 | }else{ |
| 565 | pNew->zName = import_strdup(pFile->zName); |
| 566 | } |
| 567 | pNew->isExe = pFile->isExe; |
| 568 | pNew->zUuid = import_strdup(pFile->zUuid); |
| 569 | pNew->isFrom = 0; |
| 570 | } |
| 571 | }else |
| 572 | if( memcmp(zLine, "R ", 2)==0 ){ |
| 573 | int nFrom; |
| @@ -582,11 +582,11 @@ | |
| 582 | pNew = import_add_file(); |
| 583 | pFile = &gg.aFile[i-1]; |
| 584 | if( strlen(pFile->zName)>nFrom ){ |
| 585 | pNew->zName = mprintf("%s%s", zTo, pFile->zName[nFrom]); |
| 586 | }else{ |
| 587 | pNew->zName = import_strdup(pFile->zName); |
| 588 | } |
| 589 | pNew->zPrior = pFile->zName; |
| 590 | pNew->isExe = pFile->isExe; |
| 591 | pNew->zUuid = pFile->zUuid; |
| 592 | pNew->isFrom = 0; |
| 593 |
| --- src/import.c | |
| +++ src/import.c | |
| @@ -63,11 +63,11 @@ | |
| 63 | } gg; |
| 64 | |
| 65 | /* |
| 66 | ** Duplicate a string. |
| 67 | */ |
| 68 | char *fossil_strdup(const char *zOrig){ |
| 69 | char *z = 0; |
| 70 | if( zOrig ){ |
| 71 | int n = strlen(zOrig); |
| 72 | z = fossil_malloc( n+1 ); |
| 73 | memcpy(z, zOrig, n+1); |
| @@ -160,11 +160,11 @@ | |
| 160 | &hash, rid, &hash |
| 161 | ); |
| 162 | } |
| 163 | if( saveUuid ){ |
| 164 | fossil_free(gg.zPrevCheckin); |
| 165 | gg.zPrevCheckin = fossil_strdup(blob_str(&hash)); |
| 166 | } |
| 167 | blob_reset(&hash); |
| 168 | return rid; |
| 169 | } |
| 170 | |
| @@ -369,13 +369,13 @@ | |
| 369 | p = manifest_get(rid, CFTYPE_MANIFEST); |
| 370 | if( p==0 ) return; |
| 371 | manifest_file_rewind(p); |
| 372 | while( (pOld = manifest_file_next(p, 0))!=0 ){ |
| 373 | pNew = import_add_file(); |
| 374 | pNew->zName = fossil_strdup(pOld->zName); |
| 375 | pNew->isExe = pOld->zPerm && strstr(pOld->zPerm, "x")!=0; |
| 376 | pNew->zUuid = fossil_strdup(pOld->zUuid); |
| 377 | pNew->isFrom = 1; |
| 378 | } |
| 379 | manifest_destroy(p); |
| 380 | } |
| 381 | |
| @@ -426,18 +426,18 @@ | |
| 426 | gg.xFinish = finish_commit; |
| 427 | trim_newline(&zLine[7]); |
| 428 | z = &zLine[7]; |
| 429 | for(i=strlen(z)-1; i>=0 && z[i]!='/'; i--){} |
| 430 | if( z[i+1]!=0 ) z += i+1; |
| 431 | gg.zBranch = fossil_strdup(z); |
| 432 | gg.fromLoaded = 0; |
| 433 | }else |
| 434 | if( memcmp(zLine, "tag ", 4)==0 ){ |
| 435 | gg.xFinish(); |
| 436 | gg.xFinish = finish_tag; |
| 437 | trim_newline(&zLine[4]); |
| 438 | gg.zTag = fossil_strdup(&zLine[4]); |
| 439 | }else |
| 440 | if( memcmp(zLine, "reset ", 4)==0 ){ |
| 441 | gg.xFinish(); |
| 442 | }else |
| 443 | if( memcmp(zLine, "checkpoint", 10)==0 ){ |
| @@ -477,11 +477,11 @@ | |
| 477 | /* No-op */ |
| 478 | }else |
| 479 | if( memcmp(zLine, "mark ", 5)==0 ){ |
| 480 | trim_newline(&zLine[5]); |
| 481 | fossil_free(gg.zMark); |
| 482 | gg.zMark = fossil_strdup(&zLine[5]); |
| 483 | }else |
| 484 | if( memcmp(zLine, "tagger ", 7)==0 || memcmp(zLine, "committer ",10)==0 ){ |
| 485 | sqlite3_int64 secSince1970; |
| 486 | for(i=0; zLine[i] && zLine[i]!='<'; i++){} |
| 487 | if( zLine[i]==0 ) goto malformed_line; |
| @@ -488,11 +488,11 @@ | |
| 488 | z = &zLine[i+1]; |
| 489 | for(i=i+1; zLine[i] && zLine[i]!='>'; i++){} |
| 490 | if( zLine[i]==0 ) goto malformed_line; |
| 491 | zLine[i] = 0; |
| 492 | fossil_free(gg.zUser); |
| 493 | gg.zUser = fossil_strdup(z); |
| 494 | secSince1970 = 0; |
| 495 | for(i=i+2; fossil_isdigit(zLine[i]); i++){ |
| 496 | secSince1970 = secSince1970*10 + zLine[i] - '0'; |
| 497 | } |
| 498 | fossil_free(gg.zDate); |
| @@ -500,11 +500,11 @@ | |
| 500 | gg.zDate[10] = 'T'; |
| 501 | }else |
| 502 | if( memcmp(zLine, "from ", 5)==0 ){ |
| 503 | trim_newline(&zLine[5]); |
| 504 | fossil_free(gg.zFromMark); |
| 505 | gg.zFromMark = fossil_strdup(&zLine[5]); |
| 506 | fossil_free(gg.zFrom); |
| 507 | gg.zFrom = resolve_committish(&zLine[5]); |
| 508 | }else |
| 509 | if( memcmp(zLine, "merge ", 6)==0 ){ |
| 510 | trim_newline(&zLine[6]); |
| @@ -523,11 +523,11 @@ | |
| 523 | zName = rest_of_line(&z); |
| 524 | i = 0; |
| 525 | pFile = import_find_file(zName, &i, gg.nFile); |
| 526 | if( pFile==0 ){ |
| 527 | pFile = import_add_file(); |
| 528 | pFile->zName = fossil_strdup(zName); |
| 529 | } |
| 530 | pFile->isExe = (fossil_strcmp(zPerm, "100755")==0); |
| 531 | fossil_free(pFile->zUuid); |
| 532 | pFile->zUuid = resolve_committish(zUuid); |
| 533 | pFile->isFrom = 0; |
| @@ -560,14 +560,14 @@ | |
| 560 | pNew = import_add_file(); |
| 561 | pFile = &gg.aFile[i-1]; |
| 562 | if( strlen(pFile->zName)>nFrom ){ |
| 563 | pNew->zName = mprintf("%s%s", zTo, pFile->zName[nFrom]); |
| 564 | }else{ |
| 565 | pNew->zName = fossil_strdup(pFile->zName); |
| 566 | } |
| 567 | pNew->isExe = pFile->isExe; |
| 568 | pNew->zUuid = fossil_strdup(pFile->zUuid); |
| 569 | pNew->isFrom = 0; |
| 570 | } |
| 571 | }else |
| 572 | if( memcmp(zLine, "R ", 2)==0 ){ |
| 573 | int nFrom; |
| @@ -582,11 +582,11 @@ | |
| 582 | pNew = import_add_file(); |
| 583 | pFile = &gg.aFile[i-1]; |
| 584 | if( strlen(pFile->zName)>nFrom ){ |
| 585 | pNew->zName = mprintf("%s%s", zTo, pFile->zName[nFrom]); |
| 586 | }else{ |
| 587 | pNew->zName = fossil_strdup(pFile->zName); |
| 588 | } |
| 589 | pNew->zPrior = pFile->zName; |
| 590 | pNew->isExe = pFile->isExe; |
| 591 | pNew->zUuid = pFile->zUuid; |
| 592 | pNew->isFrom = 0; |
| 593 |