Date: Thu, 09 Dec 2004 22:36:09 -0800 From: Russell Jackson <raj@cserv62.csub.edu> To: James Raftery <james@now.ie>, freebsd-ports@freebsd.org Subject: Re: Real VNC 4.X Message-ID: <41B943D9.3090202@cserv62.csub.edu> In-Reply-To: <20041202171812.GB42474@bender.kerna.ie> References: <20041129175028.GA21229@0lsen.net> <20041129201909.GA23839@xor.obsecurity.org> <20041201162136.GA67299@math.uic.edu> <20041202171812.GB42474@bender.kerna.ie>
next in thread | previous in thread | raw e-mail | index | archive | help
James Raftery wrote: > Hi, > > On Wed, Dec 01, 2004 at 10:21:36AM -0600, Vladimir Egorin wrote: > >>See if http://www.math.uic.edu/~vladimir/vnc4.tar.gz works for you. >>I'll try to submit an update if the maintainer doesn't get >>around to updating the port soon (I probably did a worse job >>than he did). > > > I don't think so :) > > That port skeleton fails to build Xvnc on 4.x i386. What's been holding > up an update to VNC 4.0 is trying to get a port that can build a VNC > server on both 4.x and 5.x, and on non-i386 platforms. > > I'm considering proposing a new `vnc4' port to get VNC 4.0 into ports > without removing the (working) 3.3.7 port. > > > All the best, > james While not fixing the 4.x problem, I have come up with a patch to compile on 5.x with gcc 3.4. Hope it helps. --- begin patch --- --- rfb/ComparingUpdateTracker.cxx Mon Apr 12 08:53:11 2004 +++ rfb/ComparingUpdateTracker.cxx Thu Dec 9 21:40:35 2004 @@ -20,6 +20,7 @@ #include <rdr/types.h> #include <rfb/Exception.h> #include <rfb/ComparingUpdateTracker.h> +#include <algorithm> using namespace rfb; @@ -60,7 +61,7 @@ // since in effect the entire framebuffer has changed. oldFb.setSize(fb->width(), fb->height()); for (int y=0; y<fb->height(); y+=BLOCK_SIZE) { - Rect pos(0, y, fb->width(), min(fb->height(), y+BLOCK_SIZE)); + Rect pos(0, y, fb->width(), std::min(fb->height(), y+BLOCK_SIZE)); int srcStride; const rdr::U8* srcData = fb->getPixelsR(pos, &srcStride); oldFb.imageRect(pos, srcData, srcStride); @@ -100,20 +101,20 @@ for (int blockTop = r.tl.y; blockTop < r.br.y; blockTop += BLOCK_SIZE) { // Get a strip of the source buffer - Rect pos(r.tl.x, blockTop, r.br.x, min(r.br.y, blockTop+BLOCK_SIZE)); + Rect pos(r.tl.x, blockTop, r.br.x, std::min(r.br.y, blockTop+BLOCK_SIZE)); int fbStride; const rdr::U8* newBlockPtr = fb->getPixelsR(pos, &fbStride); int newStrideBytes = fbStride * bytesPerPixel; rdr::U8* oldBlockPtr = oldData; - int blockBottom = min(blockTop+BLOCK_SIZE, r.br.y); + int blockBottom = std::min(blockTop+BLOCK_SIZE, r.br.y); for (int blockLeft = r.tl.x; blockLeft < r.br.x; blockLeft += BLOCK_SIZE) { const rdr::U8* newPtr = newBlockPtr; rdr::U8* oldPtr = oldBlockPtr; - int blockRight = min(blockLeft+BLOCK_SIZE, r.br.x); + int blockRight = std::min(blockLeft+BLOCK_SIZE, r.br.x); int blockWidthInBytes = (blockRight-blockLeft) * bytesPerPixel; for (int y = blockTop; y < blockBottom; y++) --- rfb/Rect.h Mon Jun 30 13:50:25 2003 +++ rfb/Rect.h Thu Dec 9 21:37:34 2004 @@ -21,13 +21,7 @@ #ifndef __RFB_RECT_INCLUDED__ #define __RFB_RECT_INCLUDED__ -#ifndef max -#define max(a,b) (((a) > (b)) ? (a) : (b)) -#endif - -#ifndef min -#define min(a,b) (((a) < (b)) ? (a) : (b)) -#endif +#include <algorithm> namespace rfb { @@ -70,20 +64,20 @@ } inline Rect intersect(const Rect &r) const { Rect result; - result.tl.x = max(tl.x, r.tl.x); - result.tl.y = max(tl.y, r.tl.y); - result.br.x = max(min(br.x, r.br.x), result.tl.x); - result.br.y = max(min(br.y, r.br.y), result.tl.y); + result.tl.x = std::max(tl.x, r.tl.x); + result.tl.y = std::max(tl.y, r.tl.y); + result.br.x = std::max(std::min(br.x, r.br.x), result.tl.x); + result.br.y = std::max(std::min(br.y, r.br.y), result.tl.y); return result; } inline Rect union_boundary(const Rect &r) const { if (r.is_empty()) return *this; if (is_empty()) return r; Rect result; - result.tl.x = min(tl.x, r.tl.x); - result.tl.y = min(tl.y, r.tl.y); - result.br.x = max(br.x, r.br.x); - result.br.y = max(br.y, r.br.y); + result.tl.x = std::min(tl.x, r.tl.x); + result.tl.y = std::min(tl.y, r.tl.y); + result.br.x = std::max(br.x, r.br.x); + result.br.y = std::max(br.y, r.br.y); return result; } inline Rect translate(const Point &p) const { --- rfb/hextileDecode.h Thu Jul 31 11:03:38 2003 +++ rfb/hextileDecode.h Thu Dec 9 21:39:27 2004 @@ -26,6 +26,7 @@ #include <rdr/InStream.h> #include <rfb/hextileConstants.h> +#include <algorithm> namespace rfb { @@ -52,11 +53,11 @@ for (t.tl.y = r.tl.y; t.tl.y < r.br.y; t.tl.y += 16) { - t.br.y = min(r.br.y, t.tl.y + 16); + t.br.y = std::min(r.br.y, t.tl.y + 16); for (t.tl.x = r.tl.x; t.tl.x < r.br.x; t.tl.x += 16) { - t.br.x = min(r.br.x, t.tl.x + 16); + t.br.x = std::min(r.br.x, t.tl.x + 16); int tileType = is->readU8(); --- rfb/hextileEncode.h Thu Jul 31 11:03:38 2003 +++ rfb/hextileEncode.h Thu Dec 9 21:42:00 2004 @@ -25,6 +25,7 @@ #include <rdr/OutStream.h> #include <rfb/hextileConstants.h> +#include <algorithm> namespace rfb { @@ -60,11 +61,11 @@ for (t.tl.y = r.tl.y; t.tl.y < r.br.y; t.tl.y += 16) { - t.br.y = min(r.br.y, t.tl.y + 16); + t.br.y = std::min(r.br.y, t.tl.y + 16); for (t.tl.x = r.tl.x; t.tl.x < r.br.x; t.tl.x += 16) { - t.br.x = min(r.br.x, t.tl.x + 16); + t.br.x = std::min(r.br.x, t.tl.x + 16); GET_IMAGE_INTO_BUF(t,buf); --- rfb/zrleDecode.h Thu Jul 31 11:03:38 2003 +++ rfb/zrleDecode.h Thu Dec 9 21:41:22 2004 @@ -28,6 +28,7 @@ #include <rdr/InStream.h> #include <rdr/ZlibInStream.h> #include <assert.h> +#include <algorithm> namespace rfb { @@ -61,11 +62,11 @@ for (t.tl.y = r.tl.y; t.tl.y < r.br.y; t.tl.y += 64) { - t.br.y = min(r.br.y, t.tl.y + 64); + t.br.y = std::min(r.br.y, t.tl.y + 64); for (t.tl.x = r.tl.x; t.tl.x < r.br.x; t.tl.x += 64) { - t.br.x = min(r.br.x, t.tl.x + 64); + t.br.x = std::min(r.br.x, t.tl.x + 64); int mode = zis->readU8(); bool rle = mode & 128; --- rfb/zrleEncode.h Fri Jun 11 08:13:52 2004 +++ rfb/zrleEncode.h Thu Dec 9 21:43:16 2004 @@ -32,6 +32,7 @@ #include <rdr/OutStream.h> #include <rdr/ZlibOutStream.h> #include <assert.h> +#include <algorithm> namespace rfb { @@ -130,7 +131,7 @@ for (t.tl.y = r.tl.y; t.tl.y < r.br.y; t.tl.y += 64) { - t.br.y = min(r.br.y, t.tl.y + 64); + t.br.y = std::min(r.br.y, t.tl.y + 64); if (os->length() + worstCaseLine > maxLen) { if (t.tl.y == r.tl.y) @@ -143,7 +144,7 @@ for (t.tl.x = r.tl.x; t.tl.x < r.br.x; t.tl.x += 64) { - t.br.x = min(r.br.x, t.tl.x + 64); + t.br.x = std::min(r.br.x, t.tl.x + 64); GET_IMAGE_INTO_BUF(t,buf); --- tx/TXImage.cxx Thu Mar 18 09:25:19 2004 +++ tx/TXImage.cxx Thu Dec 9 21:45:04 2004 @@ -31,6 +31,7 @@ #include <rfb/TransImageGetter.h> #include <rfb/Exception.h> #include <rfb/LogWriter.h> +#include <algorithm> #include "TXWindow.h" #include "TXImage.h" @@ -71,8 +72,8 @@ if (w == width() && h == height()) return; int oldStrideBytes = getStride() * (format.bpp/8); - int rowsToCopy = min(h, height()); - int bytesPerRow = min(w, width()) * (format.bpp/8); + int rowsToCopy = std::min(h, height()); + int bytesPerRow = std::min(w, width()) * (format.bpp/8); rdr::U8* oldData = 0; bool allocData = false; --- end patch ---
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?41B943D9.3090202>