1#!/usr/bin/perl 2# 3# This script has been (or is hereby) released into the public domain by 4# its author, Karl J. Runge <runge@karlrunge.com>. This applies worldwide. 5# 6# In case this is not legally possible: Karl J. Runge grants anyone the 7# right to use this work for any purpose, without any conditions, unless 8# such conditions are required by law. 9 10while (<>) { 11 if (/^#include.*"rfb.h"/) { 12 print <<END; 13#include <rfb/rfb.h> 14#define Bool rfbBool 15#define CARD32 uint32_t 16#define CARD16 uint16_t 17#define CARD8 uint8_t 18#define xalloc malloc 19#define xrealloc realloc 20#define rfbTightNoZlib 0x0A 21#define tightSubsampLevel correMaxWidth 22 23#if LIBVNCSERVER_HAVE_LIBPTHREAD && LIBVNCSERVER_HAVE_TLS 24#define TLS __thread 25#else 26#define TLS 27#endif 28 29END 30 next; 31 } 32 foreach $func (qw(FindBestSolidArea ExtendSolidArea CheckSolidTile CheckSolidTile##bpp CheckSolidTile8 CheckSolidTile16 CheckSolidTile32 Pack24)) { 33 if (/static.*\b\Q$func\E\b/ && !exists $did_static{$func}) { 34 $_ =~ s/\b\Q$func\E\b(\s*)\(/$func$1(rfbClientPtr cl, /; 35 $did_static{$func} = 1; 36 } elsif (/\b\Q$func\E\b\s*\(/) { 37 $_ =~ s/\b\Q$func\E\b(\s*)\(/$func$1(cl, /; 38 } 39 } 40 41# if (/^\s*subsampLevel\s*=\s*cl/) { 42# $_ = "//$_"; 43# print "subsampLevel = 0;\n"; 44# } 45 46# $_ =~ s/cl->tightQualityLevel;/cl->tightQualityLevel * 10;/; 47 48 if (/^static\s+(Bool|int|CARD32|PALETTE|char|unsigned|tjhandle)\s+[^()]*;\s*$/) { 49 $_ =~ s/^static/static TLS /; 50 } 51 52 $_ =~ s/rfbScreen.pfbMemory/cl->scaledScreen->frameBuffer/g; 53 $_ =~ s/rfbScreen.paddedWidthInBytes/cl->scaledScreen->paddedWidthInBytes/g; 54 $_ =~ s/rfbScreen.bitsPerPixel/cl->scaledScreen->bitsPerPixel/g; 55 $_ =~ s/rfbServerFormat/cl->screen->serverFormat/g; 56 57 if (/^(FindBestSolidArea|ExtendSolidArea|static void Pack24|CheckSolidTile)\(cl/) { 58 $_ .= "rfbClientPtr cl;\n"; 59 } 60 if (/^(CheckSolidTile##bpp)\(cl/) { 61 $_ .= "rfbClientPtr cl; \\\n"; 62 } 63 $_ =~ s/\bublen\b/cl->ublen/; 64 $_ =~ s/\bupdateBuf\b/cl->updateBuf/; 65 66 if (/cl->(rfbRectanglesSent|rfbBytesSent)/) { 67 $_ = "//$_"; 68 } 69 print; 70} 71 72print <<END; 73 74void rfbTightCleanup(rfbScreenInfoPtr screen) { 75} 76 77END 78 79 80