To-Do List for gemsvnc: things that need to be done for gemsvnc

R. J. Brown -- Elijah Laboratories Inc.
Code licensed under the GPL, Documentation licensed under the GFDL

TODO.gemsvnc -- things that need to be done for gemsvnc aka Tue Dec 17 13:50:56 CST 2002

- Investigate all FIXME tags.

- Experiment with rfbDeferUpdateTime to determine its effect on
bandwidth requirements.  I think this value is used to keep from
sending out a marked rectangle too quickly, before other pixels have a
chance to change near it?

- Add http server support so web browser based java viewer can be used
with gemsvnc.

- The malloc() in construct_slots() in ilace.c has a potentially wrong
size due to a type error.  It works as long as the size of an int and
an int* are the same.

   * FIXED!

- In rectangle.c remove_named_rectangle_from_list() the bounding box must be
reset to IMPOSSIBLE before calling update_bounding_box().

   * FIXED!

- In commands.c the whole idea of EOF_found is probably ill-conceived.

- In cmd_sockets.c poll_socket_read() the expression "socket_handle +
1" in the arguments to select() should be just "2".  This only works
now because the socket_handle is always 1 = stdin.

   * FIXED!

- In gemsvnc.c the bits per pixel is hardcoded to 32, and tagged by a
FIXME; it needs to be fixed to work with 8, 16, and 24 bits also.

- The mouse cursor has jitter problems when crossing between block,
guard, and normal regions.  This seems to be due to mis-handling of
the hot-spot offsets.  See send_changed_tiles_to_viewer() and

- In probe_horizontal() and probe_vertical(), the if
(test_dirty_bit()) is followed by a break.  This is wrong.  It causes
the entire remainder of the row to be skipped instead of just the rest
of the current tile.

   * FIXED! -- changed "break" to "continue".

- Verify that copy_tile() handles the mouse_clobber flag properly if
it is set and the mouse has also moved since the last pass thru the
big loop.

- In copy_tile() the tests using the block and guard clobber flags are
no longer needed.

   * FIXED!

- Determine if atoi() is still broken, or if we can eliminate the
atoi() code in gemsvnc.c and just use the system provided code

   * FIXED!

- In main() the useSHM test needs an "if" after useSHM = XShmQuery().

   * FIXED!

- In rectangle.c reposition_rectangle_on_list() we should do a test to
see if the bounding box needs to be updated.  See how it is done in

Elijah Laboratories Inc. logo Elijah Laboratories Inc. logo

© 2002 Elijah Laboratories Inc.

Web page design by Robert J. Brown.
Last modified: Fri Feb 27 15:12:42 EST 2004

Clean up your Web pages with HTML TIDY Tux, the Linux Penguin