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;