diff --git a/doc/src/sgml/ref/ecpg-ref.sgml b/doc/src/sgml/ref/ecpg-ref.sgml index 029bd4a4d2255f8c2c5687d54e8ab59a0e03d2ed..8bfb47c4d79ff813b77d99967d5d481d85260690 100644 --- a/doc/src/sgml/ref/ecpg-ref.sgml +++ b/doc/src/sgml/ref/ecpg-ref.sgml @@ -42,11 +42,9 @@ PostgreSQL documentation <para> <command>ecpg</command> will convert each input file given on the command line to the corresponding C output file. Input files - preferably have the extension <filename>.pgc</filename>, in which - case the extension will be replaced by <filename>.c</filename> to - determine the output file name. If the extension of the input file - is not <filename>.pgc</filename>, then the output file name is - computed by appending <literal>.c</literal> to the full file name. + preferably have the extension <filename>.pgc</filename>. + The extension will be replaced by <filename>.c</filename> to + determine the output file name. The output file name can also be overridden using the <option>-o</option> option. </para> diff --git a/src/interfaces/ecpg/preproc/ecpg.c b/src/interfaces/ecpg/preproc/ecpg.c index 3b0de973210c121adff461c7a8311cf5b1ab5685..59dce140a93edc95b1c5faf5fd1df4a1e4f4d881 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 */