aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authoredwin <edwin@FreeBSD.org>2007-09-08 20:09:40 +0800
committeredwin <edwin@FreeBSD.org>2007-09-08 20:09:40 +0800
commit8e142665b8eaaca7bb45ff1333c2ed4fbb39ced6 (patch)
tree3389d7aab3414a760c83bc76c489e9bd2efce950
parent64580c9321d77a5ca4fc8f69c24c027d3e63f397 (diff)
downloadfreebsd-ports-gnome-8e142665b8eaaca7bb45ff1333c2ed4fbb39ced6.tar.gz
freebsd-ports-gnome-8e142665b8eaaca7bb45ff1333c2ed4fbb39ced6.tar.zst
freebsd-ports-gnome-8e142665b8eaaca7bb45ff1333c2ed4fbb39ced6.zip
[patch] multimedia/fxtv: unbreak on HEAD (gcc 4.2)
This patch unbreaks building this port on 7-CURRENT (with gcc 4.2) PR: ports/116126 Submitted by: Simun Mikecin <numisemis@yahoo.com>
-rw-r--r--multimedia/fxtv/Makefile6
-rw-r--r--multimedia/fxtv/files/patch-videolib_videolib.c38
2 files changed, 39 insertions, 5 deletions
diff --git a/multimedia/fxtv/Makefile b/multimedia/fxtv/Makefile
index 6c4870f45911..e4f6abba39cd 100644
--- a/multimedia/fxtv/Makefile
+++ b/multimedia/fxtv/Makefile
@@ -7,7 +7,7 @@
PORTNAME= fxtv
PORTVERSION= 1.03
-PORTREVISION= 5
+PORTREVISION= 6
CATEGORIES= multimedia
MASTER_SITES= ${MASTER_SITE_LOCAL}
MASTER_SITE_SUBDIR= rhh
@@ -31,10 +31,6 @@ OPTIONS= EXTRA "Extra programs required to record/playback/save" off
.include <bsd.port.pre.mk>
-.if ${OSVERSION} >= 700042
-BROKEN= Broken with gcc 4.2
-.endif
-
# This program does not actually require the programs below unless you
# use audio/video recording and/or playback and save to a non-raw format.
.if defined(WITH_EXTRA)
diff --git a/multimedia/fxtv/files/patch-videolib_videolib.c b/multimedia/fxtv/files/patch-videolib_videolib.c
new file mode 100644
index 000000000000..4da6856d39c8
--- /dev/null
+++ b/multimedia/fxtv/files/patch-videolib_videolib.c
@@ -0,0 +1,38 @@
+--- videolib/videolib.c.orig 1999-11-03 03:22:04.000000000 +0100
++++ videolib/videolib.c 2007-09-05 18:31:05.000000000 +0200
+@@ -479,9 +479,8 @@
+ *(p++) = (*src16 >> 8) | (*src16 << 8);
+ src16++;
+ }
+- for ( i = dst_line_pad; i > 0; i-- )
+- *(((VL_UINT8 *)p)++) = 0x00;
+- (VL_UINT8 *)dst_line += dst->geom.bytes_per_line;
++ memset(p, 0, dst_line_pad);
++ dst_line += dst->geom.bytes_per_line / sizeof(VL_UINT16);
+ }
+
+ src16 = dst_line = (VL_UINT16 *) dst->buf;
+@@ -513,9 +512,9 @@
+ if ( src_padded )
+ src16 = (VL_UINT16 *)( (VL_UINT8 *)src16 + dst_line_pad );
+ else
+- for ( i = dst_line_pad; i > 0; i-- )
+- *(((VL_UINT8 *)dst)++) = 0x00;
+- (VL_UINT8 *)dst_line += dst->geom.bytes_per_line;
++ memset(dst, 0, dst_line_pad);
++ dst += dst_line_pad / sizeof(VL_IMAGE);
++ dst_line += dst->geom.bytes_per_line / sizeof(VL_UINT16);
+ }
+
+ if ( !dst_swap_b ) { /* More ugliness */
+@@ -527,8 +526,8 @@
+ *(p++) = (*src16 >> 8) | (*src16 << 8);
+ src16++;
+ }
+- (VL_UINT8 *)dst_line += dst->geom.bytes_per_line;
+- (VL_UINT8 *)src16 += dst->geom.bytes_per_line;
++ dst_line += dst->geom.bytes_per_line / sizeof(VL_UINT16);
++ src16 += dst->geom.bytes_per_line / sizeof(VL_UINT16);
+ }
+ }
+ }