fix problem with code that checks if temp file is needed, before it would compare filenames, now it compares inodes

This commit is contained in:
Josh Coalson 2006-10-10 00:40:17 +00:00
parent f461a7bd5d
commit 9f85cb6359
1 changed files with 4 additions and 3 deletions

View File

@ -1777,9 +1777,10 @@ int encode_file(const char *infilename, FLAC__bool is_first_file, FLAC__bool is_
common_options.debug.disable_fixed_subframes = option_values.debug.disable_fixed_subframes;
common_options.debug.disable_verbatim_subframes = option_values.debug.disable_verbatim_subframes;
/* if infilename==outfilename, we need to write to a temporary file */
if(encode_infile != stdin && 0 == strcmp(infilename, outfilename)) { /*@@@@@@ BUG strcmp is not adequate to check if infilename and outfilename are the same file */
static const char *tmp_suffix = ".tmp";
/* if infilename and outfilename point to the same file, we need to write to a temporary file */
if(encode_infile != stdin && grabbag__file_are_same(infilename, outfilename)) {
static const char *tmp_suffix = ".tmp,fl-ac+en'c";
/*@@@ still a remote possibility that a file with this filename exists */
if(0 == (internal_outfilename = malloc(strlen(outfilename)+strlen(tmp_suffix)+1))) {
flac__utils_printf(stderr, 1, "ERROR allocating memory for tempfile name\n");
return 1;