patch: support for borland c++ compile (SF#1599018: http://sourceforge.net/tracker/index.php?func=detail&aid=1599018&group_id=13478&atid=313478)
diff --git a/src/libFLAC/format.c b/src/libFLAC/format.c
index 9d45620..af384ea 100644
--- a/src/libFLAC/format.c
+++ b/src/libFLAC/format.c
@@ -54,7 +54,7 @@
 /* VERSION should come from configure */
 FLAC_API const char *FLAC__VERSION_STRING = VERSION;
 
-#if defined _MSC_VER || defined __MINW32__
+#if defined _MSC_VER || defined __BORLANDC__ || defined __MINW32__
 /* yet one more hack because of MSVC6: */
 FLAC_API const char *FLAC__VENDOR_STRING = "reference libFLAC 1.1.3 20061120";
 #else
diff --git a/src/libFLAC/lpc.c b/src/libFLAC/lpc.c
index 174c3e0..aa9b1c3 100644
--- a/src/libFLAC/lpc.c
+++ b/src/libFLAC/lpc.c
@@ -316,7 +316,7 @@
 #endif
 	unsigned i, j;
 	FLAC__int32 sum;
-	const FLAC__int32 *history;
+	const FLAC__int32 *r = residual, *history;
 
 #ifdef FLAC__OVERFLOW_DETECT_VERBOSE
 	fprintf(stderr,"FLAC__lpc_restore_signal: data_len=%d, order=%u, lpq=%d",data_len,order,lp_quantization);
@@ -345,7 +345,7 @@
 #endif
 #endif
 		}
-		*(data++) = *(residual++) + (sum >> lp_quantization);
+		*(data++) = *(r++) + (sum >> lp_quantization);
 	}
 
 	/* Here's a slower but clearer version:
@@ -362,7 +362,7 @@
 {
 	unsigned i, j;
 	FLAC__int64 sum;
-	const FLAC__int32 *history;
+	const FLAC__int32 *r = residual, *history;
 
 #ifdef FLAC__OVERFLOW_DETECT_VERBOSE
 	fprintf(stderr,"FLAC__lpc_restore_signal_wide: data_len=%d, order=%u, lpq=%d",data_len,order,lp_quantization);
@@ -382,12 +382,12 @@
 			fprintf(stderr,"FLAC__lpc_restore_signal_wide: OVERFLOW, i=%u, sum=%lld\n", i, (long long)(sum >> lp_quantization));
 			break;
 		}
-		if(FLAC__bitmath_silog2_wide((FLAC__int64)(*residual) + (sum >> lp_quantization)) > 32) {
-			fprintf(stderr,"FLAC__lpc_restore_signal_wide: OVERFLOW, i=%u, residual=%d, sum=%lld, data=%lld\n", i, *residual, (long long)(sum >> lp_quantization), (long long)((FLAC__int64)(*residual) + (sum >> lp_quantization)));
+		if(FLAC__bitmath_silog2_wide((FLAC__int64)(*r) + (sum >> lp_quantization)) > 32) {
+			fprintf(stderr,"FLAC__lpc_restore_signal_wide: OVERFLOW, i=%u, residual=%d, sum=%lld, data=%lld\n", i, *r, (long long)(sum >> lp_quantization), (long long)((FLAC__int64)(*r) + (sum >> lp_quantization)));
 			break;
 		}
 #endif
-		*(data++) = *(residual++) + (FLAC__int32)(sum >> lp_quantization);
+		*(data++) = *(r++) + (FLAC__int32)(sum >> lp_quantization);
 	}
 }
 
diff --git a/src/libFLAC/metadata_iterators.c b/src/libFLAC/metadata_iterators.c
index d5c4490..38f75bb 100644
--- a/src/libFLAC/metadata_iterators.c
+++ b/src/libFLAC/metadata_iterators.c
@@ -3195,7 +3195,7 @@
 	(void)fclose(*tempfile);
 	*tempfile = 0;
 
-#if defined _MSC_VER || defined __MINGW32__ || defined __EMX__
+#if defined _MSC_VER || defined __BORLANDC__ || defined __MINGW32__ || defined __EMX__
 	/* on some flavors of windows, rename() will fail if the destination already exists */
 	if(unlink(filename) < 0) {
 		cleanup_tempfile_(tempfile, tempfilename);
@@ -3248,7 +3248,7 @@
 	srctime.modtime = stats->st_mtime;
 	(void)chmod(filename, stats->st_mode);
 	(void)utime(filename, &srctime);
-#if !defined _MSC_VER && !defined __MINGW32__ && !defined __EMX__
+#if !defined _MSC_VER && !defined __BORLANDC__ && !defined __MINGW32__ && !defined __EMX__
 	(void)chown(filename, stats->st_uid, -1);
 	(void)chown(filename, -1, stats->st_gid);
 #endif