diff --git a/doc/src/sgml/ref/ecpg-ref.sgml b/doc/src/sgml/ref/ecpg-ref.sgml index 029bd4a4d22..8bfb47c4d79 100644 --- a/doc/src/sgml/ref/ecpg-ref.sgml +++ b/doc/src/sgml/ref/ecpg-ref.sgml @@ -42,11 +42,9 @@ PostgreSQL documentation ecpg will convert each input file given on the command line to the corresponding C output file. Input files - preferably have the extension .pgc, in which - case the extension will be replaced by .c to - determine the output file name. If the extension of the input file - is not .pgc, then the output file name is - computed by appending .c to the full file name. + preferably have the extension .pgc. + The extension will be replaced by .c to + determine the output file name. The output file name can also be overridden using the option. diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c index 3b0de973210..59dce140a93 100644 --- a/src/interfaces/ecpg/preproc/ecpg.c +++ b/src/interfaces/ecpg/preproc/ecpg.c @@ -313,7 +313,8 @@ main(int argc, char *const argv[]) base_yyout = stdout; else { - output_filename = mm_strdup(input_filename); + output_filename = mm_alloc(strlen(input_filename) + 3); + strcpy(output_filename, input_filename); ptr2ext = strrchr(output_filename, '.'); /* make extension = .c resp. .h */