From 281cb78005eba8a365fbcf3d1c868a5f4972ed0e Mon Sep 17 00:00:00 2001
From: dscho <dscho>
Date: Wed, 14 Nov 2001 16:04:07 +0000
Subject: docu, warning fixed

---
 Makefile | 4 ++--
 TODO     | 3 ++-
 font.c   | 6 ++++--
 3 files changed, 8 insertions(+), 5 deletions(-)

diff --git a/Makefile b/Makefile
index 93287be..17c893e 100644
--- a/Makefile
+++ b/Makefile
@@ -9,8 +9,8 @@ VNCSERVERLIB=-L. -lvncserver -L/usr/local/lib -lz -ljpeg
 # The code for 3 Bytes/Pixel is not very efficient!
 FLAG24 = -DALLOW24BPP
 
-OPTFLAGS=-g # -Wall
-#OPTFLAGS=-O2 -Wall
+#OPTFLAGS=-g # -Wall
+OPTFLAGS=-O2 -Wall
 CFLAGS=$(OPTFLAGS) $(PTHREADDEF) $(FLAG24) $(INCLUDES)
 RANLIB=ranlib
 
diff --git a/TODO b/TODO
index 522481b..0aa137b 100644
--- a/TODO
+++ b/TODO
@@ -1,7 +1,8 @@
 immediate:
 ----------
 
-in keysym tester mouse buttons make copy rect, but text is not marked as mod.
+extra_bytes in rfbDrawCharWithClip.
+in keysym tested mouse buttons make copy rect, but text is not marked as mod.
 cursor drawing: set optional grain to mark bigger rectangles as drawn (else
 	you end up with thousands of one-pixel-rectangles to encode).
 selectbox: scroll bars
diff --git a/font.c b/font.c
index cb31f7f..f61f09e 100644
--- a/font.c
+++ b/font.c
@@ -68,12 +68,14 @@ int rfbDrawCharWithClip(rfbScreenInfoPtr rfbScreen,rfbFontDataPtr font,
 
   /* after clipping, x2 will be count of bytes between rows,
    * x1 start of i, y1 start of j, width and height will be adjusted. */
-  if(y1>y) { y1-=y; d+=(width+7)/8; height-=y1; y+=y1; } else y1=0;
-  if(x1>x) { x1-=x; d+=x1; width-=x1; x+=x1; extra_bytes+=x1/8; } else x1=0;
+  if(y1>y) { y1-=y; data+=(width+7)/8; height-=y1; y+=y1; } else y1=0;
+  if(x1>x) { x1-=x; data+=x1; width-=x1; x+=x1; extra_bytes+=x1/8; } else x1=0;
   if(y2<y+height) height-=y+height-y2;
   if(x2<x+width) { extra_bytes+=(x1+width)/8-(x+width-x2+7)/8; width-=x+width-x2; }
 
   for(j=y1;j<height;j++) {
+    if((x1&7)!=0)
+      d=data[-1]; /* TODO: check if in this case extra_bytes is correct! */
     for(i=x1;i<width;i++) {
       if((i&7)==0) {
 	d=*data;
-- 
cgit v1.2.3

