|
Lines 16-21
Link Here
|
| 16 |
|
16 |
|
| 17 |
/*@access FD_t @*/ /* compared with NULL */ |
17 |
/*@access FD_t @*/ /* compared with NULL */ |
| 18 |
|
18 |
|
|
|
19 |
static FILE* temp_file;/*tempory file to output preprocessing spec*/ |
| 20 |
|
| 19 |
/** |
21 |
/** |
| 20 |
*/ |
22 |
*/ |
| 21 |
/*@unchecked@*/ |
23 |
/*@unchecked@*/ |
|
Lines 362-368
Link Here
|
| 362 |
|
364 |
|
| 363 |
if ( '\n' == chomped[len-1] ) |
365 |
if ( '\n' == chomped[len-1] ) |
| 364 |
chomped[len-1] = '\0'; |
366 |
chomped[len-1] = '\0'; |
| 365 |
puts( chomped ); |
367 |
fprintf(temp_file, "%s\n", chomped ); |
| 366 |
chomped = _free( chomped ); |
368 |
chomped = _free( chomped ); |
| 367 |
} |
369 |
} |
| 368 |
|
370 |
|
|
Lines 396-401
Link Here
|
| 396 |
{ |
398 |
{ |
| 397 |
rpmParseState parsePart = PART_PREAMBLE; |
399 |
rpmParseState parsePart = PART_PREAMBLE; |
| 398 |
int initialPackage = 1; |
400 |
int initialPackage = 1; |
|
|
401 |
char temp_filename_pattern[25]="preprocessed-spec.XXXXXX"; |
| 402 |
int temp_fd; |
| 403 |
char line[255]; |
| 404 |
|
| 399 |
#ifdef DYING |
405 |
#ifdef DYING |
| 400 |
const char *saveArch; |
406 |
const char *saveArch; |
| 401 |
#endif |
407 |
#endif |
|
Lines 416-421
Link Here
|
| 416 |
spec->fileStack = newOpenFileInfo(); |
422 |
spec->fileStack = newOpenFileInfo(); |
| 417 |
spec->fileStack->fileName = xstrdup(spec->specFile); |
423 |
spec->fileStack->fileName = xstrdup(spec->specFile); |
| 418 |
spec->preprocess_mode = preprocess; |
424 |
spec->preprocess_mode = preprocess; |
|
|
425 |
|
| 426 |
if (spec->preprocess_mode){ |
| 427 |
temp_fd = mkstemp(temp_filename_pattern); |
| 428 |
if (temp_fd == -1) { |
| 429 |
rpmError(RPMERR_CREATE, _("Cannot open tempory file")); |
| 430 |
return RPMERR_CREATE; |
| 431 |
} |
| 432 |
if (!(temp_file = fdopen(temp_fd, "w+b"))) { |
| 433 |
rpmError(RPMERR_CREATE, _("Cannot create tempory file descriptor")); |
| 434 |
return RPMERR_CREATE; |
| 435 |
} |
| 436 |
if (unlink(temp_filename_pattern) == -1) { |
| 437 |
rpmError(RPMERR_UNLINK, _("Cannot delete tempory file")); |
| 438 |
return RPMERR_UNLINK; |
| 439 |
} |
| 440 |
} |
| 441 |
|
| 419 |
if (buildRootURL) { |
442 |
if (buildRootURL) { |
| 420 |
const char * buildRoot; |
443 |
const char * buildRoot; |
| 421 |
(void) urlPath(buildRootURL, &buildRoot); |
444 |
(void) urlPath(buildRootURL, &buildRoot); |
|
Lines 636-640
Link Here
|
| 636 |
closeSpec(spec); |
659 |
closeSpec(spec); |
| 637 |
*specp = spec; |
660 |
*specp = spec; |
| 638 |
|
661 |
|
|
|
662 |
if (spec->preprocess_mode){ |
| 663 |
if (!fseek(temp_file,0,SEEK_SET)) |
| 664 |
while(fgets(line,255,temp_file)) |
| 665 |
printf("%s",line); |
| 666 |
else{ |
| 667 |
rpmError(RPMERR_FSEEK, _("Cannot seek tempory file")); |
| 668 |
return RPMERR_FSEEK; |
| 669 |
} |
| 670 |
} |
| 671 |
|
| 639 |
return 0; |
672 |
return 0; |
| 640 |
} |
673 |
} |