Bug#360689: Geometry bug in TSClient 0.140: bug report and fix

Stewart Midwinter stewart.midwinter at gmail.com
Tue Apr 4 04:10:20 UTC 2006


Package: tsclient
Version: 0.140-2

When I start a VNC connection with TSClient using the default screen
size, all is well. But when I specify a particular screen size,
vncviewer does not start; instead, it displays a very large dialog
reminding me of its syntax.  I suspect that the geometry option passed
by TSCliet is incorrect.

I downloaded the source files for TSClient 0.140-2 and found errors in
src/support.c.  To fix the problem with geometry, edit lines 529-567
by changing all instances of '-g' to '-geometry'.  Or, replace those
lines by the edited lines below.

Then, run "./configure", "make", and "make install".  Note that this
may install a replacement in /usr/local/bin.  Your original tsclient
may have been installed (like mine on Ubuntu linux) in /usr/bin.  In
this case, delete the original and provide a symlink to the version,
or copy the new version over the old one.

The maintainer, Anthony Lau, states on his website that he has little
interest in working on this application, so if you want it fixed, go
ahead and do it yourself.  It's easy and it won't take long!

src/support.c, lines 529-567:
---
      if (rdp->screen_mode_id == 2) {
        sprintf(buffer, "-f");
        c_argv[c_argc++] = g_strdup (buffer);
      } else {
        switch (rdp->desktopwidth) {
        case 640:
          sprintf(buffer, "-geometry");
          c_argv[c_argc++] = g_strdup (buffer);
          sprintf(buffer, "640x480");
          c_argv[c_argc++] = g_strdup (buffer);
          break;
        case 800:
          sprintf(buffer, "-geometry");
          c_argv[c_argc++] = g_strdup (buffer);
          sprintf(buffer, "800x600");
          c_argv[c_argc++] = g_strdup (buffer);
          break;
        case 1024:
          sprintf(buffer, "-geometry");
          c_argv[c_argc++] = g_strdup (buffer);
          sprintf(buffer, "1024x768");
          c_argv[c_argc++] = g_strdup (buffer);
          break;
        case 1152:
          sprintf(buffer, "-geometry");
          c_argv[c_argc++] = g_strdup (buffer);
          sprintf(buffer, "1152x864");
          c_argv[c_argc++] = g_strdup (buffer);
          break;
        case 1280:
          sprintf(buffer, "-geometry");
          c_argv[c_argc++] = g_strdup (buffer);
          sprintf(buffer, "1280x960");
          c_argv[c_argc++] = g_strdup (buffer);
          break;
        default:
          break;
        }
      }
---

cheers,
--
Stewart Midwinter
stewart at midwinter.ca
stewart.midwinter at gmail.com
Skype, GoogleTalk, iChatAV, MSN, Yahoo: midtoad
AIM:midtoad1





More information about the Pkg-gnome-maintainers mailing list