Last change to non-XCB libX11 breaks KDE
Kean Johnston
kean at armory.com
Tue Jul 17 14:26:34 PDT 2007
> Does your Xlib support LOCALCONN but your server not?
No, both suppot LOCALCONN.
> (And you'll notice this change isn't the first to do this manipulation
> - the code already had the fallback from :0 to hostname:0 before I added
> unix:0 as the intermediate step.)
Then both are wrong and contrary to their own documentation. The
effect of changing that information is that XDisplayString() will
return a different value to XDisplayName(). The documentation I was
able to find for XDisplayString says:
XDisplayString(displayptr) -> string [procedure]
DisplayString(displayptr) -> string [procedure]
XDisplayString returns the string name of the display referred
to by displayptr (as passed to * XOpenDisplay or held in the
Unix $DISPLAY environment variable.)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
This can be useful in programs which use the Unix *?sysfork
procedure and wish to open a connection in the child process to
the same display used in the parent. XDisplayString can be used
by the parent to get the name of the display, which can then be
used in a call to * XOpenDisplay by the child.
DisplayString is a synonym for XDisplayString.
By modifying the fullname to insert the hostname it creates an
inconsistency, which thwarts the purpose of XDisplayString()
completely. Either that or XDisplayString() should eb changed to
simply return the value of $DISPLAY, like XDisplayName() does,
and not the "canonical" name computed by _X11TransConnectDisplay().
Kean
More information about the xorg
mailing list