Fixed bug where using --replay-gain without any padding option caused only a small PADDING block to be created (SF#1760790: https://sourceforge.net/tracker/index.php?func=detail&aid=1760790&group_id=13478&atid=113478)
diff --git a/doc/html/changelog.html b/doc/html/changelog.html
index 492ef9f..ccf4357 100644
--- a/doc/html/changelog.html
+++ b/doc/html/changelog.html
@@ -80,6 +80,7 @@
flac:
<ul>
<li>Added a new option <span class="argument"><a href="documentation_tools_flac.html#flac_options_no_utf8_convert">--no-utf8-convert</a></span> which works like it does in <span class="commandname">metaflac</span> (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=973740&group_id=13478&atid=363478">SF #973740</a>).</li>
+ <li>Fixed bug where using <span class="argument">--replay-gain</span> without any padding option caused only a small PADDING block to be created (<a href="https://sourceforge.net/tracker/index.php?func=detail&aid=1760790&group_id=13478&atid=113478">SF #1760790</a>).</li>
</ul>
</li>
<li>
diff --git a/src/flac/main.c b/src/flac/main.c
index 9b200d3..53ea96e 100644
--- a/src/flac/main.c
+++ b/src/flac/main.c
@@ -28,6 +28,7 @@
#include <stdlib.h>
#include <string.h>
#include <time.h>
+#include <unistd.h>
#if !defined _MSC_VER && !defined __MINGW32__
/* unlink is in stdio.h in VC++ */
@@ -432,7 +433,10 @@
* tags that we will set later, to avoid rewriting the
* whole file.
*/
- if(option_values.padding <= 0) {
+ if(
+ (option_values.padding >= 0 && option_values.padding < GRABBAG__REPLAYGAIN_MAX_TAG_SPACE_REQUIRED) ||
+ (option_values.padding < 0 && FLAC_ENCODE__DEFAULT_PADDING < GRABBAG__REPLAYGAIN_MAX_TAG_SPACE_REQUIRED)
+ ) {
flac__utils_printf(stderr, 1, "NOTE: --replay-gain may leave a small PADDING block even with --no-padding\n");
option_values.padding = GRABBAG__REPLAYGAIN_MAX_TAG_SPACE_REQUIRED;
}